Hallo Yadgar,
spontan fällt mir hier auf, dass Schweifung_Horizontal
, Schweifung_Vertikal
und Radial
in $_POST
fehlen.
Die fehlen (bzw. sollten NULL enthalten), weil zu den entsprechenden Feldern (in der Eingabemaske alles Radiobuttons ohne Default-Werte) nichts eingegeben wurde - ich gab die Daten eines unteren Manuals ein, da sind diese drei Pedal-Eigenschaften gegenstandslos.
Das sollte Dir im Folgenden mindestens eine Notice werfen.
Lass Dir doch mal die PHP- und MySQL-Fehlermeldungen ausgeben. Vielleicht kommst Du so der Ursache schon etwas näher.
Habe ich gemacht, ich bekomme folgende Warnmeldungen:
Direkt nach dem Aufruf von klaviaturen.php erst einmal
**Notice: Undefined index: section in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 269
**
Das ist logisch, weil $_GET['section'] erst einen definierten Wert bekommt, wenn entweder "Neue Datensätze eingeben" (dann 1) oder "Vorhandene Datensätze bearbeiten" (dann 2) angeklickt wurde.
Wenn ich jetzt "Neue Datensätze eingeben" anklicke, kommen noch vor der Eingabemaske folgende fünf Warnmeldungen:
**Notice: Undefined index: mode in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 29
Notice: Undefined index: mode in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 40
Notice: Undefined index: id in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 40
Notice: Undefined index: first in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 40
Notice: Undefined index: sort in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 40
**
Auch keine Überraschung, da mode, id, first und sort erst nach dem Anklicken von "Vorhandene Datensätze bearbeiten" ihre Werte bekommen, in der Verzweigung für $_GET['section'] = 1 hingegen gar nicht vorkommen.
Jetzt meine Testeingabe:
Position: Unteres Manual ($_POST['Position'] = 1)
Tiefste Taste: F ($_POST['Tiefste_Taste'] = 29)
Höchste Taste: c''' ($_POST['Hoechste_Taste'] = "c'''" - hier hatte ich noch nicht auf Integers als value-Werte umgestellt, kommt aber bei nächster Gelegenheit!)
Pedaltyp, Schweifung horizontal, Schweifung vertikal, Radial bleiben leer, die entsprechenden $_POST-Elemente müssten also NULL enhalten - aber wieso werden sie dann beim var_dump nicht als NULL angezeigt?)
Tastentyp: Vorspringend ($_POST['Tastentyp'] = "Vorspringend", siehe "Hoechste Taste")
Gewichtet: nein ($_POST['Gewichtet'] = "nein")
Aftertouch: nein ($_POST['Aftertouch'] = "nein")
In $_POST steht folgendes:
array(7) { ["Position"]=> string(1) "1" ["Tiefste_Taste"]=> string(2) "29" ["Hoechste_Taste"]=> string(4) "c'''" ["Pedaltyp"]=> string(0) "" ["Tastentyp"]=> string(12) "Vorspringend" ["Gewichtet"]=> string(4) "nein" ["Aftertouch"]=> string(4) "nein" }
Dann folgende Warnmeldungen:
**Notice: Undefined index: Schweifung_Horizontal in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 227
Notice: Undefined index: Schweifung_Vertikal in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 227
Notice: Undefined index: Radial in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 227
Notice: Undefined index: Schweifung_Horizontal in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 246
Notice: Undefined index: Schweifung_Vertikal in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 249
Notice: Undefined index: Radial in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 252**
Aha, die drei Elemente existieren überhaupt nicht, folglich kann da auch nicht NULL stehen - also werde ich auf !isset() prüfen müssen!
Außerdem: Die MySQL-Erweiterung von PHP solltest Du nicht mehr verwenden, die ist veraltet. Verwende besser Mysqli oder PDO.
Mag ja sein, aber mein Miet-Server arbeitet noch mit PHP 4!
Wird denn überhaupt was in die Datenbank eingetragen?
"Irgendwas" wird durchaus eingetragen, bei meinen Eingabebeispiel der Reihe nach:
ID: 30 (soviele vergebliche Versuche habe ich bereits hinter mir...)
Position: 0 (hä?)
Tiefste_Taste: 0 (hää??)
Hoechste_Taste 0 (was soll denn das?!?)
Pedaltyp: NULL (Defaultwert)
Schweifung_horizontal: NULL (Defaultwert)
Schweifung_vertikal: NULL (Defaultwert)
Radial: NULL (Defaultwert)
Tastentyp: (leer), ich vermute ""
Gewichtet: 0 (Typ ist bool, also passt das zumindest zu "nein")
Aftertouch: 0 (dito)
Also, ich weiß nicht, was ich davon halten soll... komplett gaga wird es aber jetzt mit den folgenden Warnmeldungen:
**Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 284
Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 284
Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 284
Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 284
Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 284
Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 284
Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 304
Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 304
Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 308
Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 308
Warning: mysql_real_escape_string(): Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 312
Warning: mysql_real_escape_string(): A link to the server could not be established in /var/www/khyberspace/greenbook_admin/klaviaturen.php on line 312
**
Den einzigen Reim, den ich mir darauf machen kann ist, dass die Serveradministration zwischenzeitlich die Verfahrensweise bei mysql_real_escape_string() umgestellt hat, Magic Quotes aktiviert hat oder dergleichen... dann müssten ja meine bislang bereits erfolgreich programmierten Eingabeseiten dieselben Meldungen werfen!
Genau das passiert aber nicht - wenn ich mit verkaufoderangebot.php einen neuen Datensatz eingebe, ist alles einwandfrei!
Was machen die Funktionen dbcall()
und dberror()
?
dbcall():
function dbcall()
{
$db = mysql_connect("www.bergisch-afghanistan.de", "d0069173", "Passwort_verrate_ich_euch_natuerlich_nicht");
dberror();
$db = mysql_select_db("d0069173");
dberror();
}
dberror():
function dberror()
{
if (mysql_errno())
{
switch(mysql_errno())
{
case 1062:
die ("Ein Eintrag mit diesen Daten existiert bereits! Bitte korrigieren Sie Ihre Eingabe!<br>");
break;
default:
die (mysql_errno().": ".mysql_error()."<br>");
}
}
}
Außerdem ist Dein echo
relativ sinnlos, weil Du ja überhaupt nicht überprüfst, ob der Datensatz tatsächlich eingetragen wurde. Du behauptest das einfach, obwohl Du wohl eigentlich $result
auswerten möchtest.
Werde ich ändern!
Bis bald im Khyberspace!
Yadgar