Ankündigung

Einklappen
Keine Ankündigung bisher.

Brauche Hilfe beim Kontaktformular!

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Brauche Hilfe beim Kontaktformular!

    hallo hab einen vorgefertigten php-code von meinem webspace-anbieter für ein kontaktformular erhalten. ich möchte noch einige felder hinzufügen. an einer stelle hakt es aber.

    hier der originalcode:

    PHP-Code:
    <?php
    $mailto 
    "info@xxx.com";


    if (!empty(
    $_POST['send'])) {
        
        
    $error 0;
        if (empty (
    $_POST['from_name'])) {
            
    $name_err "Geben Sie Ihren Namen ein!";
            
    $error 1;
        }
        if (empty (
    $_POST['from_email']) || !preg_match("/\w+@\w+/i"$_POST['from_email'])) {
            
    $email_err "Geben Sie Ihre E-Mail-Adresse ein!";
            
    $error 1;
        }
        if (empty (
    $_POST['from_msg'])) {
            
    $msg_err "Geben Sie die Nachricht ein!";
            
    $error 1;
        }
        
        if (!
    $error) {
            if (@
    mail ($mailto"Antwortformular"$_POST['from_msg'], "From: ".$_POST['from_name']." <".$_POST['from_email'].">")) {
                
    $send_msg "Ihre Nachricht wurde erfolgreich gesendet.

    "
    ;
                unset (
    $_POST['from_name']);
                unset (
    $_POST['from_email']);
                unset (
    $_POST['from_msg']);
            }
        }
    }
    ?>

    <?=$send_msg?>
    <form action="<?=$_SERVER['PHP_SELF']?>" method=post>
    <input type="hidden" name="send" value="1">
    <table cellpadding=0 cellspacing=3 border=0>
    <tr>
        <td align=right>[b]Name:[/b]</td>
        <td><input type="text" name="from_name" value="<?=$_POST['from_name']?>"> <font color='red' size=-1><?=$name_err?></font></td>
    </tr>
    <tr>
        <td align=right>[b]E-Mail:[/b]</td>
        <td><input type="text" name="from_email" value="<?=$_POST['from_email']?>"> <font color='red' size=-1><?=$email_err?></font></td>
    </tr>
    <tr>
        <td align=right valign=top>[b]Nachricht:[/b]</td>
        <td><textarea name="from_msg" cols=40 rows=6><?=$_POST['from_msg']?></textarea>
        
    <font color='red' size=-1><?=$msg_err?></font></td>
    </tr>
    <tr>
        <td></td>
        <td><input type=submit value="Senden"></td>
    </tr>
    </table>
    </form>


    und jetzt mein erweiterter code mit straßen-feld. wenn ich das hochlade und das formular teste, indem ich die felder leer lasse kommt nicht nur hinter dem straßenfeld, sondern auch hinter dem namenfeld die fehlermeldung "Bitte geben Sie Ihre Straße ein!"

    ich nehme an der fehler ist in zeile 26 if (@mail ($mailto, "Antwortformular", $_POST['from_msg'], "From: ".$_POST['from_name']."<".$_POST['from_strasse']."<".$_POST['from_email'].">")) . ich weiß nur nicht was. sind diese zeichen <>". zu viel, zu wenig. kann mir bitte jemand helfen?

    PHP-Code:
    <?php
    $mailto 
    "info@xxx.com";


    if (!empty(
    $_POST['send'])) {
        
        
    $error 0;
        if (empty (
    $_POST['from_name'])) {
            
    $name_err "Bitte geben Sie Ihren Namen ein!";
            
    $error 1;
        }
        if (empty (
    $_POST['from_strasse'])) {
            
    $name_err "Bitte geben Sie Ihre Straße ein!";
            
    $error 1;
        }
        if (empty (
    $_POST['from_email']) || !preg_match("/\w+@\w+/i"$_POST['from_email'])) {
            
    $email_err "Bitte geben Sie Ihre E-Mail-Adresse ein!";
            
    $error 1;
        }
        if (empty (
    $_POST['from_msg'])) {
            
    $msg_err "Bitte geben Sie Ihre Nachricht ein!";
            
    $error 1;
        }
        
        if (!
    $error) {
            if (@
    mail ($mailto"Antwortformular"$_POST['from_msg'], "From: ".$_POST['from_name']."<".$_POST['from_strasse']."<".$_POST['from_email'].">")) {
                
    $send_msg "Ihre Nachricht wurde erfolgreich gesendet.

    "
    ;
                unset (
    $_POST['from_name']);
                unset (
    $_POST['from_strasse']);
                unset (
    $_POST['from_email']);
                unset (
    $_POST['from_msg']);
            }
        }
    }
    ?>

    <?=$send_msg?>
    <form action="<?=$_SERVER['PHP_SELF']?>" method=post>
    <input type="hidden" name="send" value="1">
    <table cellpadding=0 cellspacing=3 border=0>
    <tr>
        <td align=right>[b]Name:[/b]</td>
        <td><input type="text" name="from_name" value="<?=$_POST['from_name']?>"> <font color='red' size=-1><?=$name_err?></font></td>
    </tr>
    <tr>
        <td align=right>[b]Straße:[/b]</td>
        <td><input type="text" name="from_strasse" value="<?=$_POST['from_strasse']?>"> <font color='red' size=-1><?=$name_err?></font></td>
    </tr>
    <tr>
        <td align=right>[b]E-Mail:[/b]</td>
        <td><input type="text" name="from_email" value="<?=$_POST['from_email']?>"> <font color='red' size=-1><?=$email_err?></font></td>
    </tr>
    <tr>
        <td align=right valign=top>[b]Nachricht:[/b]</td>
        <td><textarea name="from_msg" cols=40 rows=6><?=$_POST['from_msg']?></textarea>
        
    <font color='red' size=-1><?=$msg_err?></font></td>
    </tr>
    <tr>
        <td></td>
        <td><input type=submit value="Senden"></td>
    </tr>
    </table>
    </form>

  • #2
    Re: Brauche Hilfe beim Kontaktformular!

    $name_err = "Bitte geben Sie Ihren Namen ein!";
    //..
    $name_err = "Bitte geben Sie Ihre Straße ein!";

    Kommentar


    • #3
      nee sorry fällt mir nix auf. strasse ist doch der variablen-name und straße einfach nur ein textbaustein. oder verstehe ich da was falsch?

      Kommentar


      • #4
        Zerling will dir sagen, dass du die Variable $name_err immer wieder überschreibst. Bei der Ausgabe ist es dir auch wurscht, wo der Fehler herkommt, du zeigt ihn bei jedem Feld an.

        Gruß
        phpfan

        Kommentar


        • #5
          Sorry hab meinen Hinweis bearbeitet, statt nochmal zu spezifizieren. Aber ich denke es dürfte klar sein, was für Änderungen du vorzunehmen hast.

          Kommentar


          • #6
            oh jetzt hab ich's verstanden. danke für eure hilfe! *freu*

            Kommentar


            • #7
              hab mal noch eine frage. die daten die ich im formular abfrage, sollen in der gesendeten email im nachrichtenfeld erscheinen. wo muss ich die variablen im code hinschreiben. so wie es jetzt ist, ist es ja völliger blödsinn ... es wird alles bei "Von" eingetragen. (ich weiß die meisten variablen müssen hinter "From:" verschwinden)

              hab die variablen schon zwischen "Antwortformular" und $_POST['from_msg'], eingetragen, aber in der email war dann überhaupt nix mehr zu sehen von vorname, name, adresse usw.

              PHP-Code:
              if (!$error) {
                      if (@
              mail ($mailto"Antwortformular"$_POST['from_msg'], "From: ".$_POST['from_firma']."<".$_POST['from_anrede']."<".$_POST['from_vorname']."<".$_POST['from_name']."<".$_POST['from_strasse']."<".$_POST['from_ort']."<".$_POST['from_plz']."<".$_POST['from_telnr']."<".$_POST['from_email'].">")) {
                          
              $send_msg "Ihre Nachricht wurde erfolgreich gesendet.

              "
              ;
                          unset (
              $_POST['from_vorname']);
                          unset (
              $_POST['from_name']);
                          unset (
              $_POST['from_strasse']);
                          unset (
              $_POST['from_ort']);
                          unset (
              $_POST['from_plz']);
                          unset (
              $_POST['from_telnr']);
                          unset (
              $_POST['from_email']);
                          unset (
              $_POST['from_msg']);
                      } 

              Kommentar


              • #8
                Du übergibst als 3. Argument den Nachrichtentext.
                In dem String den du dort übergibst, muss eben stehen, was du drinstehen haben willst ^^

                Du machst etwas zu blöde Fehler, denk bitte ein bißchen vorher nach, spricht zumindest nicht für deine Lust Nachzudenken, was du hier so postest :P

                Kommentar


                • #9
                  Eventuell so? Bin mir jetzt nicht sicher, auf jeden fall muss $message eben erweitert werden um die Angaben (in deinem Fall $_POST['from_msg'],)

                  PHP-Code:
                  <?php
                  if (!$error) {
                          
                  $message  "Firma: "$_POST['from_firma'] ."\n";
                          
                  $message .= "Anrede: "$_POST['from_anrede'] ."\n";
                          
                  $message .= "Name: "$_POST['from_vorname'] ." "$_POST['from_name'] ."\n";
                          
                  $message .= "Strasse: "$_POST['from_strasse'] ."\n";
                          
                  $message .= "Ort: "$_POST['from_plz'] ." "$_POST['from_ort'] ."\n";
                          
                  $message .= "Telefonnr.: "$_POST['from_telnr'] ."\n";
                          
                  $message .= "E-Mail: "$_POST['from_email'] ."\n\n";
                          
                  $message .= "Nachricht: \n\n";
                          
                  $message .= $_POST['from_msg'];
                          if (@
                  mail ($mailto"Antwortformular"$message"From: "$_POST['from_vorname'] ." "$_POST['from_name'] ." <"$_POST['from_email'] .">")) {
                              
                  $send_msg "Ihre Nachricht wurde erfolgreich gesendet.

                  "
                  ;
                              unset (
                  $_POST['from_vorname']);
                              unset (
                  $_POST['from_name']);
                              unset (
                  $_POST['from_strasse']);
                              unset (
                  $_POST['from_ort']);
                              unset (
                  $_POST['from_plz']);
                              unset (
                  $_POST['from_telnr']);
                              unset (
                  $_POST['from_email']);
                              unset (
                  $_POST['from_msg']);
                          }
                  }

                  ?>

                  Kommentar


                  • #10
                    @zergling
                    na du bist gut. keine ahnung wie lange du dich damit beschäftigst, aber ich erst seit voriger woche. und momentan sind das für mich noch alles hieroglyphen, obwohl ich mir schon ein paar tutorials durchgelesen habe. vielleicht komm ich ja noch dahinter und stelle schlauere fragen

                    na ich werd mal versuchen, deinen tipp umzusetzen. obwohl es natürlich sein kann, dass ich es falsch interpretiere

                    Kommentar


                    • #11
                      @hk
                      danke ... damit kann ich schon mehr anfangen. werde es gleich mal ausprobieren.

                      Kommentar


                      • #12
                        Hat doch damit nicht unbedingt was zu tun. Logisch denken wirste ja wohl können
                        Wenn als 3. Parameter der Nachrichtentext erwartet wird, muss nunmal da auch der vollständige Nachrichtentext rein

                        Kommentar


                        • #13
                          hats geklappt? interessiert mich, feedback is immer gut

                          Kommentar

                          Lädt...
                          X