php variablenuebergabe funktioniert nicht mehr
-
hi leute,
habe folgendes problem:
es geht um aendern von daten in einer datenbank mittels php. bis vor kurzem lief alles wunderbar. bis heute
das erste hidden-feld bzw die erste variable ueberhaupt die mittels formular und post-methode uebergeben wird wird doch nicht uebergeben, d.h. ein feld
<input type="hidden" name="edit" value="true"> uebermittelt das true nicht mehr.hat jemand von euch eine idee?
danke.
msp1
-
Dein Host hat Server-Software gewechselt?
Bye, TGGC (Pipe my World.)
-
vermute auch.... , der admin hat die register globals auf off gesetzt.
-
Wie greifst du denn auf die übermittelten Werte zu?
-
elise schrieb:
vermute auch.... , der admin hat die register globals auf off gesetzt.
würde ich auch sagen. Kleines Beispiel:
<?php // man bekommt von einem Formular eine variable. Hier benannt mit var. echo $var; // dürfte nichts kommen, da $var unbekannt ist echo $_GET['var']; // enthält den inhalt des feldes, wenn du im formular // action="get" angegeben hast echo $_POST['var']; // das gleiche, wenn im formular action="post" steht ?>
Hilfreich ist natürlich immer die Dokumentation
-
hi leute,
also die serversoftware kann ohne mein wissen sich nicht geaendert haben, ich bin der hoster.
formularuebergabe:
mittels "post" metode
...
if($_POST['edit']!="true"){ // -------------------- id erzeugen ---------------------------- $id=0; // sql-anweisung um nur die id-spalte zu bekommen $sql="SELECT ID FROM personendaten"; // sql-anweisung ausfuehren $result=mysql_query($sql); // alle datensaetze durchgehen while($datensatz = mysql_fetch_array($result)){ // wenn die dateiinterne id in der datenbank vorhanden // dann um 1 erhoehen if($datensatz["ID"]==$id)$id++; } $sql="SELECT agenturID FROM personendaten"; $result=mysql_query($sql); while($datensatz=mysql_fetch_array($result)){ if($_POST['agenturid']==$datensatz['agenturID']){ $timestamp = time(); $_POST['agenturid']=date("djYGis",$timestamp); echo "Eingegebene ID schon vorhanden. ID wurde auf ".$_POST['agenturid']." geändert.\n"; } } // globale variable ID setzen $ID=$id; //----------------------- ende id erzeugen ----------------------- } else $ID=$_POST['id']; $sql="SELECT * FROM personendaten"; $result=mysql_query($sql);
...
es werden sehr viele werte uebergeben. ca 20 oder so. ist es moeglich das es am speicher liegt, d.h. das wenn der speicher des rechners zu voll ist das es dann nicht mehr moeglich ist alles richtig zu uebergeben? bei etwas weniger parameter beim uebergeben mittels post funktioniert bisher alles. es wird scheinbar aus der formulardatei nur das erste hidden feld nicht mit uebergeben.
mittels einen kleinen trickes bekomme ich die variable aber trotzdem uebergeben:<input type="hidden" value="<? echo $id; ?>" name="edit"></input> <input type="hidden" value="<? echo $id; ?>" name="edit"></input>
also 2x uebergeben, wieso auch immer das dann geht
gruss
msp1
-
dein zeig deiner php.ini an. Du hast bestimmt register globals auf off, was mehr Sinn macht, benutze $_POST und $_GET, das ist besser. Und überprüfe zuerst, mit isset, ob $_POST['edit'] gesetzt ist, bevor due auf $_POST['edit'] zugreifst
-
hi,
die frage ist ja eigentlich, wieso uebergibt er den ersten eintrag nicht, sondern erst den zweiten?
<input type="hidden" value="<? echo $id; ?>" name="edit"></input> <input type="hidden" value="<? echo $id; ?>" name="edit"></input>
gruss
msp1
-
Dann ist die Server-HW futsch.
Bye, TGGC (Pipe my World.)
-
Info am Rande: <input> hat kein Schliß-Tag! D.h. es wäre richtig
<input type="hidden" value="<? echo $id; ?>" name="edit" />
die frage ist ja eigentlich, wieso uebergibt er den ersten eintrag nicht, sondern erst den zweiten?
das liegt eher am Browser als am Server, denn beide inputs gleich sind und gleich heißen, und der Browser schickt die Information am Server. Das macht auch mehr Sinn, dass das 2. geliefert wird.
-
Und in so einem Fall hilft immer die AUsgabe von _POST oder $_GET
Dann sieht man auch was an das Script geliefert wird.