Liebe Programmierer,
mir ist aufgefallen, daß unter Firefox (1.5, ob frühere auch betroffen sind, ist mir nicht bekannt) folgende Skript-Funktionalität im Gegensatz zu anderen Browsern (IE, Netscape 7.*) nicht mehr gegeben ist:
// das selbstaufrufende (über die steuernde Variable aendern) PHP-Skript in alter, unsicherer Programmiertechnik heißt aendern_vortraege.php:
....
$query1 = "update vortraege set name = '$name1, thema = '$thema' where id = '$id'";
mysql_db_query("db1",$query1);
$num = mysql_affected_rows(); if $num < 1 then echo "Meckern !!";
....
$query2 = "select * from vortraege where (id = '$id')"
$res = mysql_db_query("db1",$query2);
$num = mysql_num_rows($res);
// in Tabelle eingearbeitet:
for ($i=0; $i<$num; $i++)
{
$id = mysql_result($res, $i, "id");
$name1 = mysql_result($res, $i, "name1");
$thema = mysql_result($res, $i, "thema");
....
<form action ='aendern_vortraege.php?aendern=ja&id=".$id."&aktiv=".$aktiv."' method = 'post'>
Name: <input name='name' value='$name'>
Thema: <input name='thema' value='$thema'>
</form>
....
}
Mit Firefox werden die Variablen scheinbar (laut echo-Befehlen an verschiedenen Stellen) korrekt an das Skript wieder übergeben, das SQL-Statement korrekt zusammengebaut, die Var. aus dem Result-Feld des mysql_db_query(..) korrekt wieder ausgelesen und korrekt wieder in der Tabelle angezeigt.
Schaut man jedoch im PHPMyAdmin nach oder ruft man ein anderes Skript auf, das die selben Daten aus der DB holt, sieht man, daß sämtliche Varchar-Felder LEER sind und sämtliche (oben nicht angegebenen) int-Felder gleich 0 (außer natürlich id). Übergebe ich die Variablen $id und $aktiv nicht über die URL, sondern über ein hidden-input-Feld funktioniert es wieder. Mit Netscape, IE,.. ist dieser Fehler nicht zu beobachten !
Bei Interesse schicke ich das SQL-Create und das original-PHP-Skript zu.
Browser: Firefox 1.5.0.1, Win 2000 SP 0, PHP 4.02 läuft auf Intranet-Server mit völlig ungepatchter Installation SUSE Linux 7.1