Anfänger braucht Hilfe bei Formmailer

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

  • Anfänger braucht Hilfe bei Formmailer

    Hi
    Also erstmal die Daten :

    knontakt.html
    <form action="mail.php" method="post">
    <table width="100%" border="0" cellpadding="0">
    <tr>
    <td align="right" class="Stil5">Dein Nick :</td>
    <td align="left"><input name="nick" type="text" size="50" maxlength="50"></td>
    </tr>
    <tr>
    <td align="right" class="Stil5">Deine E - Mail :</td>
    <td align="left"><input name="mail" type="text" size="50" maxlength="50"></td>
    </tr>
    <tr>
    <td align="right" valign="top" class="Stil5">Dein Anliegen :</td>
    <td align="left"><textarea name="anliegen" rows="8" cols="50"></textarea></td>
    </tr>
    <tr>
    <td></td>
    <td><input name="submit" type="submit" value="Absenden" />
    <input type="reset" value="L&ouml;schen"></td>
    </tr>
    <tr>
    <td align="center" colspan="2" class="Stil5">* Alle Felder sind Pflichtfelder </td>
    </tr>
    </table>
    </form>

    mail.php
    PHP-Code:
    <?php 
    $empfaenger 
    "meine@mail.adresse";
    $betreff "Kontaktformular von TK-Fun";
    $mailtext "Dein Nick: $nick
    Deine E - Mail: 
    $mail
    Dein Anliegen: 
    $anliegen";
    if(empty(
    $nick) || empty($mail) || empty($anliegen))
    {
    header("Location:fehler.html");
    }
    else
    {
    header("$empfaenger","$betreff","$mailtext","Form: $email");
    require(
    "Location: danke.html");
    }
    ?>
    So nun zu mein Problem :
    Irgentwie ist es egal ob die Felder ausgefüllt sind oder nicht - ich werde immer auf die fehler.html Seite weitergeleitet.

    Kann mir jemand eine Lösung für mein Problem geben???????

    thx
    Zuletzt geändert von knollo111; 01.12.2006, 11:42.

  • #2
    du suchst am besten mal nach:
    - register_globals
    - mail injection
    Kissolino.com

    Kommentar


    • #3
      Alles was Wurzel sagt plus ein
      PHP-Code:
      error_reporting(E_ALL); 
      am Anfang deines Codes

      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


      • #4
        hi,

        ich denke, dass deine Formular Daten nicht übergeben werden da du das hier in der mail.php stehen hast:

        PHP-Code:
        $mailtext "Dein Nick: $nick
        Deine E - Mail: 
        $mail
        Dein Anliegen: 
        $anliegen"
        als Beispiel: statt $nick einfach mal $_POST['nick']


        guck am besten mal nach mail() und vielleicht formulare
        hätte ich fast noch vergessen: gute von bösen variablen unterscheiden

        und das beachten was meine Vorredner schon gesagt haben

        mfg

        J3n5
        Zuletzt geändert von J3n5; 30.11.2006, 22:07.

        Kommentar


        • #5
          Habe jetzt den Code geändert.

          PHP-Code:
          $mailtext "Dein Nick: {$_POST['nick']} 
          Deine E - Mail: 
          {$_POST['mail']}
          Dein Anliegen: 
          {$_POST['anliegen']}"
          Das Problem besteht weiter :
          Irgentwie ist es egal ob die Felder ausgefüllt sind oder nicht - ich werde immer auf die fehler.html Seite weitergeleitet.

          Habs auch schon mit
          PHP-Code:
          error_reporting(E_ALL); 
          versucht -
          ohne Ergebniss.

          ------------------------

          Beim Spamschutz bin ich noch bei - wie gesagt ich bin Anfänger und brauch noch etwas länger um das zu verstehen
          Zuletzt geändert von knollo111; 01.12.2006, 12:08.

          Kommentar


          • #6
            1. Regeln lesen und PHP-Tags verwenden.

            Dann bitte entsprechenden Code posten und Zeile 12 markieren.

            Kommentar


            • #7
              So habe jetzt neuen Code mit Spamschutz :

              PHP-Code:
              <?php 
              $empfaenger 
              "xxxxxxx@xxxx.xx"
              $betreff "Kontaktformular"
              $page "danke.html"
              $errorpage "fehler.html"
              $mail=(isset($_POST['mail']))?$_POST['mail']:false
              $nick=(isset($_POST['nick']))?$_POST['nick']:false
              $anliegen=(isset($_POST['anliegen']))?$_POST['anliegen']:false

              if (!
              eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$"$mail)) 
              die (
              "Geben Sie bitte eine g&uuml;ltige Emailadresse an."); 
               if (
              strpos($from,"\n") || strpos($from,"\r")) 
              die(
              "No spamming please"); 
                if (!
              $mail || !$nick || !$anliegen)

                 
              header("Location:$errorpage"); 
                }
              else

                 
              $mailtext "Nick: $nick \n 
                 E - Mail: 
              $mail \n 
                 Anliegen: 
              $anliegen"
                  
                 
              mail("$empfaenger""$betreff""$mailtext""From: $mail"); 
                 
              header("Location:$page"); 
                } 
              ?>
              Aber mein Problem ist noch immer das selbe:
              Irgentwie ist es egal ob die Felder ausgefüllt sind oder nicht -
              ich werde immer auf die fehler.html Seite weitergeleitet oder auf eine weisse Seite - keine Ahnung wo die her ist.

              Kann mir jemand eine Lösung für mein Problem geben???????

              Kommentar


              • #8
                machst du
                1) error_reporting(E_ALL)
                2) testausgaben der drei variablen mit var_dump()

                gukst du weita.

                Kommentar


                • #9
                  error_reporting(E_ALL) = Ohne Ergebniss (jetzt - Fehler sind behoben).
                  var_dump() = Alle 3 werden richtig ausgegeben.

                  Hat noch wer ne Idee?????????

                  Kommentar


                  • #10
                    wie sieht der korrigierte quelltext aus?
                    was gibt print_r($_POST)?

                    Kommentar


                    • #11
                      mein aktueller Code :

                      PHP-Code:
                      <?php
                      $empfaenger 
                      "Knollo111@aol.com"
                      $betreff "Kontaktformular von TK-Fun"
                      $page "danke.html"
                      $errorpage "fehler.html"
                      $mail=(isset($_POST['mail']))?$_POST['mail']:false
                      $nick=(isset($_POST['nick']))?$_POST['nick']:false
                      $anliegen=(isset($_POST['anliegen']))?$_POST['anliegen']:false
                      if (!
                      eregi("^[a-z0-9\._-]+@+[a-z0-9\._-]+\.+[a-z]{2,4}$"$mail)) 
                      die (
                      "Geben Sie bitte eine Korekte Emailadresse an."); 
                       if (
                      strpos($mail,"\n") || strpos($mail,"\r")) die("No spamming please");
                       if (
                      strpos($nick,"\n") || strpos($nick,"\r")) die("No spamming please");
                        if(!empty(
                      $nick) or !empty($mail) or !empty($anliegen))
                        { 
                         
                      header("Location:$errorpage"); 
                        }
                        else
                        { 
                         
                      $mailtext "Nick: {$_POST['nick']} 
                         E - Mail: 
                      {$_POST['mail']} 
                         Anliegen: 
                      {$_POST['anliegen']}";     
                         
                      mail("$empfaenger""$betreff""$mailtext""From: $mail"); 
                         
                      header("Location:$page"); 
                        } 
                      ?>
                      Ausgabe von:

                      var_dump; -
                      string(12)"test@test.de" string(4)"test" string(4)"test"

                      print_r($_POST); -
                      Array([nick]=>test [mail]=>test@test.de [anliegen]=>test [submit]=>Absenden


                      noch eine Idee????
                      Zuletzt geändert von knollo111; 03.12.2006, 20:33.

                      Kommentar


                      • #12
                        Oh gott...

                        if(!empty($nick))
                        dann fehler!

                        Ist doch total falsch!

                        Kommentar


                        • #13
                          Danke - damit hilfst du mir wirklich.

                          Kommentar

                          Lädt...
                          X