Veröffentlicht 9. März 200421 j Hallo Leute, ich hätte da mal ein Problem mit PHP. Ich will alphanumerische Zeichen speichern und übertragen (Formular), das funktioniert bei mir mit "richtigen" Buchstaben wie: A,b,c,... usw. und Zeichenketten. Numerische Werte werden auch gespeichert. Wenn ich aber Zeichen wie +,-,*,/,...usw. übertragen möchte, gehen diese nach zwei oder drei Eingaben verloren. Was mache ich Falsch und noch wichtiger konnte mir jemand folgen? Danke
9. März 200421 j hättest du die daten per GET übertragen, hätte das die fehlerquelle sein können. sind die daten immer beim gleichen script weg? wie sieht der zugriff auf die daten aus?
9. März 200421 j Original geschrieben von Enrico T. überträgst du die per GET, POST, COOKIE oder SESSION? kann man mit einem formular auch mit cookie und session übertragen? @sid1900: vielleicht ma so versuchen: <form enctype="text/plain">
10. März 200421 j Moin, nachdem ich die Zeile "enctype="text/plain"" in meinen Formularkopf eingefügt hatte, wurde an der Stelle wo ich meine Gesamtzahl(zg) ausgebe nichts mehr angezeigt. <td width="100%"><input type="Text" name="wert" size="24%" maxlength="10" value= "<?echo $zg?>" > Ich würde mal sagen, das das Problem woanders liegen muss. Hier noch der Formularkopf: <? echo "<form action=tr.php?zg=$zg&eingabe=$eingabe&op=$op&opz=$opz&z1=$z1&z2=$z2 method=post>" ?>
10. März 200421 j Hallo! Original geschrieben von sid1900 ..., gehen diese nach zwei oder drei Eingaben verloren. Was heißt "zwei oder drei Eingaben?". Und benutzt du <input type="text" oder andere Formularfelder? gruß Benjamin
10. März 200421 j An die url hänge ich die Variablen die in meinem PHP-teil verwendet werden. Für die Eingabe verwende ich z.B.: <input type="submit" name="wert" value="%"> Das heißt. Ich klicke auf einen Button und übergebe das value="xyz" an das PHP- Progi, welches dann die Eingabe entsprechend auswertet.
10. März 200421 j Hi, häng deine alten Variablen nicht an die URL dran, sondern pack sie in Hidden Inputs. Dann werden sie mit dem Formulararray (in deinem Falle $_Post[]) übergeben. Natürlich kann es sein, das bei der Übergabe via URL Sonderzeichen verloren gehen (weil sie nicht in URLs auftauchen dürfen). Dafür gab es eine PHP-Funktion zum Umwandeln, ich komm aber jetzt nur nicht drauf welche das war ... Schau auch hier mal für Infos: http://www.dclp-faq.de/ch/ch-webvariablen.html
10. März 200421 j Wenn du die Variablen unbedingt per GET, also in der URL übergeben willst, dann codiere die Daten vorher mit der Funktion urlencode() und decodiere sie im Zielscript mit urldecode(). Allerdings schließe ich mich Spike an, du solltest das wenigstens über hidden-fields übergeben, wenn du nicht gleich die session-Funktionen verwendest. Gruß Benjamin
10. März 200421 j Wenn du die Variablen unbedingt per GET, also in der URL übergeben willst, dann... Wer sagt den das ich mit GET übertragen will? Zurzeit verwende ich post oder meinst du das mit get der Fehler nicht auftritt? Kann es ja mal probieren. Hier mal ein Teil der Quelldatei (soll mal ein Taschenrechner werden): <blabla> <? if ($wert=="Loeschen") { $zg=""; $z1=""; $z2=""; $op=""; $opz=0; $eingabe=0; } else { //$opz=0; if($wert>='0' && $wert<='9') { if($eingabe==0) { $zg=$wert; $eingabe=1; //echo "zg(e=0)= ",$zg,"<br>"; } else { $zg=$zg*10+$wert; //echo "zg(e=1)= ",$zg,"<br>"; } } else { //echo "wert= ",$wert,"<br>"; if($opz<1) { $z1=$zg; //echo "z1= ",$z1,"<br>"; switch($wert) { case '+': $op=plus; break; case '-': $op=minus; break; case '*': $op=mul; break; case '/': $op=div; break; case '=': $opz=0; break; case 'x²': $zg=$z1*$z1; $opz=-1; break; case '%': $zg=$z1/100; $opz=-1; break; case 'eins/x': $zg=1/$z1; $opz=-1; break; case '+/-': $zw_wert=$zg*2; $zg=$zg-$zw_wert; $opz=-1; break; // default: // $zg="Error"; } $eingabe=0; $opz++; //echo "op= ",$op,"<br>"; } else { $z2=$zg; //echo "z2= ",$z2,"<br>"; switch($op) { case 'plus': $zg=$z1+$z2; break; case 'minus': $zg=$z1-$z2; break; case 'mul': $zg=$z1*$z2; break; case 'div': if($z2==0) $zg=Error; else $zg=$z1/$z2; break; // default: // $zg="Error"; } $opz=0; $eingabe=0; } } } ?> <? echo "<form action=tr.php?zg=$zg&eingabe=$eingabe&op=$op&opz=$opz&z1=$z1&z2=$z2 method=post>" ?> <table border="0" size="50%" bgcolor="#C0C0C0" align="center"> <tr> <td> <table border="0" bgcolor="#C0C0C0"> <tr> <td> TR</td> </tr> <tr> <td width="100%"><input type="Text" name="wert" size="24%" maxlength="10" value= "<?echo $zg?>" disabled> </td> </tr> </table> <table border="0" bgcolor="#C0C0C0"> <tr> <td width="10%"><div align="right"><input type="submit" name="wert"value="Loeschen"></div></td> </tr> </table> <br> <table border="0" bgcolor="#C0C0C0" size="100%"> <tr align="center"> <td width="10%"> <input type="submit" name="wert" value="7" accesskey="7"></td> <td width="10%"> <input type="submit" name="wert" value="8" accesskey="8"></td> <td width="10%"> <input type="submit" name="wert" value="9" accesskey="9"></td> <td width="10%"> <input type="submit" name="wert" value="/" accesskey="/"></td> <td width="10%"> <input type="submit" name="wert" value="%"></td> </tr> . . . </table> </td> </tr> </table> </form> <blabla>
10. März 200421 j Du solltest anstelle von : <? echo "<form action=tr.php?zg=$zg&eingabe=$eingabe&op=$op&opz=$opz&z1=$z1&z2=$z2 method=post>" ?> <? echo "<form action=tr.php?". urlencode("zg=$zg&eingabe=$eingabe&op=$op&opz=$opz&z1=$z1&z2=$z2"). " method=post>"; ?> [/PHP] benutzen
10. März 200421 j nur mal so als anmerkung: wo liegt eurer meinung nach der vorteil von sessions? (ich habe bisher erst mit cookie get und post gearbeitet... sorry für die daufrage)
10. März 200421 j GET, POST und COOKIE sind auf jeden Fall Daten die vom Client kommen. In kritischen Anwendungen könnten die Daten u.U. zu Sicherheitslücken führen. SESSIONs kann man ggf. komplett serverseitig laufen lassen. Ausserdem hat da nicht das Problem sich über die Übertragung Gedanken zu machen.
10. März 200421 j ich kann also beispielsweise 100 gleichlautende variablen von usern serverseitig speichern und auch getrennt ansprechen ? also das jeder nur seine variablen benutzt, so wie bei get, post und cookie?
11. März 200421 j Ausserdem ist das komfortabler, sobald man die Variablen über mehrere Seiten hinweg braucht, z.B. in einem geschützten Bereich. Sessions werden immer gebraucht, wenn man eine anständige Userverwaltung machen möchte. Aber auch für komplexe Formularscripts (z.B. in Shops) sind die von nöten.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.