Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: PHP -Kontaktformular-Script Fehler

  1. #1
    Teeny
    Registriert seit
    22.11.2007
    Beiträge
    21
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard PHP -Kontaktformular-Script Fehler

    Hallo,

    bin ein absoluter Neuling und wollte folgendes php-Kontaktformular-script in meine HP einbinden.

    Code:
    <?php
    
    $mail_to="Sebastian-...";
    
    $from_name=$_POST&#91;'fromname'&#93;;
    $from_mail=strtolower&#40;$_POST&#91;'frommail'&#93;&#41;;
    $mail_subject=$_POST&#91;'mailsubject'&#93;;
    $mail_text=$_POST&#91;'mailtext'&#93;;
    $send=$_POST&#91;'s'&#93;;
    
    //*** Dieser Text soll u.a. unter der Textbox erscheinen***
    
    if&#40;trim&#40;$from_name&#41;==""&#41; $err_text.="Bitte Namen angeben.
    ";
    if&#40;trim&#40;$from_mail&#41;==""&#41; $err_text.="Bitte E-Mail-Adresse angeben.
    ";
    else
      if&#40;!ereg&#40;"^&#91;_a-z0-9-&#93;+&#40;\.&#91;_a-z0-9-&#93;+&#41;*@&#91;a-z0-9-&#93;+&#40;\.&#91;a-z0-9-&#93;+&#41;*&#40;\.&#91;a-z&#93;&#123;2,6&#125;&#41;$",$from_mail&#41;&#41;
        $err_text.="Bitte eine gültige E-Mail-Adresse angeben.
    ";
    if&#40;trim&#40;$mail_subject&#41;==""&#41; $err_text.="Bitte Betreff eingeben.
    ";
    if&#40;trim&#40;$mail_text&#41;==""&#41; $err_text.="Bitte Nachrichtentext eingeben.
    ";
    
    
    if&#40;strlen&#40;$mail_text&#41;>1000&#41; &#123;
      $mail_text=substr&#40;$mail_text,0,1000&#41;."... &#40;Text wurde gekürzt!&#41;";
    &#125;
    
    
    $from_name=str_replace&#40;chr&#40;34&#41;,"''",$from_name&#41;;
    $mail_subject=str_replace&#40;chr&#40;34&#41;,"''",$mail_subject&#41;;
    $from_name=stripslashes&#40;$from_name&#41;;
    $from_mail=stripslashes&#40;$from_mail&#41;;
    $mail_subject=stripslashes&#40;$mail_subject&#41;;
    $mail_text=stripslashes&#40;$mail_text&#41;;
    
    if&#40;&#40;$send=="1"&#41; && &#40;isset&#40;$err_text&#41;&#41;&#41; &#123;
      echo "
    
    Fehler&#58;
    ";
      echo "$err_text</p>";
    &#125;
    
    if&#40;&#40;$send!="1"&#41; || &#40;isset&#40;$err_text&#41;&#41;&#41;
    &#123;
    ?>
    
    <form action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;; ?>" method="post">
    <table border=0 cellspacing=2 cellpadding=0 width=100%>
    <tr><td nowrap align=right class="Stil6">Dein Name&#58;</td><td></td>
    <td width=100%><input type="text" name="fromname" size=25 maxlength=120 value="<?php echo $from_name; ?>"></td></tr>
    <tr><td nowrap align=right class="Stil6">E-Mail Adresse&#58;</td><td></td>
    <td width=100%><input type="text" name="frommail" size=25 maxlength=120 value="<?php echo $from_mail; ?>"></td></tr>
    <tr><td nowrap align=right class="Stil6">Betreff&#58;</td><td></td>
    <td width=100%><input type="text" name="mailsubject" size=25 maxlength=120 value="<?php echo $mail_subject; ?>"></td></tr>
    <tr><td nowrap align=right valign=top class="Stil6">Textmitteilung&#58;
    &#40;max. 1.000 Zeichen&#41;</td><td></td>
    <td width=100%><textarea cols="40" rows="8" name="mailtext"><?php echo $mail_text; ?></textarea></td></tr>
    <tr><td></td><td></td><td>
    <input type="hidden" value="1" name="s">
    <input type="submit" value="Nachricht versenden" name="submit">
    </td></tr>
    </table>
    </form>
    
    <?php
    &#125; else &#123;
      $header="From&#58; $from_name <$from_mail>\n";
      $header.="Reply-To&#58; $from_mail\n";
      $header.="X-Mailer&#58; PHP-FormMailer \n";
      $header.="Content-Type&#58; text/plain";
      $mail_date=gmdate&#40;"D, d M Y H&#58;i&#58;s"&#41;." +0000";
      $send=0;
      if&#40;@mail&#40;$mail_to,$mail_subject,$mail_text,$header&#41;&#41;
      &#123;
        echo "
    
    Deine E-Mail wurde abgesendet.</p>";
        echo "
    
    <a href=\"".$_SERVER&#91;'PHP_SELF'&#93;."?from_name=$from_name&from_mail=$from_mail\">  &#91;Zurück&#93;  </a></p>";
      &#125;else&#123;
        echo "
    
    Beim Versenden der E-Mail ist ein Fehler aufgetreten!</p>";
        echo "
    
    <a href=\"".$_SERVER&#91;'PHP_SELF'&#93;."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
        echo urlencode&#40;$mail_text&#41;."\"> <stong> &#91;Zurück&#93; [/b] </a></p>";
      &#125;
    &#125;
    ?>
    Da ich keine Ahnung von diesem PHP-Script habe würde ich jetzt ganz gerne wissen, wie ich

    (1) Fehlermeldungen anstatt über den Kontaktfeldern unter dem Textfeld anzeigen lassen kann
    (2) Fehlermeldungen wie "Bitte eine gültige E-Mail-Adresse angeben!" ohne Zeilenumbruch anzeigen lassen kann
    (3) den Fehlerhinweis ($err_text.) rot formatieren kann ("Fehler:" soll rot sein)
    (4) einzelne Textpassagen in den Meldungen formatieren kann z.B. spezielle echo-Texte.

    Wenn mir jemand mit meinem kleinen Problem weiterhelfen könnte, wäre ich dafür äusserst dankbar.

    Wer das Problem in der Realität erleben möchte, kann es sich unter www.sl-x.info/Kontakt.php ansehen, dann wird auch deutlich warum ich Hilfe benötige.

    Vielen Dank im Voraus!
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!

  2. #2
    Meister(in)
    Registriert seit
    20.05.2005
    Ort
    Rheinland-Pfalz
    Beiträge
    275
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Was für Textpassagen willst du ändern können?

    Hier der restliche Code angepasst auf deinen Zweck:

    Code:
    <?php
    
    $mail_to="Sebastian-...";
    
    $from_name=$_POST&#91;'fromname'&#93;;
    $from_mail=strtolower&#40;$_POST&#91;'frommail'&#93;&#41;;
    $mail_subject=$_POST&#91;'mailsubject'&#93;;
    $mail_text=$_POST&#91;'mailtext'&#93;;
    $send=$_POST&#91;'s'&#93;;
    
    //*** Dieser Text soll u.a. unter der Textbox erscheinen***
    
    if&#40;trim&#40;$from_name&#41;==""&#41; $err_text.="Bitte Namen angeben.
    ";
    if&#40;trim&#40;$from_mail&#41;==""&#41; $err_text.="Bitte E-Mail-Adresse angeben.
    ";
    else
      if&#40;!ereg&#40;"^&#91;_a-z0-9-&#93;+&#40;\.&#91;_a-z0-9-&#93;+&#41;*@&#91;a-z0-9-&#93;+&#40;\.&#91;a-z0-9-&#93;+&#41;*&#40;\.&#91;a-z&#93;&#123;2,6&#125;&#41;$",$from_mail&#41;&#41;
        $err_text.="Bitte eine gültige E-Mail-Adresse angeben.
    ";
    if&#40;trim&#40;$mail_subject&#41;==""&#41; $err_text.="Bitte Betreff eingeben.
    ";
    if&#40;trim&#40;$mail_text&#41;==""&#41; $err_text.="Bitte Nachrichtentext eingeben.
    ";
    
    
    if&#40;strlen&#40;$mail_text&#41;>1000&#41; &#123;
      $mail_text=substr&#40;$mail_text,0,1000&#41;."... &#40;Text wurde gekürzt!&#41;";
    &#125;
    
    
    $from_name=str_replace&#40;chr&#40;34&#41;,"''",$from_name&#41;;
    $mail_subject=str_replace&#40;chr&#40;34&#41;,"''",$mail_subject&#41;;
    $from_name=stripslashes&#40;$from_name&#41;;
    $from_mail=stripslashes&#40;$from_mail&#41;;
    $mail_subject=stripslashes&#40;$mail_subject&#41;;
    $mail_text=stripslashes&#40;$mail_text&#41;;
    
    if&#40;&#40;$send=="1"&#41; && &#40;isset&#40;$err_text&#41;&#41;&#41; &#123;
      $err_text = "
    
    <font color=\"red\">Fehler&#58;</font> ".$err_text."</p>";
    &#125;
    
    if&#40;&#40;$send!="1"&#41; || &#40;isset&#40;$err_text&#41;&#41;&#41;
    &#123;
    ?>
    
    <form action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;; ?>" method="post">
    <table border=0 cellspacing=2 cellpadding=0 width=100%>
    <tr><td nowrap align=right class="Stil6">Dein Name&#58;</td><td></td>
    <td width=100%><input type="text" name="fromname" size=25 maxlength=120 value="<?php echo $from_name; ?>"></td></tr>
    <tr><td nowrap align=right class="Stil6">E-Mail Adresse&#58;</td><td></td>
    <td width=100%><input type="text" name="frommail" size=25 maxlength=120 value="<?php echo $from_mail; ?>"></td></tr>
    <tr><td nowrap align=right class="Stil6">Betreff&#58;</td><td></td>
    <td width=100%><input type="text" name="mailsubject" size=25 maxlength=120 value="<?php echo $mail_subject; ?>"></td></tr>
    <tr><td nowrap align=right valign=top class="Stil6">Textmitteilung&#58;
    &#40;max. 1.000 Zeichen&#41;</td><td></td>
    <td width=100%><textarea cols="40" rows="8" name="mailtext"><?php echo $mail_text; ?></textarea></td></tr>
    <tr><td></td><td></td><td>
    <input type="hidden" value="1" name="s">
    <input type="submit" value="Nachricht versenden" name="submit">
    </td></tr>
    </table>
    </form>
    
    <?php
    echo $err_text;
    &#125; else &#123;
      $header="From&#58; $from_name <$from_mail>\n";
      $header.="Reply-To&#58; $from_mail\n";
      $header.="X-Mailer&#58; PHP-FormMailer \n";
      $header.="Content-Type&#58; text/plain";
      $mail_date=gmdate&#40;"D, d M Y H&#58;i&#58;s"&#41;." +0000";
      $send=0;
      if&#40;@mail&#40;$mail_to,$mail_subject,$mail_text,$header&#41;&#41;
      &#123;
        echo "
    
    Deine E-Mail wurde abgesendet.</p>";
        echo "
    
    <a href=\"".$_SERVER&#91;'PHP_SELF'&#93;."?from_name=$from_name&from_mail=$from_mail\">  &#91;Zurück&#93;  </a></p>";
      &#125;else&#123;
        echo "
    
    Beim Versenden der E-Mail ist ein Fehler aufgetreten!</p>";
        echo "
    
    <a href=\"".$_SERVER&#91;'PHP_SELF'&#93;."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
        echo urlencode&#40;$mail_text&#41;."\"> <stong> &#91;Zurück&#93; [/b] </a></p>";
      &#125;
    &#125;
    ?>

  3. #3
    Teeny
    Themenstarter

    Registriert seit
    22.11.2007
    Beiträge
    21
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Halbe Miete

    Ähm, irgendwie bekomme ich jetzt von vornherein alle Fehler angezeigt...

    Sieht man von diesem Missstand ab, steht jetzt die Fehlermeldung wie gewünscht unter der Textbox ... und der Text "Fehler:" wird rot dargestellt. Super!



    Aber: Wie bekomme ich es hin, dass mir in der Fehlermeldung kein Zeilenumbruch eingebaut wird...

    Bsp. Bei der Eingabe einer ungültigen E-Mail Adresse kommt der Text:

    "Bitte eine gültige E-Mail Adresse eingeben!"

    Diese Zeile wird aber aus irgendwelchen Gründen nach "Adresse" gebrochen.

    Diesen Fehler in der Anzeige möchte ich vermeiden.

    Ferner wäre es schön, wenn ich mir einzelne Anzeigetexte farblich individuell formatieren könnte (z.B. die verschiedenen Fehlermeldungen). Die Html-Textformatierung scheint da nicht zu wirken.

    Vielen Dank für eure Hilfe!

    P.s. Zur Veranschaulichung der Problematik unter www.sl-x.info/Kontakt.php einfach eine falsche E-Mail Adresse eingeben!

  4. #4
    Meister(in)
    Registriert seit
    20.05.2005
    Ort
    Rheinland-Pfalz
    Beiträge
    275
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hier nochmal der Code:

    Code:
    <?php
    
    $mail_to="Sebastian-...";
    
    $from_name=$_POST&#91;'fromname'&#93;;
    $from_mail=strtolower&#40;$_POST&#91;'frommail'&#93;&#41;;
    $mail_subject=$_POST&#91;'mailsubject'&#93;;
    $mail_text=$_POST&#91;'mailtext'&#93;;
    $send=$_POST&#91;'s'&#93;;
    
    
    if&#40;trim&#40;$from_name&#41;==""&#41; $err_text.="  Bitte Namen angeben.
    \n";
    if&#40;trim&#40;$from_mail&#41;==""&#41; $err_text.="  Bitte E-Mail-Adresse angeben.
    \n";
    else
      if&#40;!ereg&#40;"^&#91;_a-z0-9-&#93;+&#40;\.&#91;_a-z0-9-&#93;+&#41;*@&#91;a-z0-9-&#93;+&#40;\.&#91;a-z0-9-&#93;+&#41;*&#40;\.&#91;a-z&#93;&#123;2,6&#125;&#41;$",$from_mail&#41;&#41;
        $err_text.="  Bitte eine gültige E-Mail-Adresse angeben.
    \n";
    if&#40;trim&#40;$mail_subject&#41;==""&#41; $err_text.="  Bitte Betreff eingeben.
    \n";
    if&#40;trim&#40;$mail_text&#41;==""&#41; $err_text.="  Bitte Nachrichtentext eingeben.
    \n";
    
    
    if&#40;strlen&#40;$mail_text&#41;>1000&#41; &#123;
      $mail_text=substr&#40;$mail_text,0,1000&#41;."... &#40;Text wurde gekürzt!&#41;";
    &#125;
    
    
    $from_name=str_replace&#40;chr&#40;34&#41;,"''",$from_name&#41;;
    $mail_subject=str_replace&#40;chr&#40;34&#41;,"''",$mail_subject&#41;;
    $from_name=stripslashes&#40;$from_name&#41;;
    $from_mail=stripslashes&#40;$from_mail&#41;;
    $mail_subject=stripslashes&#40;$mail_subject&#41;;
    $mail_text=stripslashes&#40;$mail_text&#41;;
    
    if&#40;&#40;$send=="1"&#41; && &#40;isset&#40;$err_text&#41;&#41;&#41; &#123;
      $err_text = "
    
    \n  <font color=\"red\">Fehler&#58;</font>
    \n".$err_text."</p>\n";
    &#125;
    
    if&#40;&#40;$send!="1"&#41; || &#40;isset&#40;$err_text&#41;&#41;&#41;
    &#123;
    ?>
    
    <form action="<?php echo $_SERVER&#91;'PHP_SELF'&#93;; ?>" method="post">
    <table border=0 cellspacing=2 cellpadding=0 width=100%>
      <tr>
        <td nowrap align=right class="Stil6">Dein Name&#58;</td>
        <td></td>
        <td width=100%><input type="text" name="fromname" size=25 maxlength=120 value="<?php echo $from_name; ?>"></td>
      </tr>
      <tr>
        <td nowrap align=right class="Stil6">E-Mail Adresse&#58;</td>
        <td></td>
        <td width=100%><input type="text" name="frommail" size=25 maxlength=120 value="<?php echo $from_mail; ?>"></td>
      </tr>
      <tr>
        <td nowrap align=right class="Stil6">Betreff&#58;</td>
        <td></td>
        <td width=100%><input type="text" name="mailsubject" size=25 maxlength=120 value="<?php echo $mail_subject; ?>"></td>
      </tr>
      <tr>
        <td nowrap align=right valign=top class="Stil6">Textmitteilung&#58;
    &#40;max. 1.000 Zeichen&#41;</td>
        <td></td>
        <td width=100%><textarea cols="40" rows="8" name="mailtext"><?php echo $mail_text; ?></textarea></td>
      </tr>
      <tr>
        <td></td>
        <td></td>
        <td>
          <input type="hidden" value="1" name="s">
          <input type="submit" value="Nachricht versenden" name="submit">
        </td>
      </tr>
    </table>
    </form>
    
    <?php
    if &#40;$send == 1&#41; echo $err_text;
    &#125; else &#123;
      $header="From&#58; $from_name <$from_mail>\n";
      $header.="Reply-To&#58; $from_mail\n";
      $header.="X-Mailer&#58; PHP-FormMailer \n";
      $header.="Content-Type&#58; text/plain";
      $mail_date=gmdate&#40;"D, d M Y H&#58;i&#58;s"&#41;." +0000";
      $send=0;
      if&#40;@mail&#40;$mail_to,$mail_subject,$mail_text,$header&#41;&#41;
      &#123;
        echo "
    
    Deine E-Mail wurde abgesendet.</p>";
        echo "
    
    <a href=\"".$_SERVER&#91;'PHP_SELF'&#93;."?from_name=$from_name&from_mail=$from_mail\">  &#91;Zurück&#93;  </a></p>";
      &#125;else&#123;
        echo "
    
    Beim Versenden der E-Mail ist ein Fehler aufgetreten!</p>";
        echo "
    
    <a href=\"".$_SERVER&#91;'PHP_SELF'&#93;."?from_name=$from_name&from_mail=$from_mail&mail_subject=$mail_subject&mail_text=";
        echo urlencode&#40;$mail_text&#41;."\"> <stong> &#91;Zurück&#93; [/b] </a></p>";
      &#125;
    &#125;
    ?>
    Die individiuelle Formatierung musst du schon selbst machen. Suche in der Datei einfach den Text den du bearbeiten willst und bearbeite ihn. Achte dabei darauf, wenn du <a href="LINK... schreibst, dass du <a href=\"LINK... schreibst.

    Desweiteren kannste dir hier die Datei mal anschauen: http://yngvarlap.no-ip.biz/forum-hilfe_001.php

  5. #5
    Meister(in)
    Registriert seit
    20.05.2005
    Ort
    Rheinland-Pfalz
    Beiträge
    275
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Woran es liegt, dass auf deiner Seite ein Zeilenumbruch an dieser Stelle gemacht wird liegt an folgendem:

    Ein paar Zeile bevor du den PHP-Code einfügst steht folgendes:
    Code:
    <div id="Layer7" style="position&#58; absolute; width&#58; 200px; height&#58; 115px; z-index&#58; 17; left&#58; 250px; top&#58; 222px;" class="Stil6">
    Der Parameter width=200px muss mehr werden, stell ihn auf 500 oder sowas in der Art.

    Gruß Heinrich

  6. #6
    Teeny
    Themenstarter

    Registriert seit
    22.11.2007
    Beiträge
    21
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Vielen Dank nochmals

    Dein Code geht auf... nur der verdammte Zeilenumbruch bleibt auf meiner HP bestehen! ...

    Woran mag das liegen...

    habe das layout der seite jetzt geändert ... so dass es nicht so gravierend ist, aber ohne zeilenumbrauch wäre es besser...

    Danke!

  7. #7
    Meister(in)
    Registriert seit
    20.05.2005
    Ort
    Rheinland-Pfalz
    Beiträge
    275
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    wie ich schon sagte, ich hab deine seite mal local gespeichert und die obige zeile den width wert auf 500px gesetzt, dann hat es einwandfrei funktioniert.

  8. #8
    Teeny
    Themenstarter

    Registriert seit
    22.11.2007
    Beiträge
    21
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Sauber!!!

    Vielen, vielen Dank für deine Hilfe!


    Die Probleme sind gelöst.

    Noch frohes Schaffen und Grüße

    P.s. hatte deine Nachricht gelesen und meine Antwort zwar geschrieben aber vergessen abzuschicken.
    Dies geschah scheinbar erst einige Zeit später, deshalb kam es zu der zeitlichen Überschneidung.

  9. #9
    Bandit
    Gast

    Standard

    Hallo,

    hier noch einige Anregungen zu dem Script:
    Code:
    $from_name=$_POST&#91;'fromname'&#93;;
    Hier wird einfach auf die Post-Variable zugegriffen. Beim ersten Aufruf existiert diese Variable aber nicht. Deshalb sollte man das so schreiben:
    Code:
    $from_name = &#40;isset&#40;$_POST&#91;'fromname'&#93;&#41;&#41; ? $_POST&#91;'fromname'&#93; &#58; "";
    $_SERVER['PHP_SELF'] sollte man nicht benutzen, google mal mit php_self und xss füttern.

    Gruß
    bandit

  10. #10
    König(in)
    Registriert seit
    06.06.2007
    Ort
    Bi
    Beiträge
    1.015
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    man sollte aber auch nicht nach isset Prüfen, sondern ob das Element leer ist, gesetzt wird das Element ja schon wenn du das Formular abschickst.
    Sämtlicher Code erhebt keinen Anspruch auf syntaktische Korrektheit geschweige denn Ausführbarkeit und ist für die Implementation außerhalb der Beispiele nicht geeignet.

    Kein Support für kommerzielle Scripts | Kein kostenloser Support via ICQ

Ähnliche Themen

  1. Kontaktformular. Wo liegt der Fehler?
    Von im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 8
    Letzter Beitrag: 29.01.2007, 23:04
  2. Kontaktformular Fehler
    Von Ivonne im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 20
    Letzter Beitrag: 17.08.2006, 23:51
  3. Fehler in Script
    Von Franzi im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 20.08.2005, 19:04
  4. Fehler im Script
    Von scout1979 im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 10
    Letzter Beitrag: 13.09.2004, 22:28

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •