• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit Mail Funktion

janschmidt

Mitglied
Hallo

Ich habe ein Problem mit meinem Kontakt Bereich meiner Homepage. Die Übermittlung der Daten ist kein Problem aber ich bekomme immer die Info von recaptcha mit der Mail mitgesendet und habe keine Idee wie ich das verhindern kann.


Seite : http://www.jans-reptilien.de/kontakt.php

Code:
        <div id="content">
            <h1>Kontakt</h1><br />
                       
            <form name="feedback" method="post" action="mail_form.php">
                <ol>
                    <li><h3><label for="name">Name</label></h3>
                    <input type="text" name="name" id="name"></li>

                    <li><h3><label for="telephone">Telefon</label></h3>
                    <input type="text" name="telephone" id="telephone"></li>

                    <li><h3><label for="name">Email</label></h3>
                    <input type="text" name="email" id="email"></li>

                    <li><h3><label for="comments">Text</label></h3>
                    <textarea name="comments" id="comments" cols="45" rows="5"></textarea></li>      

                    <?php

                    require_once('recaptchalib.php');
                    $publickey = "6LcWW-8SAAAAAPw2ccz67AFetREh07wjxaeWJQf0"; // you got this from the signup page
                    echo recaptcha_get_html($publickey);
                    ?>

                    <li><input name="submit" type="submit" class="submit" id="submit" value="Submit"></li>
                </ol>
            </form>
 
Werbung:
Hallo

Ich habe ein Problem mit meinem Kontakt Bereich meiner Homepage. Die Übermittlung der Daten ist kein Problem aber ich bekomme immer die Info von recaptcha mit der Mail mitgesendet und habe keine Idee wie ich das verhindern kann.


Seite : http://www.jans-reptilien.de/kontakt.php

Code:
        <div id="content">
            <h1>Kontakt</h1><br />
                      
            <form name="feedback" method="post" action="mail_form.php">
                <ol>
                    <li><h3><label for="name">Name</label></h3>
                    <input type="text" name="name" id="name"></li>

                    <li><h3><label for="telephone">Telefon</label></h3>
                    <input type="text" name="telephone" id="telephone"></li>

                    <li><h3><label for="name">Email</label></h3>
                    <input type="text" name="email" id="email"></li>

                    <li><h3><label for="comments">Text</label></h3>
                    <textarea name="comments" id="comments" cols="45" rows="5"></textarea></li>     

                    <?php

                    require_once('recaptchalib.php');
                    $publickey = "6LcWW-8SAAAAAPw2ccz67AFetREh07wjxaeWJQf0"; // you got this from the signup page
                    echo recaptcha_get_html($publickey);
                    ?>

                    <li><input name="submit" type="submit" class="submit" id="submit" value="Submit"></li>
                </ol>
            </form>

Der Inhalt von mail_form.php ist relevant, nicht der HTML-Code.
 
Code:
<?php
require_once('recaptchalib.php');
  $privatekey = "6LcWW-8SAAAAAPqjDq4G71qtgd29xhgWOUOWC_";
  $resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);

  if (!$resp->is_valid) {
    // What happens when the CAPTCHA was entered incorrectly
    die ("Sicherheitscode falsch eingegeben bitte nochmal versuchen." .
         "");
  } else {
    // Your code here to handle a successful verification
  }
### Konfiguration ###

# Bitte passen Sie die folgenden Werte an, bevor Sie das Script benutzen!

# An welche Adresse sollen die Mails gesendet werden?
$strEmpfaenger = '[email protected]';

# Welche Adresse soll als Absender angegeben werden?
# (Manche Hoster lassen diese Angabe vor dem Versenden der Mail ueberschreiben)
$strFrom       = '"Jans Pflanzenwelt" <[email protected]>';

# Welchen Betreff sollen die Mails erhalten?
$strSubject    = 'Feedback Jans Pflanzenwelt';

# Zu welcher Seite soll als "Danke-Seite" weitergeleitet werden?
# Wichtig: Sie muessen hier eine gueltige HTTP-Adresse angeben!
$strReturnhtml = 'http://www.jans-pflanzenwelt.de/danke.php';

# Welche(s) Zeichen soll(en) zwischen dem Feldnamen und dem angegebenen Wert stehen?
$strDelimiter  = ":\t";

### Ende Konfiguration ###

if($_POST)
{
# Abfragen, ob alle wichtigen Felder gesetzt sind

{
  $strMailtext = "";

  while(list($strName,$value) = each($_POST))
  {
   if(is_array($value))
   {
    foreach($value as $value_array)
    {
     $strMailtext .= $strName.$strDelimiter.$value_array."\n";
    }
   }
   else
   {
    $strMailtext .= $strName.$strDelimiter.$value."\n";
   }
  }
}

if(get_magic_quotes_gpc())
{
  $strMailtext = stripslashes($strMailtext);
}

mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom)
  or die("Die Mail konnte nicht versendet werden.");
header("Location: $strReturnhtml");
exit;
}

?>
 
Werbung:
Mit
PHP:
while(list($strName,$value) = each($_POST))
durchläufst du alle Formuarfelder, also auch Recaptcha und Submit. Ein unset dieser beiden Werte vor der Schleife wird helfen
 
Werbung:
Sorry bin da nicht so fitt
Das sind immer Sprüche, die kann ich echt nicht mehr hören. Wir reden hier von Grundlagen und die zu benutzende Methode habe ich dir schon genannt.

Vor der Schleife:
PHP:
if (isset($_POST["recaptcha_challenge_field"]))
  unset($_POST["recaptcha_challenge_field"]);
 
if (isset($_POST["recaptcha_response_field"]))
  unset($_POST["recaptcha_response_field"]);
 
if (isset($_POST["submit"]))
  unset($_POST["submit"]);
 
Könntest du mir das genauer erklären? Sorry bin da nicht so fitt

Naja, eigentlich ist es schon mal ein NoGo, POST-Werte einfach blind zu verarbeiten.
Deshalb müsste man das ganze Script schon mal neu schreiben.

Um trotzdem eine Lösung zu haben, sieh dir deine Mail an, die du bekommen hast.
Dort siehst du die Feldnamen, zB: submit: Submit

Vor der While Schleife schreibst du dann:
PHP:
unset($_POST['submit']);
für jedes Feld das im Weg ist.
 
Vielen dank für die Hilfe es geht. Ich mache das ganze nur wegen meines Hobbys und habe mich mit HTML ganz gut reingefuchst aber PHP ist nicht wirklich meins. Darum noch mal danke für die schnelle und gute Hilfe.
 
Werbung:
Zurück
Oben