sid1900 Geschrieben 9. März 2004 Teilen Geschrieben 9. März 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Wolle Geschrieben 9. März 2004 Teilen Geschrieben 9. März 2004 Verschoben -> Webserverprogrammierung Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 9. März 2004 Teilen Geschrieben 9. März 2004 überträgst du die per GET, POST, COOKIE oder SESSION? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sid1900 Geschrieben 9. März 2004 Autor Teilen Geschrieben 9. März 2004 method = post und wie hilft mir das weiter? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 9. März 2004 Teilen Geschrieben 9. März 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 9. März 2004 Teilen Geschrieben 9. März 2004 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"> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sid1900 Geschrieben 10. März 2004 Autor Teilen Geschrieben 10. März 2004 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>" ?> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 sehe ich das richtig, dass du alte formulardaten an die url dranhängst? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sid1900 Geschrieben 10. März 2004 Autor Teilen Geschrieben 10. März 2004 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spike Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kLeiner_HobBes Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 genau darauf wollte ich schon mit meiner ersten frage hinaus Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sid1900 Geschrieben 10. März 2004 Autor Teilen Geschrieben 10. März 2004 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> Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
sid1900 Geschrieben 10. März 2004 Autor Teilen Geschrieben 10. März 2004 Habs hinbekommen, danke für Eure Hilfe. :uli Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HELLinG3R Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 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) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
HELLinG3R Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 10. März 2004 Teilen Geschrieben 10. März 2004 Ja. Denn alle werden durch die eindeutige Session-ID angesprochen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Spike Geschrieben 11. März 2004 Teilen Geschrieben 11. März 2004 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.