Notice: Use of undefined constant identification
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anfrage
anzahl
auftreten
befehl
bemerkung
button
code
datensatz
fehler
funktion
klammern
klasse modul
modul
not
parameter
post
problem
sagen
sender
test
-
Erneut hallo,
leider heute innerhalb kurzer Zeit meine 2. Frage, aber hier mal mein neues Problem. Ich habe über den button + post Befehl eine Reihe Daten an das Formular selbst gesendet:
//Sender <form action = "<?php echo $_SERVER['PHP_SELF'];?>" method = "post"> //Empfänger if (isset($_POST['identification'])) { echo $_POST[identification], $_POST[description], $_POST[on_error], $_POST[command], $_POST[dbh], $_POST[value1], $_POST[value2], $_POST[value3], $_POST[sql1], $_POST[sql2], $_POST[sql3], $_POST[sql4], 'test' , 'dasdf'; $dbh->Insert($_POST[identification], $_POST[description], $_POST[on_error], $_POST[command], $_POST[dbh], $_POST[value1], $_POST[value2], $_POST[value3], $_POST[sql1], $_POST[sql2], $_POST[sql3], $_POST[sql4], 'test' , 'dasdf') or die ("Could not insert new dataset"); } //Erstellt ein Insert auf die Tabelle function Insert($class, $modul, $function , $notification ,$on_error, $command, $value1, $value2 , $value3 , $value4 ,$sql1, $sql2, $sql3 , $sql4) { $query = "INSERT INTO steuertabelle(`klasse` ,`modul` ,`funktion` ,`bemerkung` ,`on_error` ,`befehl` ,`wert1` ,`wert2` ,`wert3` ,`wert4`, `sql1` ,`sql2` ,`sql3` ,`sql4`) VALUES ('$class', '$modul', '$function ', '$notification', '$on_error', '$command', '$value1', '$value2' , '$value3' , '$value4' , '$sql1', '$sql2', '$sql3' , '$sql4')"; $result = mysql_query($query) or die ("Anfrage konnte nicht uebertragen werden"); }
Bei klick des submit Buttons:
Notice: Use of undefined constant identification - assumed 'identification' in ...\PHPDatabaseEditor\Source\PHP\GUI\CommandEditor.htm on line 4
wiederholt für alle anderen Parameter --> kein Eintrag in die DB Error:("Could not insert new dataset")
Bei Aktualisierung der Seite (F5) wurde der Datensatz aber korrekt eingetragen. Demnach dürften die Parameter und die übergebenen Argumente in Ordnung sein, trotzdem bleibt die Fehlermeldung bestehen. woran kann das liegen=
Ich hoffe, dass die Sache nicht zu komplex ist.
Beste Grüße und Danke im Voraus!
Beitrag zuletzt geändert: 7.3.2011 12:08:02 von tct -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ersetze $_POST[Feldbezeichner} durch $_POST['Feldbezeichner'], dann ist die Notice Geschichte.
FF -
Noch ein kleiner Hinweis zum Code. Manchmal gibts Probleme, so wies jetzt ist.
//Sender <form action = "<?php echo $_SERVER['PHP_SELF'];?>" method = "post"> //Empfänger if (isset($_POST['identification'])) {
Vor //Empfänger fehlt die PHP-Klammer (<?php).
Am Besten machst dus so:
//Sender <?php echo '<form action = "'.$_SERVER['PHP_SELF'].'" method = "post">'; //Empfänger if (isset($_POST['identification'])) { .............................................................. $result = mysql_query($query) or die ("Anfrage konnte nicht uebertragen werden"); } ?>
weil sonst wird der PHP Code eventuell nicht geparst. Zumindest auf anderen Servern als Lima. Speziell wenn das File .htm oder .html ist statt .php
Gruss
misc
Beitrag zuletzt geändert: 7.3.2011 10:55:25 von misc -
Ein großes Dankeschön soweit,
die notification Fehler haben sich jetzt vollständig aufgelöst, allerdings bricht er die Aktion scheinbar immernoch im "or die" Zweig ab. Dies widerspricht jedoch der Anzeige nach dem Aktualisieren, bei welcher sich der Datensatz in der Datenbank befindet, also erfolgreich übertragen wurde.
Zu misc's Neuerung muss ich sagen, dass ich den Unterschied bis auf die etwas geänderte action-Anweisung nicht sehe und damit nicht verstehe ^^ Eine zusätzliche Erklärung währe also ganz nett. -
Ist das Ergebnis das gleiche, wenn du den Code etwas umstellst?
function Insert($class, $modul, $function , $notification ,$on_error, $command, $value1, $value2 , $value3 , $value4 ,$sql1, $sql2, $sql3 , $sql4) { $query = "INSERT INTO steuertabelle(`klasse` ,`modul` ,`funktion` ,`bemerkung` ,`on_error` ,`befehl` ,`wert1` ,`wert2` ,`wert3` ,`wert4`, `sql1` ,`sql2` ,`sql3` ,`sql4`) VALUES ('$class', '$modul', '$function ', '$notification', '$on_error', '$command', '$value1', '$value2' , '$value3' , '$value4' , '$sql1', '$sql2', '$sql3' , '$sql4')"; $result = mysql_query($query); if (!$result) {die ("Anfrage konnte nicht uebertragen werden");} }
-
Ich habe Alle mir bekannten möglichen Anpassungen versucht, allerdings bleibt das Resultat dasselbe. Falls hier ein Problem auftauchen sollte würde hierzu ja die entsprechende andere Exception auftreten oder?
-
Das ist soweit richtig, da ich die Aufstellung momentan häufig geändert habe, bis auf die Anzahl der Parameter. Daher habe ich auch die "Defaultparameter" einfach eingetragen...
-
Pantherstyle, wegen deiner Rückfrage.
Alle PHP-Codes sollten in den speziellen PHP-Klammern
<?php
?>
geschrieben werden. Wenn man deinen Code anschaut sieht man, dass sich die unteren Blöcke nicht in einer solchen Klammer befinden. Das kann dazu führen dass PHP-Codes nicht ausgeführt werden. Woher soll der Server wissen was PHP ist und was HTML und CSS? Sehr unschön und ausserdem eine Sicherheitslücke.
Insbesondere da deine Datei mit ".htm" endet kann dies ein Problem darstellen, bei ".php" wird alles geparst.
Ich sage das nur weil es eine gute Angewohnheit ist und irgendwann wirst du vielleicht mal auf einen anderen Webhost zügeln und dich daran erinnern. Auch wenn lima mal ein Update macht könnte sich das Parser-Verhalten ändern.
Gruss
misc -
Den Fehler habe ich zum Glück nicht begangen, ich habe nur den relevanten Content posten wollen. Die nicht in Tags stehenden Codestücke befanden sich in einer Klasse die von den php Tags umringt ist.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage