kostenloser Webspace werbefrei: lima-city


Was ist der Fehler?

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Hi !

    Bei folgendem Code wird mir folgender Fehler angezeigt:

    Parse error: syntax error, unexpected '}' in /home/webpages/lima-city/chathc/html/test/kontakt.php on line 27

    <?php 
    echo "<form method='post'> 
    <div align='center'> 
    <br><br> 
    <table> 
    <tr align='top'> 
    <td>Ihre Email: 
    </td> 
    <td><input type='text' name='absender' size='40'><br><br> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'>Inhalt der Nachricht (Warum wollen sie Beta-Tester werden, ...): 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><textarea name='text' style='width: 500px; height: 100px'></textarea> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><br><div align='center'><input type='submit' name='absenden' value=' Nachricht verschicken '></div> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form>"; 
    } 
    
    $submit = $_POST['absenden']; 
    
    
    if (!empty($submit)) { 
    $absender = $_POST['absender']; 
    $nachricht = "Von: ".$absender." 
    
    ".$_POST['text']; 
    
    $empfaenger = 'xxx@xxx.net'; 
    
    $betreff = 'Ein User hat das Kontaktformular ausgefüllt'; 
    
    $header = 'From: '.$absender; 
    
    
    
    mail($empfaenger, $betreff, $nachricht, $header); 
    
    "; 
    } 
    ?>


    Was ist der Fehler?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Du musst einfach in Zeile 27 das } weg machen. Steht doch schon in deinem Fehler:

    unerwartetes '}'
  4. t*****b

    Wohl eher das "; davor.
  5. trueweb schrieb:
    Wohl eher das "; davor.



    <?php 
    echo "<form method='post'> 
    <div align='center'> 
    <br><br> 
    <table> 
    <tr align='top'> 
    <td>Ihre Email: 
    </td> 
    <td><input type='text' name='absender' size='40'><br><br> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'>Inhalt der Nachricht (Warum wollen sie Beta-Tester werden, ...): 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><textarea name='text' style='width: 500px; height: 100px'></textarea> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><br><div align='center'><input type='submit' name='absenden' value=' Nachricht verschicken '></div> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form>"; 
    }


    Ich seh da kein ".
    Hier ist einfach das { nicht aufgemacht, aber das } zugemacht!

  6. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    Also, wenn ich in Zeile 27 das "}" wegmache, kommt der Fehler:

    Parse error: syntax error, unexpected $end in /home/webpages/lima-city/chathc/html/test/kontakt.php on line 49

    :-(
  7. Jetzt musst du noch in der drittletzten Zeile das
    ";


    wegmachen.
  8. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    cookies schrieb:
    Jetzt musst du noch in der drittletzten Zeile das
    ";


    wegmachen.



    Danke, es funktioniert !

    EDIT: Kannst du mir noch eine Funktion einbauen, die bei einem erfolgreichen Versand eine Meldung wie z.B. "Nachricht erfolgreich versendet" ausgibt?

    Beitrag zuletzt geändert: 13.3.2009 19:45:45 von davy
  9. In Zeile 27 ist "}" definitiv falsch. Das dann immer noch eine Fehlermeldung kommt liegt an einem weiteren Fehler. Mach mal die Zeichen "; in zeile 48 weg
  10. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    cheap-sms schrieb:
    In Zeile 27 ist "}" definitiv falsch. Das dann immer noch eine Fehlermeldung kommt liegt an einem weiteren Fehler. Mach mal die Zeichen "; in zeile 48 weg


    Hab ich schon gemacht, danke

    Kannst du mir noch eine Funktion einbauen, die bei einem erfolgreichen Versand eine Meldung wie z.B. "Nachricht erfolgreich versendet" ausgibt?
  11. Das geht so:
    <?php 
    
    $besttext = "";
    //HIER OBEN ZWISCHEN DEN ANFÜHRUNGSZEICHEN KOMMT DER BESTÄTIGUNGSTEXT
    
    echo "<form method='post'> 
    <div align='center'> 
    <br><br> 
    <table> 
    <tr align='top'> 
    <td>Ihre Email: 
    </td> 
    <td><input type='text' name='absender' size='40'><br><br> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'>Inhalt der Nachricht (Warum wollen sie Beta-Tester werden, ...): 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><textarea name='text' style='width: 500px; height: 100px'></textarea> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><br><div align='center'><input type='submit' name='absenden' value=' Nachricht verschicken '></div> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form>"; 
    
    $submit = $_POST['absenden']; 
    
    
    if (!empty($submit)) { 
    $absender = $_POST['absender']; 
    $nachricht = "Von: ".$absender." 
    
    ".$_POST['text']; 
    
    $empfaenger = 'xxx@xxx.net'; 
    
    $betreff = 'Ein User hat das Kontaktformular ausgefüllt'; 
    
    $header = 'From: '.$absender; 
    
    
    
    mail($empfaenger, $betreff, $nachricht, $header); 
    
    echo $besttext;
    
    } 
    ?>


    Übrigens: Bei dem Kontakformular wird es auch gesendet, wenn nichts eingegeben wurde!



    Beitrag zuletzt geändert: 13.3.2009 19:51:11 von cookies
  12. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    cookies schrieb:
    Das geht so:
    <?php 
    
    $besttext = "";
    //HIER OBEN ZWISCHEN DEN ANFÜHRUNGSZEICHEN KOMMT DER BESTÄTIGUNGSTEXT
    
    echo "<form method='post'> 
    <div align='center'> 
    <br><br> 
    <table> 
    <tr align='top'> 
    <td>Ihre Email: 
    </td> 
    <td><input type='text' name='absender' size='40'><br><br> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'>Inhalt der Nachricht (Warum wollen sie Beta-Tester werden, ...): 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><textarea name='text' style='width: 500px; height: 100px'></textarea> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><br><div align='center'><input type='submit' name='absenden' value=' Nachricht verschicken '></div> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form>"; 
    
    $submit = $_POST['absenden']; 
    
    
    if (!empty($submit)) { 
    $absender = $_POST['absender']; 
    $nachricht = "Von: ".$absender." 
    
    ".$_POST['text']; 
    
    $empfaenger = 'xxx@xxx.net'; 
    
    $betreff = 'Ein User hat das Kontaktformular ausgefüllt'; 
    
    $header = 'From: '.$absender; 
    
    
    
    mail($empfaenger, $betreff, $nachricht, $header); 
    
    echo $besttext;
    
    } 
    ?>


    Übrigens: Bei dem Kontakformular wird es auch gesendet, wenn nichts eingegeben wurde!




    Hab ich auch gerade gemerkt. Ist es möglich, zu prüfen, ob die Felder ausgefüllt wurden?
  13. o******e

    Jau, ist es.

    Kannst du entweder mit JavaScript machen, das erspart dem User lästiges neu eingeben der Daten nur weil er vergessen hat die Mail ADresse anzugeben, oder du machst es ganz tricky, du setzt einfach in value="" die Daten die der User übertragen hat ;)

    Da ich es zwar mit JavaScript könnte, ich aber keine Lust hab weil ich's nicht soo gut kann, mach ich es mit der zwoten lösung die auch nicht schlecht ist. ;)

    Mach es so ähnlich wie hier:
    <?php 
    
    $besttext = "";
    //HIER OBEN ZWISCHEN DEN ANFÜHRUNGSZEICHEN KOMMT DER BESTÄTIGUNGSTEXT
    
    $submit = htmlentities($_POST['absenden'], ENT_QUOTES, 'ISO-8859-15'); //Zur sicherheit alles Filtern.
    $absender = htmlentities($_POST['absender'], ENT_QUOTES, 'ISO-8859-15');
    $text = htmlentities($_POST['text'], ENT_QUOTES, 'ISO-8859-15');
    
    if (!empty($submit) AND !empty($absender) AND !empty($text)) { 
    $nachricht = "Von: ".$absender." 
    
    ".$text; 
    
    $empfaenger = 'xxx@xxx.net'; 
    $betreff = 'Ein User hat das Kontaktformular ausgefüllt'; 
    $header = 'From: '.$absender; 
    
    mail($empfaenger, $betreff, $nachricht, $header); 
    echo $besttext;
    
    } else {
    $value_absender= 'value="'.$absender.'"';
    
    echo "<form method='post'> 
    <div align='center'> 
    <br><br> 
    <table> 
    <tr align='top'> 
    <td>Ihre Email: 
    </td> 
    <td><input type='text' name='absender' size='40' ".$value_absender."><br><br> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'>Inhalt der Nachricht (Warum wollen sie Beta-Tester werden, ...): 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><textarea name='text' style='width: 500px; height: 100px' ">".$text."</textarea> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><br><div align='center'><input type='submit' name='absenden' value=' Nachricht verschicken '></div> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form>"; 
    }
    ?>


    Geht sicher eleganter, aber so sollte es wenigstens funktioniren.

    lg
    Oleander

    PS: Der code ist kein schönes und nicht valides html. :prost:

    €dit:
    Demo:
    http://olearose.de/help-you/davy/index.php

    Die Mails gehen an:
    http://www.mytrashmail.com/myTrashMail_inbox.aspx?email=help-you

    Beitrag zuletzt geändert: 13.3.2009 21:18:32 von olearose
  14. Mit Javascript würde ich das nicht machen. Einfach Javascript ausschalten und schon hat man keine Kontrolle.

    Wenn dann würde ich Javascript und PHP-Prüfung machen!
  15. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    olearose schrieb:
    Jau, ist es.

    Kannst du entweder mit JavaScript machen, das erspart dem User lästiges neu eingeben der Daten nur weil er vergessen hat die Mail ADresse anzugeben, oder du machst es ganz tricky, du setzt einfach in value="" die Daten die der User übertragen hat ;)

    Da ich es zwar mit JavaScript könnte, ich aber keine Lust hab weil ich's nicht soo gut kann, mach ich es mit der zwoten lösung die auch nicht schlecht ist. ;)

    Mach es so ähnlich wie hier:
    <?php 
    
    $besttext = "";
    //HIER OBEN ZWISCHEN DEN ANFÜHRUNGSZEICHEN KOMMT DER BESTÄTIGUNGSTEXT
    
    $submit = htmlentities($_POST['absenden'], ENT_QUOTES, 'ISO-8859-15'); //Zur sicherheit alles Filtern.
    $absender = htmlentities($_POST['absender'], ENT_QUOTES, 'ISO-8859-15');
    $text = htmlentities($_POST['text'], ENT_QUOTES, 'ISO-8859-15');
    
    if (!empty($submit) AND !empty($absender) AND !empty($text)) { 
    $nachricht = "Von: ".$absender." 
    
    ".$text; 
    
    $empfaenger = 'xxx@xxx.net'; 
    $betreff = 'Ein User hat das Kontaktformular ausgefüllt'; 
    $header = 'From: '.$absender; 
    
    mail($empfaenger, $betreff, $nachricht, $header); 
    echo $besttext;
    
    } else {
    $value_text = 'value="'.$text.'"'; //values fuer das Script
    $value_absender= 'value="'.$absender.'"';
    
    echo "<form method='post'> 
    <div align='center'> 
    <br><br> 
    <table> 
    <tr align='top'> 
    <td>Ihre Email: 
    </td> 
    <td><input type='text' name='absender' size='40' ".$value_nachricht."><br><br> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'>Inhalt der Nachricht (Warum wollen sie Beta-Tester werden, ...): 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><textarea name='text' style='width: 500px; height: 100px'  ".$value_nachricht."></textarea> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><br><div align='center'><input type='submit' name='absenden' value=' Nachricht verschicken '></div> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form>"; 
    }
    ?>


    Geht sicher eleganter, aber so sollte es wenigstens funktioniren.

    lg
    Oleander

    PS: Der code ist kein schönes und nicht valides html. :prost:


    Super, danke !

    Geht es noch, dass eine Meldung ausgegeben wird, wenn nicht alle Felder ausgefüllt wurden ?
  16. o******e

    Abend nochmal.
    Jau, das ist eignetlich kein Problem.
    Schau mal:
    <?php
    if(!empty($submit) AND empty($absender) OR empty($text)) {
    echo 'Du hast nicht alle Felder ausgef&uuml;llt, bitte f&uuml;lle alle Felder aus.';
    }
    ?>

    Das sollte gehen, wenn nicht:
    <?php
    if(!empty($submit)) {
    if(empty($absender) OR empty($text)) {
    echo 'Du hast nicht alle Felder ausgef&uuml;llt, bitte f&uuml;lle alle Felder aus.';
    }
    }
    ?>



    lg
    Oleander

    PS: Der Code den du hast ist fehlerhaft, Update in meinem letzen Post.

    Beitrag zuletzt geändert: 13.3.2009 21:19:14 von olearose
  17. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    olearose schrieb:
    Abend nochmal.
    Jau, das ist eignetlich kein Problem.
    Schau mal:
    <?php
    if(!empty($submit) AND empty($absender) OR empty($text)) {
    echo 'Du hast nicht alle Felder ausgef&uuml;llt, bitte f&uuml;lle alle Felder aus.';
    }
    ?>

    Das sollte gehen, wenn nicht:
    <?php
    if(!empty($submit)) {
    if(empty($absender) OR empty($text)) {
    echo 'Du hast nicht alle Felder ausgef&uuml;llt, bitte f&uuml;lle alle Felder aus.';
    }
    }
    ?>



    lg
    Oleander

    PS: Der Code den du hast ist fehlerhaft, Update in meinem letzen Post.


    Der zweite hat funktioniert ;)

    Danke !
  18. o******e

    Her nochmal das Ganze Werk:
    <?php 
    
    $besttext = "";
    //HIER OBEN ZWISCHEN DEN ANFÜHRUNGSZEICHEN KOMMT DER BESTÄTIGUNGSTEXT
    
    $submit = htmlentities($_POST['absenden'], ENT_QUOTES, 'ISO-8859-15'); //Zur sicherheit alles Filtern.
    $absender = htmlentities($_POST['absender'], ENT_QUOTES, 'ISO-8859-15');
    $text = htmlentities($_POST['text'], ENT_QUOTES, 'ISO-8859-15');
    
    if (!empty($submit) AND !empty($absender) AND !empty($text)) { 
    $nachricht = "Von: ".$absender." 
    
    ".$text; 
    
    $empfaenger = 'xxx@xxx.net'; 
    $betreff = 'Ein User hat das Kontaktformular ausgefüllt'; 
    $header = 'From: '.$absender; 
    
    mail($empfaenger, $betreff, $nachricht, $header); 
    echo $besttext;
    } else {
    $value_absender= 'value="'.$absender.'"';
    
    if(!empty($submit)) {
    if(empty($absender) OR empty($text)) {
    echo 'Du hast nicht alle Felder ausgef&uuml;llt, bitte f&uuml;lle alle Felder aus.';
    }
    }
    
    echo "<form method='post'> 
    <div align='center'> 
    <br><br> 
    <table> 
    <tr align='top'> 
    <td>Ihre Email: 
    </td> 
    <td><input type='text' name='absender' size='40'  ".$value_absender."><br><br> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'>Inhalt der Nachricht (Warum wollen sie Beta-Tester werden, ...): 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><textarea name='text' style='width: 500px; height: 100px'>".$text."</textarea> 
    </td> 
    </tr> 
    <tr align='top'> 
    <td colspan='2'><br><div align='center'><input type='submit' name='absenden' value=' Nachricht verschicken '></div> 
    </td> 
    </tr> 
    </table> 
    </div> 
    </form>"; 
    }
    ?>

    Nicht das du den alten Fehlerhaften nutzt.

    lg
    Oleander

    €dit:
    sorry, war wieder Falsch :D
    Jetzt sollte es gehen :D

    €dit2:
    Jap, geht.
    Demo:
    http://olearose.de/help-you/davy/index.php
    Mails sollten an diese Adresse gehen:
    http://www.mytrashmail.com/myTrashMail_inbox.aspx?email=help-you

    Beitrag zuletzt geändert: 13.3.2009 21:29:03 von olearose
  19. Am besten kombiniesrt Du das ganze auch noch mit javascript.

    Füge irgendwo diesen Code ein:
    <script type="text/javascript">
    <!--
     function chkfelder()
     {
     var absender = document.betaform.absender.value;
     var text = document.betaform.text.value;
     if(absender=="")
     {
                     alert('Bitte geben Sie den absender ein');
                     return false;
     }else if(text=="")
     {
                 alert('Bitte geben Sie einen Text ein');
                 return false;
     }else
     {
          return true;
     }
     }
    //-->
    </script>


    und ändere dein Form-Tag folgendermassen:
    <form method='post' name="betaform"  onsubmit="return chkfelder();">
  20. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!