URL: https://www.overclockers.at/coding-stuff/php_problem_php_self_171366/page_1 - zur Vollversion wechseln!
eÖÖ
weil ich in weiterer Folge einen umfangreicheren Onlinefragebogen machen will, hab ich mich wieder in PHP eingelesen... lang ists her.
Das war nur der 1. Konzept-test, der aber nicht funktioniert. Wenn ich auf den Submit-button klicke, tut sich nix - nur die alte Seite wird neu geladen. (also steht "noch nix" überm <hr>
... es sollte beim submitten wegen name="send" die php-variable $send entstehen & dann die if-anweisung true machen, oder?
Code: PHP<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test2</title> <?php if ($send) { echo "<p>Ergebnis:<br>"; echo "$txt1 $txt2 $txt3<br>"; echo "$rad<br>"; echo "$ch1 $ch2 $ch3<br>"; echo "</p><hr>"; } else { echo "<p>noch nix<br><hr></p>"; } ?> </head> <body> <form action="<?php $PHP_SELF ?>" method="post"> <p> <input type="Radio" name="rad" value="a"> a<br> <input type="Radio" name="rad" value="b"> b<br> <input type="Radio" name="rad" value="c"> c<br> </p><p> <input type="Checkbox" name="ch1" value="ch eins"> ch1<br> <input type="Checkbox" name="ch2" value="ch zwei"> ch2<br> <input type="Checkbox" name="ch3" value="ch drei"> ch3<br> </p><p> <input type="Text" name="txt1"> txt1<br> <input type="Text" name="txt2"> txt2<br> <input type="Text" name="txt3"> txt3<br> </p> <input type="Submit" name="send"> <input type="Reset" name="reset" value="abbrechen"> </form> </body> </html>
Ich vermute mal, dass register_globals Off ist (was auch gut ist).
in dem Fall verwende anstatt $PHP_SELF -> $_SERVER['PHP_SELF'] und anstatt plain $send -> $_POST['send'].
edit: um die Richtigkeit der Eingaben zu prüfen kannst du dir ja bequem eine Funktion schreiben
. Spart ne Menge Schreibarbeit.
thx .. dann muss ich aber trotzdem noch globals einschalten, oder?
Im Prinzip ist das analog zu einem Galileo-computing - Beispiel (allerdings php 4, liegts daran?) gemacht worden.
<input type="checkbox" name="bQuestion1[]" />
dann bekommst du in php ein array und kannst per foreach() prüfen. nur kleiner tipp, bei unangehakten checkboxen bekommst du keine requestvariablen, du musst daher den entsprechenden arraykey auf !isset() prüfen.
nein.. benutze die SUPERGLOBAL arrays. alles weitere steht auf de2.php.netZitat von fatmike182thx .. dann muss ich aber trotzdem noch globals einschalten, oder?
Im Prinzip ist das analog zu einem Galileo-computing - Beispiel (allerdings php 4, liegts daran?) gemacht worden.

guat .. jez geh ich aber mal schlafen - dann les ich mir das nochmal durch (sry, hab das mit superglobel arrays nicht ganz verstanden jetzt - war das auf das script bezogen?)
thx nochmal!
schlafts gut & träumts süß...
dein selbstvertrauen möcht ich habenZitatthx nochmal!
schlafts gut & träumts süß...

<input type="Submit" name="send">
da hat send keinen value, daher vermute ich, daß es in php auch leer ist und damit würde if false ergeben. da müßtest du eher isset() nehmen und noch besser nen value vergeben.
wegen isset & value:
nope, am value kanns imho nicht liegen, weils ja ein formular ist & der Value von einem Submitbutton nur für den Text am Button gilt. Mit isset hab ichs auch versucht - leider unerfolgreich!
Aja: register globals ist auf Off; werde das auch beibehalten - hab zwar in dem Fall nur 1 Datei (also eh übersichtlich, falls das der Kritikpunkt ist), aber ich nehm an, bei meinem Webspace wirds auch off sein (ich texte grad beim Xampp).
@ mat: na das bissal Höflichkeit...
EDIT:
Es funktioniert!
Hab im Großen & Ganzen eigentlich nur das $_POST & das $_Server azugeschrieben (wird der Browser gestern irgendwie aus dem Cache galden haben, weils nicht gefunzt hat)
Zwar übergibt er jetzt das Send, die anderen Variablen nicht. Ich nehme an, das lässt sich auch mit $_POST lösen (da Formular ja über post gesendet)
TIA!
der value eines submitbuttons wird mit übergeben, wenn man auf den button klickt. klickt man nicht, sondern schickt das formular ab, indem man z.b. in einem imput-feld ist und enter drückt, wird der value nicht mit übergeben.
eÖÖ!
ohne mir jetzt über den eigentlichen Sinn der Funktion Gedanken zu machen verteufel ich PHP5 jetzt mal! Ahhhh... bei php4 hat man gepostete Namen von zB Checkboxen/Radios/... einfach als $namen übernhemen können. Ich hab das jetzt mit $namen = $_POST['namen'] machen müssen.
Ergebnis:
Code: PHP<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Untitled</title> </head> <body> <?php $gesendet = $_POST['gesendet']; if ($gesendet) { $rad = $_POST['rad']; $txt1 = $_POST['txt1']; $txt2 = $_POST['txt2']; $txt3 = $_POST['txt3']; $ch1 = $_POST['ch1']; $ch2 = $_POST['ch2']; $ch3 = $_POST['ch3']; $n1 = $ch1; $n1 .= $ch2; $n1 .= $ch3; echo "<p>Ergebnis:<br>"; echo "TXT: $txt1 $txt2 $txt3<br>"; echo "RAD: $rad<br>"; echo "CHK: $ch1 | $ch2 | $ch3<br>"; echo "</p><hr>"; echo "<p>n1 = $n1 | ch1: $ch1 | ch2: $ch2 | ch3: $ch3</p><hr>"; } else { echo "<b>nix</b><hr>"; ?> <form action="<?php $PHP_SELF ?>" method="post"> <p> <input type="Radio" name="rad" value="a"> a<br> <input type="Radio" name="rad" value="b"> b<br> <input type="Radio" name="rad" value="c"> c<br> </p><p> <input type="Checkbox" name="ch1" value="Wort1 "> ch1<br> <input type="Checkbox" name="ch2" value="Wort2 "> ch2<br> <input type="Checkbox" name="ch3" value="Wort3"> ch3<br> </p><p> <input type="Text" name="txt1"> txt1<br> <input type="Text" name="txt2"> txt2<br> <input type="Text" name="txt3"> txt3<br> </p> <input type="Submit" name="gesendet" value="absenden"> <input type="Reset" name="reset" value="abbrechen"> </form> <?php } ?> </body> </html>
liest du dir eigentlich auch nur ansatzweise durch, was wir geschrieben haben?
sry dio ... hab das ausschließlich auf den Submit-button bezogen. aber hab dann eh überrissen, wie du das gemeint hast (wie xagt, hab das früher immer anders gemacht & dann eingebildet, dass das noch immer so sein muss)
& wegen checkbox: ow, yeppa: array... muss ich mich dann erst einlesen.
Danke nochmal für die Hilfe - wär wohl lang nicht draufgekommen, wo der Bug ist!
& kannst bitte aufhören, dass du alles so komisch schreibst? das hat dir doch eh in einem anderen thread scho jemand xagt oder nicht? ow ey, jö, eöö ^^^!
komisch schreiben? hm?
"scho", "xagt", "dass"... ich bemüh mich ja eh.
btw. "vorerst solved"
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026