DFBL-Benjamin Geschrieben 23. Dezember 2002 Geschrieben 23. Dezember 2002 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! Zitieren
Impulz Geschrieben 23. Dezember 2002 Geschrieben 23. Dezember 2002 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 Zitieren
DFBL-Benjamin Geschrieben 23. Dezember 2002 Autor Geschrieben 23. Dezember 2002 ich habe das echo vergessen! jetzt geht es! jetzt muss nur noch das Programm das machen, was ich will! vielen dank! Zitieren
DFBL-Benjamin Geschrieben 24. Dezember 2002 Autor Geschrieben 24. Dezember 2002 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? Zitieren
TitoBonn Geschrieben 1. Januar 2003 Geschrieben 1. Januar 2003 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! Zitieren
DFBL-Benjamin Geschrieben 2. Januar 2003 Autor Geschrieben 2. Januar 2003 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! Zitieren
conym18 Geschrieben 9. Januar 2003 Geschrieben 9. Januar 2003 kann es vielleicht sein das es an deinem webserver liegt, wenn du keinen apache web server nutzt kann es durchaus sein Zitieren
cgdesign Geschrieben 9. Januar 2003 Geschrieben 9. Januar 2003 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 Zitieren
pink_panther2oo2 Geschrieben 9. Januar 2003 Geschrieben 9. Januar 2003 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 Zitieren
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.