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

Probleme mit Kontaktformular

janschmidt

Mitglied
Hallo ich versuche gerade den neuen Google captcha in Mein Kontaktformular einzubinden. Bis jetzt habe ich die alte Version benutzt was bis vor kurzem auch gut geklappt hat. Leider bekam ich jetzt doch wieder Nachrichten von Bots und möchte gerne umsteigen. Außerdem ist der neue für den Nutzer viel einfacher zu verwenden. Nun zu meinem Problem. Ich bekomme zwar die Nachricht wenn alles richtig ausgefüllt wurde aber danach landet der Nutzer auf einer weißen Seite ohne Inhalt sollte er etwas falsch ausfüllen kommt einfach wieder auf die Kontaktseite aber bekommt keine Info das etwas falsch war. Ich hätte es gerne so das unter dem Wort Kontakt eine Info (Danke für die Nachricht oder es Konnte keine Nachricht versendet werden.) kommt das bekomme ich aber nicht hin. Ich muss sagen das meine PHP Kenntnisse sehr schlecht sind und ich bin da leider Überfragt. Ich würde mich freuen wenn mir hier jemand helfen kann.


Meine Seiten Adresse www.jans-pflanzenwelt.de/kontakt.php
PHP:
     <?PHP
            if(isset($_POST['ContactButton'])){
           
            $url = 'https://www.google.com/recaptcha/api/siteverify';
            $privatekey = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
           
            $response = file_get_contents($url."?secret=".$privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']);      
            $data = json_decode($response);
   
 
$strEmpfaenger = '[email protected]'; // Anmerkung vom Mod: Emailadresse zum eigenen (Spam)Schutz anonymisiert
$strFrom       = '"Jans Pflanzenwelt" <[email protected]>'; // Anmerkung vom Mod: Emailadresse zum eigenen (Spam)Schutz anonymisiert
$strSubject    = 'Feedback Jans Pflanzenwelt';
$strReturnhtml = 'http://www.jans-pflanzenwelt.de/danke.php';
$strDelimiter  = ":\t";
 
            if(isset($data->success) AND $data->success==true){
{
 
 {
  $strMailtext = "";
 
 
if (isset($_POST["submit"]))
  unset($_POST["submit"]);
 
 
  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.");
 exit;
}
           
            }
            }
HTML:
HTML:
<!DOCTYPE html>
<html>
    <head>
        <?PHP include $_SERVER['DOCUMENT_ROOT'].'/menu/head.php'; ?>
        <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>  
    <body>
        <?PHP
           include $_SERVER['DOCUMENT_ROOT'].'/menu/menubar.php';
         
       ?>      
       
        <nav class="nav">
            <?PHP
               include $_SERVER['DOCUMENT_ROOT'].'/menu/menutop.php';
             
           ?>          
           
        </nav>
       
        <section id="main">
            <div id=menu>
                <?PHP
                   include $_SERVER['DOCUMENT_ROOT'].'/menu/menu.php';
                 
               ?>                      
            </div>
            <article>
                <h2>Kontakt</h2>
                <?php if(isset($GET['CaptchaPass'])){ ?>
                <h2>Danke wir haben ihre Nachricht erhalten.</h2>
                <?php } ?>
               
                <?php if(isset($GET['CaptchaFail'])){ ?>
                <h2>Die Nachricht konnte nicht gesendet werden.</h2>              
                <?php } ?>
               
                <form action="" method="post" name="ContactFrom"  >
                    <table>
                        <tr>
                            <td>
                                Anrede:
                            </td>
                            <td>
                                <select name="anrede" size="1" required>
                                    <option value="">bitte w&auml;hlen</option>
                                    <option value="frau">Frau</option>
                                    <option value="herr">Herr</option>
                                </select>
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Vorname:
                               
                            </td>
                            <td>
                                <input type="text" name="vorname" required placeholder="Max" />
                            </td>
                        </tr>          
                        <tr>
                            <td>
                                Nachname:
                               
                            </td>
                            <td>
                                <input type="text" name="nachname" required placeholder="Mustermann" />
                            </td>
                        </tr>      
                       
                        <tr>
                            <td>
                                Email:
                               
                            </td>
                            <td>
                                <input type="email" name="emailadresse" required placeholder="[email protected]" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Webseite:
                            </td>
                            <td>
                                <input type="url" name="webseite" placeholder="http://www.mustermann.de" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Telefon:
                            </td>
                            <td>
                                <input type="tel" name="telefon" placeholder="0123456789" />
                            </td>
                        </tr>
                        <tr>
                            <td>
                                Nachricht:
                               
                            </td>
                            <td>
                                <textarea name="nachricht" required placeholder="Deine Nachricht"></textarea>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2">
                               
                                       
                    <div class="g-recaptcha" data-sitekey="6Ldt-iQTAAAAAFDzqK6sIf_9W0sfev8B6FA9F9rS"></div>
                               
                                <input name="ContactButton" type="submit" class="submit" id="submit" value="Senden">
                            </td>
                        </tr>
                    </table>
 
                </form>
            </article>
           
            <aside>
                <section>
                    <h2>Abzugeben</h2>
                   
                    <?PHP
                       include $_SERVER['DOCUMENT_ROOT'].'/menu/abzugeben.php';
                     
                   ?>
                   
                </section>
               
            </aside>
           
        </section>
        <footer>
           
            <?PHP
               include $_SERVER['DOCUMENT_ROOT'].'/menu/footer.php';
           ?>  
           
            <?PHP
               include $_SERVER['DOCUMENT_ROOT'].'/menu/body.php';
           ?>  
           
        </footer>
    </body>
</html>
 
Zuletzt von einem Moderator bearbeitet: Gestern um 16:30 Uhr
janschmidt, Gestern um 15:25 Uhr
Bearbeiten
Melden
#1
Zitieren
 
Werbung:
Zuletzt bearbeitet von einem Moderator:
Werbung:
ok die Überflüssigen {} sind weg Exit auch aber ich weiß halt nicht wie ich die Ausgabe des Fehlers mache das ist ja eins meiner Probleme wie gesagt PHP ist wirklich nicht meins. Hoffe es ist jetzt schon mal etwas besser vom Code her. Danke noch mal für die Hilfe.

Ich denke das es ungefähr so

header('Location: Kontakt.php?CaptchaPass=True');
header('Location: Kontakt.php?CaptchaFail=True');

gehen müsste aber an welcher Stelle das hin muss und dann müsste das mit der

or die("Die Mail konnte nicht versendet werden.");

ja auch raus.

Bin da leider überfragt.
 
Zuletzt bearbeitet von einem Moderator:
Ein Tipp: bemühe mal Tante google mit "php affenformular", dann findest du massenhaft Beispiele, wie man das richtig macht.
 
Werbung:
So hab das ganze mal neu angefangen.

Www.jans-pflanzenwelt.de/kontakt2.php geht jetzt soweit erst mal ganz gut. Aber ich habe immer noch das Problem mit der php Einbindung des captcha von Google.

Vieleicht hat da ja doch noch mal jemand ein bisschen Unterstützung für mich. Bis hierher erst mal danke für die Hilfe.
 
Hier noch mal der aktuelle Code leider weiß ich nicht wie ich da jetzt die PHP einbindung der Server abfrage von Captch machen soll.
PHP:
<?php

$notiz = "";

if($_POST['name'] != "" && $_POST['email'] != "" && $_POST['betreff'] != "" && $_POST['nachricht'] != "") {

$sent = mail('[email protected]', 'Feedback: ' . $_POST['betreff'], 'Von: ' . $_POST['anrede'] . ' ' . $_POST['name'] . "\n" . 'Email: ' . $_POST['email'] . "\n" . 'Homepage: ' . $_POST['url'] . "\n" . 'Telefon: ' . $_POST['telefon'] . "\n\n" . 'Nachricht: ' . $_POST['nachricht']);

    
    if($sent == 1)  {
        $notiz = "Danke für Ihre Nachricht.";
        }
    } else if($_POST['formular'] == 'set') {

    $notiz = "Es wurden nicht alle Felder ausgefüllt.";
}
    
?>

<!DOCTYPE html>
<html>
    <head>
        <?PHP include $_SERVER['DOCUMENT_ROOT'].'/menu/head.php'; ?>
    <script src='https://www.google.com/recaptcha/api.js'></script>
    </head>   
    <body>
        <?PHP
            include $_SERVER['DOCUMENT_ROOT'].'/menu/menubar.php';
            
        ?>       
        
        <nav class="nav">
            <?PHP
                include $_SERVER['DOCUMENT_ROOT'].'/menu/menutop.php';
                
            ?>           
            
        </nav>
        
        <section id="main">
            <div id=menu>
                <?PHP
                    include $_SERVER['DOCUMENT_ROOT'].'/menu/menu.php';
                    
                ?>                       
            </div>
            <article>
                <h2>Kontakt</h2>
                
                <h5><?php echo $notiz; ?> </h5>

            <form action="kontakt2.php" method="post">
            <input type="hidden" value="set" name="formular">
            <select name="anrede" size="1" >
            <option value="">bitte w&auml;hlen</option>
            <option value="Frau">Frau</option>
            <option value="Herr">Herr</option>
            </select><br>
            <input type="text" value="<?php echo $_POST['name']; ?>" placeholder="Name" name="name"><br>
            <input type="email" value="<?php echo $_POST['email']; ?>" placeholder="Email" name="email"><br>
            <input type="text" value="<?php echo $_POST['telefon']; ?>" placeholder="0123456789" name="telefon"><br>
            <input type="text" value="<?php echo $_POST['url']; ?>" placeholder="http://www." name="url"><br>           
            <input type="text" value="<?php echo $_POST['betreff']; ?>" placeholder="Betreff" name="betreff"><br>
            <textarea name="nachricht" placeholder="Nachricht"><?php echo $_POST['nachricht']; ?></textarea><br>
            <div class="g-recaptcha" data-sitekey="XXXXXXXXXXXXXXXXXXXXX"></div><br>       
            <input type="submit" value="Senden"><br>
        
        </form>
            </article>
            
            <aside>
                <section>
                    <h2>Abzugeben</h2>
                    
                    <?PHP
                        include $_SERVER['DOCUMENT_ROOT'].'/menu/abzugeben.php';
                        
                    ?>
                    
                </section>
                
            </aside>
            
        </section>
        <footer>
            
            <?PHP
                include $_SERVER['DOCUMENT_ROOT'].'/menu/footer.php';
            ?>   
            
            <?PHP
                include $_SERVER['DOCUMENT_ROOT'].'/menu/body.php';
            ?>   
            
        </footer>
    </body>
</html>

habe es jetzt so aber es geht nicht.
Code:
<?php

$notiz = "";

if($_POST['name'] != "" && $_POST['email'] != "" && $_POST['betreff'] != "" && $_POST['nachricht'] != "" && $_POST['g-recaptcha-response'] != "" && $_POST['g-recaptcha-response'] != "") {

$sent = mail('info@XXXXX', 'Feedback: ' . $_POST['betreff'], 'Von: ' . $_POST['anrede'] . ' ' . $_POST['name'] . "\n" . 'Email: ' . $_POST['email'] . "\n" . 'Homepage: ' . $_POST['url'] . "\n" . 'Telefon: ' . $_POST['telefon'] . "\n\n" . 'Nachricht: ' . $_POST['nachricht']);

        var_dump($_POST);
        $secret = "XXXXXXXXXXXXXX";
        $ip = $_SERVER['REMOTE_ADDR'];
        $captcha = $_POST['g-recaptcha-response'];
        $rsp  = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha&remoteip$ip");
        var_dump($rsp);
        $arr = json_decode($rsp,TRUE);
        if($arr['success'])

    if($sent == 1)
    
    {
        $notiz = "Danke für Ihre Nachricht.";
        }
    } else if($_POST['formular'] == 'set') {

    $notiz = "Es wurden nicht alle Felder ausgefüllt.";
}
    
?>

So noch mal anders geht fast bekomme nur sehr viel text nach dem absenden über der Webseite angezeigt.

www.jans-pflanzenwelt.de\kontakt2.php

Wie verhindere ich das? was habe ich falsch gemacht?

PHP:
<?php

if (isset($_POST['Senden'])) {
    $secret = 'XXXXXXXXXXXXXXXXXXXXXX';
    $response = $_POST['g-recaptcha-response'];
    $remoteip = $_SERVER['REMOTE_ADDR'];
    $notiz = "";
    
    $url = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$response&remoteip=$remoteip");
    $result = json_decode($url, TRUE);

    if($result['success'] == 1)
    if($_POST['name'] != "" && $_POST['email'] != "" && $_POST['betreff'] != "" && $_POST['nachricht'] != "") {

    $sent = mail('info@', 'Feedback: ' . $_POST['betreff'], 'Von: ' . $_POST['anrede'] . ' ' . $_POST['name'] . "\n" . 'Email: ' . $_POST['email'] . "\n" . 'Homepage: ' . $_POST['url'] . "\n" . 'Telefon: ' . $_POST['telefon'] . "\n\n" . 'Nachricht: ' . $_POST['nachricht']);

    
    if($sent == 1)
    {
        $notiz = "Danke für Ihre Nachricht.";
        }
    } else

        if($_POST['formular'] == 'set') {

    $notiz = "Es wurden nicht alle Felder ausgefüllt.";
}
}
?>

ich glaube ich gebe auf ich habe keine Ahnug es will nicht jetzt geht es wieder nicht mehr Weiß nicht was ich gemacht habe.
 
Zuletzt bearbeitet von einem Moderator:
bekomme nur sehr viel text nach dem absenden über der Webseite angezeigt.
Da sehe ich nichts von


Richtig debuggen

1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
 
Werbung:
Ich schaffe es nicht habe sehr sehr viel versucht auch mit Hilfe von php.de und anderen seiten ich bekomme das nicht eingebaut mit dem captcha. habe jetzt wieder eine variante auf www.jans-pflanzenwelt.de/kontakt2.php wo alles gut geht auch mit der Benachrichtigung halt ohne captcha.

werde das wohl aufgeben müssen mit der neuen Captcha Version werde dann die alte weiter nutzen.

Ich danke dir trotzdem für die Hilfe versuche. Bin einfach nicht so weit in der Materie das ich damit klar komme.
PHP:
<?php

$notiz = "";

if($_POST['name'] != "" && $_POST['email'] != "" && $_POST['betreff'] != "" && $_POST['nachricht'] != "") {
  
 $sent = mail('info@', 'Feedback: ' . $_POST['betreff'], 'Von: ' . $_POST['anrede'] . ' ' .
$_POST['name'] . "\n" . 'Email: ' . $_POST['email'] . "\n" . 'Homepage: ' .
$_POST['url'] . "\n" . 'Telefon: ' . $_POST['telefon'] . "\n\n" . 'Nachricht: ' . $_POST['nachricht']);
  
    if($sent == 1) {
        $notiz = "Danke für die Nachricht";
        }

} else if($_POST['formular'] == 'set') {
    $notiz = "Es wurden nicht alle Felder ausgefüllt.";
}

?>
HTML:
<!DOCTYPE html>
<html>
    <head>
        <?PHP include $_SERVER['DOCUMENT_ROOT'].'/menu/head.php'; ?>
        <script src='https://www.google.com/recaptcha/api.js'></script>
    </head> 
    <body>
        <?PHP
            include $_SERVER['DOCUMENT_ROOT'].'/menu/menubar.php';
        ?>     
      
        <nav class="nav">
            <?PHP
                include $_SERVER['DOCUMENT_ROOT'].'/menu/menutop.php';
            ?>         
        </nav>
      
        <section id="main">
            <div id=menu>
                <?PHP
                    include $_SERVER['DOCUMENT_ROOT'].'/menu/menu.php';
                ?>                     
            </div>
            <article>
                <h2>Kontakt</h2>
              
                <h5><?php echo $notiz; ?> </h5>
              
            <form action="kontakt2.php" method="post">
            <input type="hidden" value="set" name="formular">
            <select name="anrede" size="1" >
            <option value="">bitte w&auml;hlen</option>
            <option value="Frau">Frau</option>
            <option value="Herr">Herr</option>
            </select><br>
            <input type="text" value="<?php echo $_POST['name']; ?>" placeholder="Name" name="name"><br>
            <input type="email" value="<?php echo $_POST['email']; ?>" placeholder="Email" name="email"><br>
            <input type="text" value="<?php echo $_POST['telefon']; ?>" placeholder="0123456789" name="telefon"><br>
            <input type="text" value="<?php echo $_POST['url']; ?>" placeholder="http://www." name="url"><br>         
            <input type="text" value="<?php echo $_POST['betreff']; ?>" placeholder="Betreff" name="betreff"><br>
            <textarea name="nachricht" placeholder="Nachricht"><?php echo $_POST['nachricht']; ?></textarea><br>
            <div class="g-recaptcha" data-sitekey="6Ldt-iQTAAAAAFDzqK6sIf_9W0sfev8B6FA9F9rS"></div><br>     
            <input type="submit" value="Senden"><br>
      
        </form>
            </article>
          
            <aside>
                <section>
                    <h2>Abzugeben</h2>
                  
                    <?PHP
                        include $_SERVER['DOCUMENT_ROOT'].'/menu/abzugeben.php';
                      
                    ?>
                  
                </section>
              
            </aside>
          
        </section>
        <footer>
          
            <?PHP
                include $_SERVER['DOCUMENT_ROOT'].'/menu/footer.php';
            ?> 
          
            <?PHP
                include $_SERVER['DOCUMENT_ROOT'].'/menu/body.php';
            ?> 
          
        </footer>
    </body>
</html>
 
Zurück
Oben