Veröffentlicht 23. Dezember 200222 j wie funktioniert der Formularaufruf, wenn sich die PHP-Datei nach einem Klick selbstaufrufen soll? muss man da was in der PHP.INI einstellen, das es auf dem Foxserv funktioniert? weil bei mir will er das nicht ausführen! wenn ich dann auf Weiterleiten drücke steht in der Url: http://www.dfbl.org/..../$PHP_SELF! was habe ich da falsch gemacht? Beispiel wäre nicht schlecht!
23. Dezember 200222 j Hallo, ich weiss nicht wie deine Datei aussieht, aber damit du $PHP_SELF benutzen kannst, muss es a) eine Datei sein die vom PHP Interpreter geparst wird (d.h. vermutlich die Endung .php haben muss das $PHP_SELF in nem PHP-Block stehen. Das heisst du koenntest es z.b. so machen: <form action="<?php echo $PHP_SELF?>" method="post"> .... gruss Michael
23. Dezember 200222 j ich habe das echo vergessen! jetzt geht es! jetzt muss nur noch das Programm das machen, was ich will! vielen dank!
24. Dezember 200222 j folgendes Programm: <?php if ($sent & $name) { echo <<<FORMANSWER Sie haben folgende Nachricht gesendet:<p /> <b>Ihr Name:</b> $name<br /> <b>E-Mail:</b> $email<br /> <b>Bewertung:</b> $rank<br /> <b>Ihre Nachricht:</b> <br /> <div style="background-color:#DDDDDD">$message</div> <b>Gekauft bei: </b>$purchase <form method="post" action="$PHP_SELF"> <input type="submit" value="Neue Nachricht senden?" /> </form> FORMANSWER; } else { ?> 016: <h3>Wie hat Ihnen das Buch bisher gefallen?</h3> 017: <form method="post" action="$PHP_SELF"> 018: <table> 019: <tr> 020: <td>Mein Name:</td> 021: <td><input type="text" name="name" size="50" /></td> 022: </tr> 023: <tr> 024: <td>Meine E-Mail:</td> 025: <td><input type="text" name="email" size="50" /></td> 026: </tr> 027: <tr> 028: <td>Bewertung:</td> 029: <td> 030: 1<input type="radio" name="rank" value="1" /> 031: 2<input type="radio" name="rank" value="2" checked="checked" /> 032: 3<input type="radio" name="rank" value="3" /> 033: 4<input type="radio" name="rank" value="4" /> 034: 5<input type="radio" name="rank" value="5" /> 035: (Schulnoten) 036: </td> 037: </tr> 038: <tr> 039: <td valign="top">Nachricht:</td> 040: <td> 041: <textarea cols="30" rows="6" name="message">Ihre Nachricht...</textarea> 042: </td> 043: </tr> 044: <tr> 045: <td>Wo haben Sie es gekauft?</td> 046: <td> 047: <select size="1" name="purchase"> 048: <option value="Fachbuchhandel" />Fachbuchhandel 049: <option value="Kaufhaus" />Kaufhaus 050: <option value="Online" />Online 051: <option value="Verlag" />Verlag 052: <option value="Nur geliehen" />Nur geliehen 053: </select> 054: </td> 055: </tr> 056: <tr> 057: <td colspan="2"> 058: <input type="submit" value="Absenden" /> 059: <input type="reset" /> 060: <input type="hidden" name="sent" value="1" /> 061: </td> 062: </tr> 063: </table> 064: </form> 065: <?php } /* end if */ ?> [/PHP] bringt folgende Fehlermeldung: Parse error: parse error, unexpected $ in C:\FoxServ\www\intern\uebungen\bsp20.php on line 71 das ist die letzte Zeile im Programm! weis nicht wo der einen Fehler sieht! weil das Programm habe ich von einer CD wo bei meinem PHP-Buch dabei war! hoffe, einer kann mir helfen! nochwas: Als erstes kommt ein Eingabebildschirm und danach sollen die Daten in der if-Anweisung wieder ausgegeben werden, das klappt nicht, was ist falsch daran?
1. Januar 200322 j 1. Habe ich das mit dem FORMANSWER noch nie gesehen. Lass das weg. Ist wahrscheinlich Müll. Ich weis es aber nicht. Mach mal einzelne echos draus: ...... echo "<b>Ihr Name:</b> {$name} <br />"; ...... Der nächste Fehler wird hier sein: 017: <form method="post" action="$PHP_SELF"> ändern in: 017: <form method="post" action="<?=$PHP_SELF ?>"> Im Normalfall ist es so, wenn ein Fehler in der letzten Zeile angezeigt wird, hast Du irgendwo vergessen eine if Abfrage oder eine Schleife oder ähnliches zu schließen. Als nächstes würde ich mir mal gedanken über die Formatierung des Quelltextes machen. Ganz so professionell sieht das nicht aus!
2. Januar 200322 j ich habe das Programm auch von einer CD-Runterkopiert. das mit dem echo >>>Anweiser ..... >>>Anweiser funktioniert nicht immer, das ist das komische! und deswegen habe ich das mit $PHP_SELF schon geschafft mit einem anderen Programm!
9. Januar 200322 j kann es vielleicht sein das es an deinem webserver liegt, wenn du keinen apache web server nutzt kann es durchaus sein
9. Januar 200322 j Hi, bin neu hier Na dann wollen wir mal: Du hast dir aber ein tolles Buch gekauft. Ok jeder fängt klein an Sooo ich habs für dich mal eben umgeschrieben! Weils so total falsch war. Heutzutage arbeiten die PHPler nicht mehr mit Globalen Variablen sondern mit Superglobals. Ist ein sehr wichtiger Sicherheitsstandpunkt! Ist ab der Version 4.2 so halt gesetzt. Gabs aber vorher auch schon! Jedenfalls solltest du die Variablen immer so schreiben wie ich! Hier mal mein veränderter Code: <?php if($_POST['action']=="senden") { echo "Sie haben folgende Nachricht gesendet:<p />"; echo "<b>Ihr Name:</b> ".$_POST['name']."<br />"; echo "<b>E-Mail:</b> ".$_POST['email']."<br />"; echo "<b>Bewertung:</b> ".$_POST['rank']."<br />"; echo "<b>Ihre Nachricht:</b> <br />"; echo "<div style=\"background-color:#DDDDDD\">".$_POST['message']."</div>"; echo "<b>Gekauft bei: </b>".$_POST['purchase'].""; } ?> <h3>Wie hat Ihnen das Buch bisher gefallen?</h3> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> <input type="hidden" name="action" value="senden"> <table> <tr> <td>Mein Name:</td> <td><input type="text" name="name" size="50" /></td> </tr> <tr> <td>Meine E-Mail:</td> <td><input type="text" name="email" size="50" /></td> </tr> <tr> <td>Bewertung:</td> <td> 1<input type="radio" name="rank" value="1" /> 2<input type="radio" name="rank" value="2" checked="checked" /> 3<input type="radio" name="rank" value="3" /> 4<input type="radio" name="rank" value="4" /> 5<input type="radio" name="rank" value="5" /> (Schulnoten) </td> </tr> <tr> <td valign="top">Nachricht:</td> <td> <textarea cols="30" rows="6" name="message">Ihre Nachricht...</textarea> </td> </tr> <tr> <td>Wo haben Sie es gekauft?</td> <td> <select size="1" name="purchase"> <option value="Fachbuchhandel" />Fachbuchhandel <option value="Kaufhaus" />Kaufhaus <option value="Online" />Online <option value="Verlag" />Verlag <option value="Nur geliehen" />Nur geliehen </select> </td> </tr> <tr> <td colspan="2"> <input type="submit" value="Absenden" /> <input type="reset" /> </td> </tr> </table> </form> [/PHP] Er geht, hab ihn selbst getestet Ansonsten halt nochmal fragen oder so! Gruß cg
9. Januar 200322 j nur mal so am rand das sollte bei PHP Versionen unter 4.1.0 nicht laufen: $_SERVER['PHP_SELF'] vielleicht besser $HTTP_SERVER_VARS['PHP_SELF'] verwenden das geht auch drunter und der fehler oben war echo <<< WERT WERT; vor wert darf kein leerzeichen sein sonst erkennt er das nicht als ende des blocks
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.