Kontaktformular wird inhalt bei echo gelöscht

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

  • Kontaktformular wird inhalt bei echo gelöscht

    Hallo ich habe folgendes problem mit meinem Kontaktformular.
    Sobald die Abfrage durchläuft ob alles ausgefüllt ist und doch noch etwas fehlt erscheint zwar die Fehlermeldung aber es verschwindet
    auch der restliche Inhalt wie z.b. der eingetragene Name Adresse...
    Ist nicht so schön wenn man bei jedem Fehler alles neu schreiben muss. Kann mir jemand sagen wie man das ändern kann?

    Hier ist der Code:
    PHP-Code:
    <?php


    $deinname 
    "dein Name";                
    $deineemail "email@deineseite.de";    
    $imagepath "image";                     
    //Ende Voreinstellungen ;)



    $Zahl_1 intval(rand(19));
    $Zahl_2 intval(rand(19));
    if(
    $_GET['id'] == "kontakt_send")
    {
    if(
    $_POST['number'] != md5($_POST['arithmetic']))
        {
        
    $ausgabe .= "<table><tr><td width=\"100\" align=\"left\">
    <img src=\"
    $imagepath/stop.gif\" width=\"32\" height=\"32\" alt=\"Fehler\" />
    </td><td colspan=\"3\" align=\"left\">
    <font style=\"color:red; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\">
    <b>Die Rechenaufgabe wurde falsch gel&ouml;st!</b></font></td></tr></table>"
    ;
        }
    if(
    $_POST['number'] == md5($_POST['arithmetic']))
        {
        if(!
    ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$"$_POST['email']))
        {
        
    $ausgabe .= "<table><tr><td width=\"100\" align=\"left\">
    <img src=\"
    $imagepath/stop.gif\" width=\"32\" height=\"32\" alt=\"Fehler\" /></td><td colspan=\"3\" align=\"left\">
    <font style=\"color:red; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\">
    <b>Die eingegebene E-Mail-Adresse ist ung&uuml;ltig!</b></font></td></tr></table>"
    ;
        }
    if(
    ereg ("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$"$_POST['email']))
        {
        if(!empty(
    $_POST['name']) && !empty($_POST['email']) && !empty($_POST['message']) && !empty($_POST['betreff']))
        {
        
    $name nl2br(stripslashes(htmlspecialchars($_POST['name'])));
        
    $IP getenv("REMOTE_ADDR");
        
    $absender preg_replace"/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im"""$_POST['email'] );
        
    $absender preg_replace"/(content-type:|bcc:|cc:|to:|from:)/im"""$absender );
        
    $extra "From: $name <$absender>\n";
        
    $extra .= "Content-Type: text/html\n Content-Transfer-Encoding: 8bit\n";
        
    $firma nl2br(stripslashes(htmlspecialchars($_POST['firma'])));
        
    $internet nl2br(stripslashes(htmlspecialchars($_POST['homepage'])));
        if(
    trim($internet) != "")
            {
            if(
    substr($internet07) == "http://") {
            
    $internet $internet;
            } else 
            {
            
    $internet "http://$internet";
            }
            }
        
    $strasse nl2br(stripslashes(htmlspecialchars($_POST['strasse'])));
        
    $ort nl2br(stripslashes(htmlspecialchars($_POST['ort'])));
        
    $telefon nl2br(stripslashes(htmlspecialchars($_POST['telefon'])));
        
    $telefax nl2br(stripslashes(htmlspecialchars($_POST['telefax'])));
        
    $betreff nl2br(stripslashes(htmlspecialchars($_POST['betreff'])));
        
    $nachricht nl2br(stripslashes(htmlspecialchars($_POST['message'])));
        
    $mailnachricht "Hallo $deinname!<br/>jemand hat sich die Mühe gemacht und das Formular ausgefüllt:
    <hr>Name: <b>
    $name</b><br/>Firma: <b>$firma</b><br/>Strasse: <b>$strasse</b><br/>Ort: <b>$ort</b>
    <br/>Homepage: <b>
    $internet</b><br/>Telefon: <b>$telefon</b><br/>Telefax: <b>$telefax</b><br/>IP: 
    <b>
    $IP</b><br/>E-Mail: <b>$absender</b><br/>Betreff: <b>$betreff</b><br/><br/><b>Nachricht:</b>
    <br/>
    $nachricht<br/><hr>über die Antwortfunktion kannst du direkt antworten ;)<br/><br/>CU<br/>";
        
    mail($deineemail"[ $betreff ] "$mailnachricht$extra);
        
    $ausgabe .= "<table><tr><td width=\"100\" align=\"left\">
    <img src=\"
    $imagepath/ok.gif\" width=\"40\" height=\"40\" alt=\"Okay\" />
    </td><td colspan=\"3\" align=\"left\">
    <font style=\"color:green; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\">
    <b>Vielen Dank f&uuml;r diese Nachricht!</b><br/> Diese wurde erfolgreich gesendet!</font></td></tr></table>"
    ;
        }
        else
        {
        
    $ausgabe .= "<table><tr><td width=\"100\" align=\"left\">
    <img src=\"
    $imagepath/stop.gif\" width=\"32\" height=\"32\" alt=\"Fehler\" />
    </td><td colspan=\"3\" align=\"left\">
    <font style=\"color:red; font-family:Geneva, Arial, Helvetica, sans-serif; font-size:16px\">
    <b>Bitte f&uuml;llen Sie alle Felder aus!</b></font></td></tr></table>"
    ;
        }
        }
        }
    }
    ?>

    <center><br/>
    <?php
    if($ausgabe != "")
        {
        echo 
    "<div id=\"kontaktausgabe\">$ausgabe</div>";
        }
    ?>  
    <form action="?id=kontakt_send" method="post" name="kommentar" id="kommentar">
    <div id="kontaktalladresse">
        <div id="kontaktlinks">Name:*<br>
          <input name="name" type="text" class="kontakttextfield" id="name">
            Strasse:<br>
          <input name="strasse" type="text" class="kontakttextfield" id="strasse">
           E-Mail:*<br>
          <input name="email" type="text" class="kontakttextfield" id="email">
          Telefon:<br>
          <input name="telefon" type="text" class="kontakttextfield" id="telefon">
        </div>
        <div id="kontaktrechts">Firma:<br>
          <input name="firma" type="text" class="kontakttextfield" id="firma">
          Postleitzahl / Ort:<br>
          <input name="ort" type="text" class="kontakttextfield" id="ort">
          Internet:<br>
          <input name="homepage" type="text" class="kontakttextfield" id="homepage">
          Telefax:<br>
          <input name="telefax" type="text" class="kontakttextfield" id="telefax">
        </div>
        <div id="kontaktkomplett">      Betreff:*<br>
          <input name="betreff" type="text" class="kontakttextfield1" id="betreff">
          Mitteilung:*<br>
          <textarea name="message" rows="4" class="kontakttextarea" id="message"></textarea>
          <div align="right"><small>*Musseingabe / <font style="color:#FF0000">kein HTML erlaubt</font> </small>
          <input name="datum" class="button" type="hidden" id="datum" value="<?php echo $datum?>">
          <input name="uhrzeit" class="button" type="hidden" id="uhrzeit" value="<?php echo $uhrzeit?>">
          <input name="number" type="hidden" id="number"  value="<?php echo md5(( $Zahl_1 $Zahl_2 )); ?>"/>
          </div>
        </div>
        <div id="kontaktcenter"><font style="color:#0066FF"><br>
        <b>Wieviel ist <?php echo $Zahl_1?> plus <?php echo $Zahl_2?>
    </b></font><input class="kontakttextfieldspam" name="arithmetic" type="text" id="arithmetic">
        (Spamschutz)    <br>
        <br>
        <input name="submit" type="submit" style="width:140px" id="submit" value="Nachricht senden">
        <input name="kommentar_loesch" type="reset" style="width:140px" id="kommentar_loesch" value="Zur&uuml;cksetzen">
        </div>
    </div>

    </form>
    </center>
    Danke im vorraus,

    Niel
    Zuletzt geändert von gimmig; 28.02.2007, 11:55.

  • #2
    Probier's mal mit einem @$_POST['input_name'] in die entsprechenden values der input-Tags.
    Und bitte deinen Code umbrechen, die horizontalen Scrollbalken sprengen jeden Rahmen.
    Nieder mit der Camel Case-Konvention

    Kommentar


    • #3
      Danke für die schnelle Hilfe Griecherus, leider bin ich nicht so fit in php,
      kannst du mir bitte ein beispiel geben wie das aussehen soll?

      Sorry wegen des langen codes

      Gruss Niel

      Kommentar


      • #4
        PHP-Code:
        //anstatt
        $datum;
        //besser
        $_POST['datum']; 
        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Klar:
          PHP-Code:
          // ...
          <input type="text" name="input_name" value="<?php echo @$_POST['input_name']; ?>" />
          // ...
          input_name ist dabei nur ein Platzhalter für die Namen, die du in deinem Formular benutzt. Du musst anstelle von input_name die entsprechenden Feldnamen eintragen.
          Nieder mit der Camel Case-Konvention

          Kommentar


          • #6
            Super,

            vielen Dank Griecherus für die schnelle hilfe

            Greetz Niel

            Kommentar


            • #7
              Mir ist gerade aufgefallen das es beim textfield bzw textarea nicht klappt...

              was muss ich da ändern?

              Niel

              Kommentar


              • #8
                Original geschrieben von gimmig
                was muss ich da ändern?
                Zuerst mal das, was in der ersten Antwort angesprochen wurde - Code umbrechen!
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Ich hab den code bereits gebrochen, der war schon viel breiter...

                  Aber wie ist das mit dem Textarea:

                  PHP-Code:
                  <textarea name="message" value="<?php echo @$_POST['message']; ?> "cols="30" rows="5" id="message"></textarea>
                  scheint nicht zu tun wenn ich es damit versuche. Die input Eingabefenster funktionieren.

                  Niel

                  Kommentar


                  • #10
                    Beschäftige dich am besten erstmal mit den HTML-Forumular Grundlagen, an denen scheitert es nämlich gerade. textarea hat kein value-Attribut.
                    PHP-Code:
                    <textarea name="textarea_name"><?php echo @$_POST['textarea_name']; ?></textarea>
                    Nieder mit der Camel Case-Konvention

                    Kommentar


                    • #11
                      textarea hat kein Attribut value.

                      Kommentar


                      • #12
                        Original geschrieben von gimmig
                        Ich hab den code bereits gebrochen, der war schon viel breiter...
                        Ist immer noch viel zu breit. Nachbessern!
                        Aber wie ist das mit dem Textarea:
                        textarea hat kein HTML-Attribut namens value.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          Beim textarea steht das nicht als value sondern zwischen <textarea><?php echo @$_POST['message']; ?></textarea>
                          ich glaube

                          Kommentar


                          • #14
                            Ok, danke für die hilfe.

                            Danke Griecherus und alle anderen die mir weitergeholfen haben.

                            Niel

                            Kommentar

                            Lädt...
                            X