Antworten auf deine Fragen:
Neues Thema erstellen

RECAPTCHA ausgabe in der selben seite

Merlin10

Noch nicht viel geschrieben

Hallo Leute
habe ein Formular in das ich ein recaptcha eingebunden habe, es funktioniert, nun soll die ausgabe , nicht so wie es im moment ist auf einer neuen seite erscheinen, sonder in einem div das unter dem Form script ist?
hat jemand eine idee.
Danke
Gruss Merlin

PHP:
// beginn captcha
// Klasse einbinden
require_once ('recaptcha/recaptchalib.php');
// Der public Key aus der Anmeldung
$publickey = "";
// Der private Key aus der Anmeldung
$privatekey = "";
//weiter leitung
$richtig = 'correct';
// Darin wird die Antwort abgelegt
$resp = null;
// Für die Fehlermeldung
$error = null;
// Wurde ein CAPTCHA geloest?
if (isset ( $_POST ["recaptcha_response_field"] ))
{
   // Eingabe testen ob sie korrekt war
   $resp = recaptcha_check_answer ( $privatekey, $_SERVER ["REMOTE_ADDR"], $_POST ["recaptcha_challenge_field"], $_POST ["recaptcha_response_field"] );
   // War die Eingabe korrekt?
   if (true == $resp->is_valid)
   {
       if (!empty($vorname))    // dies soll im  apDiv1  erscheinen
                   print "Guten Tag ".$vorname."<br />.\n";
                    if (!empty($mailadr))
                          print "Ihre Mail Adresse : \n".$mailadr."<br />E-Mail wurde gesendet!<br />Thank You.\n";
      // Hier kommt der Code, der ausgeführt werden soll, wenn die
      // Eingabe korrekt war, z. B. eine Weitereitung
     //header ( 'Location:http://www.meine prüfung.de' );
      // Sicherheitshalber das Programm beenden
      die ();
      
   }
   else
   {
      // Fehlermeldung in Variable ablegen
      $error = $resp->error;
   }
}
HTML:
<style type="text/css">
#apDiv1 {
    position:absolute;    left:25px;    top:450px;    width:183px;    height:84px;    background-color:rgb(0,255,204);    layer-background-color:rgb(0,255,204);    border:1px none #000000;
    z-index:1;
}
</style>
<body>
<h2>Formularinhalt mailen</h2>
<form action = "mail_formular-eingabe.php" method ="post">
   <p><input name="str_vorname" /> Voname</p>
   <p><input name="str_nachname" /> Nachname</p>
   <p><input name="strEmail" /> Ihre&nbsp; E-Mail-Adresse</p>
   <p><textarea name="str_text" cols="50" rows="5"></textarea> Ihre Nachricht</p>
          <?php
      // Code für das CAPTCHA 
      echo recaptcha_get_html ( $publickey, $error);
      ?>
      <input type="submit" value="submit" />
       </form>
    <div id="apDiv1">
    </div>
</body>
</html>
 

lachender_engel

Aktives Mitglied

Du rufst, statt einer neuen Seite, die eigene Seite (also sich selber) auf. Am Anfang baust Du dann die Prüfung ein und steuerst damit die Ausgabe.
Du änderst demnach
HTML:
<form action = "mail_formular-eingabe.php" method ="post">
in
PHP:
<form action = "<?php echo $_SERVER[ 'SCRIPT_NAME' ]; ?> " method ="post">
 

Merlin10

Noch nicht viel geschrieben

ok, dann sieht der ganze aufruf dann so aus
PHP:
<form action = "<?php echo $_SERVER[ 'mail_formular-eingabe.php' ]; ?> " method= "post">
habe ich das richtig verstanden?
 

Merlin10

Noch nicht viel geschrieben

Hallo
Smile , ok es klappt, ich setzte mal das script rein so wie es jetzt aussieht. etwas durcheinander,
PHP:
// beginn captcha
// Klasse einbinden
require_once ('recaptcha/recaptchalib.php');
// Der public Key aus der Anmeldung
$publickey = "";
// Der private Key aus der Anmeldung
$privatekey = "";
//weiter leitung
$richtig = 'correct';
// Darin wird die Antwort abgelegt
$resp = null;
// Für die Fehlermeldung
$error = null;
// Wurde ein CAPTCHA geloest?
Code:
<html>
<style type="text/css">
#apDiv1 {
    position:absolute;
    left:25px;
    top:450px;
    width:183px;
    height:84px;
    background-color:rgb(0,255,204);
    layer-background-color:rgb(0,255,204);
    border:1px none #000000;
    z-index:1;
}
</style>
<body>
<h2>Formularinhalt mailen</h2>
<form action = "mail_formular-eingabe.php" method ="post">
   <p><input name="str_vorname" /> Voname</p>
   <p><input name="str_nachname" /> Nachname</p>
   <p><input name="strEmail" /> Ihre&nbsp; E-Mail-Adresse</p>
   <p><textarea name="str_text" cols="50" rows="5"></textarea> Ihre Nachricht</p>
           <!-- Hier können Sie den Code für Ihr Formular ergänzen -->
      <?php
      // Code für das CAPTCHA in das Formular einbauen
      echo recaptcha_get_html ( $publickey, $error);?>
    
      <input type="submit" value="submit" />
       </form>
    <div id="apDiv1">
    <form action = "<?php echo $_SERVER['mail_formular-eingabe.php']; ?> " method ="post" >
    <?php
    //code von oben
    if (isset ( $_POST ["recaptcha_response_field"] ))
{
   // Eingabe testen ob sie korrekt war
   $resp = recaptcha_check_answer ( $privatekey, $_SERVER ["REMOTE_ADDR"], $_POST ["recaptcha_challenge_field"], $_POST ["recaptcha_response_field"] );
   // War die Eingabe korrekt?
   if (true == $resp->is_valid)
   {
     if (!empty($vorname))
                   print "Guten Tag ".$vorname."<br />.\n";
                if (!empty($mailadr))
                print "Ihre Mail Adresse :
                 \n".$mailadr."<br />E-Mail wurde gesendet!<br />Thank You.\n";  
      // Hier kommt der Code, der ausgeführt werden soll, wenn die
      // Eingabe korrekt war, z. B. eine Weitereitung
      //header ( 'Location:http://www.meine prüfung.de' );
      // Sicherheitshalber das Programm beenden
      die ();
     
   }
   else
   {
      // Fehlermeldung in Variable ablegen
      $error = $resp->error;
   }
}
    ?>           
    </form>
    </div>
</body>
</html>
 

lachender_engel

Aktives Mitglied

Hallo
Smile , ok es klappt, ich setzte mal das script rein so wie es jetzt aussieht. etwas durcheinander,
Yepp, das ist es.
Versuche mal den (aufgeräumten und strukturierten) Code
PHP:
<?php
if (isset ( $_POST ["recaptcha_response_field"] ))
  {
  // Eingabe testen ob sie korrekt war
  $resp = recaptcha_check_answer ( $privatekey, $_SERVER ["REMOTE_ADDR"], $_POST ["recaptcha_challenge_field"], $_POST ["recaptcha_response_field"] );
  // War die Eingabe korrekt?
  if (true == $resp->is_valid)
  {
  $error = ""; // Leert Variable
  $html_ausgabe = ""; // Leert Variable
  (!empty($vorname)) ? $html_ausgabe .= "Guten Tag $vorname.<br />"; // Schreibt Variable
  (!empty($mailadr)) ? $html_ausgabe .= "Ihre Mail Adresse: $mailadr <br />"; // Schreibt Variable
  (strlen($html_ausgabe)>0) ? $html_ausgabe .= "E-Mail wurde gesendet!<br />Thank You."; // Schreibt Variable
  }
  else
  {
  // Fehlermeldung in Variable ablegen
  $error = $resp->error; // Schreibt Variable
  }
}
?>

<html>
<style type="text/css">
#apDiv1 {
  position:absolute;
  left:25px;
  top:450px;
  width:183px;
  height:84px;
  background-color:rgb(0,255,204);
  layer-background-color:rgb(0,255,204);
  border:1px none #000000;
  z-index:1;
}
</style>
<body>
<h2>Formularinhalt mailen</h2>
<form action = "<?php echo $_SERVER[ 'SCRIPT_NAME' ]; ?>" method ="post">
  <p><input name="str_vorname"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?>/> Voname</p>
  <p><input name="str_nachname"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?> /> Nachname</p>
  <p><input name="strEmail"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?> /> Ihre&nbsp; E-Mail-Adresse</p>
  <p><textarea name="str_text" cols="50" rows="5"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?>></textarea> Ihre Nachricht</p>
  <!-- Hier können Sie den Code für Ihr Formular ergänzen -->
  <?php
  // Code für das CAPTCHA in das Formular einbauen
  echo recaptcha_get_html ( $publickey, $error);?>
   
  <input type="submit" value="submit"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?> />
</form>
<?php
if (strlen($html_ausgabe)>0 || strlen($error)>0) { // Inhalt in $html_ausgabe oder $error ?>
<div id="apDiv1">
  <?php (strlen($html_ausgabe)>0) ? echo $html_ausgabe; : echo $error; // Inhalt ausgeben?>   
</div>
<?php } ?>
</body>
</html>
Oben erfolgt die Prüfung und unten die ereignisabhängige Ausgabe
 

Merlin10

Noch nicht viel geschrieben

Hallo
wow , vielen dank , ok das ist aufgeräumt, smile.
ich habe das script probieren wollen, aber ab der zeile 100 , immer da wo html_ausgabe steht bekomme ich einen Fehler angezeigt. ?
komme noch nicht dahinter wie, weshalb,
ey danke, super mal sehen das es noch läuft
Gruss merlin
 

Myhar

Hat es drauf

Er soll nicht nur die Zeile posten, in der der Fehler auftritt sondern alles. Schließlich kann der Fehler auch weiter vorne im Code auftreten und der Fehler wird erst in Zeile 100 erkannt.
 

Merlin10

Noch nicht viel geschrieben

Hallo
danke für die antworten , ok ich poste den ganzen code. ich hatte gestern noch gesucht hatte nix gefunden.
Der Fehler tritt in den zeilen auf, mit der Variabel $html_ausgabe ,
Vor diesem block steht der bolck für die Mail funktion, was ich noch nicht probiert habe diesen in der Postion auszutauschen, dürfte aber so in Ordung sein.
hier der Code, dies ist das ganze script , ein haufen zeug. ok aufgeräumt habe ich noch nicht .
Danke leute
PHP:
<?php
//session_start();
$mailtext = $_POST["str_text"];
$vorname = $_POST["str_vorname"];
$nachname = $_POST["str_nachname"];
$mailadr = $_POST["strEmail"];
//funktioniert in vodafone , panel ist in ordung , capacha einfügen
/* Empfänger */
$empfaenger = array($_POST['strEmail']);
/* Empfänger CC */
//$empfaengerCC = array('meiner<info@meine.de>');
/* Empfänger BCC */
$empfaengerBCC = array('meine BCC<info@meine.de>');
/*Absender*/
$absender = 'mein<info@meine.de>';
/*Rueckantwort*/
$reply = 'mein<info@meine.de>';
/*Betreff*/
$subject = 'info';


/*nachricht für admin*/
$empfaengerad = "To:<info@mein.de>";
$betreff = 'Willkommen';
$from = "From:<info@meine.de>";
$text = 'Dies ist der text\n' .$mailtext.' <br /> die erste mail für die seite
verschickt, text hat sich geändert iddee  two
Vorname: '.$vorname.'\n
Nachname: '.$nachname. '\n
Emailadresse: '.$mailadr.'\n';

/*Nachricht für besucher*/
$message = '<html>
<head>
<title>Herzlich Willkommen</title>
</head>
<body>
<h2 >Herzlich Willkommen</h2>
<p>Ihre Nachricht ist mit fogenden Daten eingegangen</p>
<ul>
<li>Vorname:&nbsp;'.$_POST["str_vorname"].'</li>
<li>Nachname:&nbsp;'.$_POST["str_nachname"].'</li>
<li>Ihre E-Mail Adresse:&nbsp;'.$_POST["strEmail"].'</li>
</ul>
<p>meine lorem ipsum<br />
</p>
<h4>Vielen Dank</h4>
MFG<br />

</body>
</html>';

/*Baut Header der Mail zusammen*/
$headers .= 'From:'.$absender."\n";
$headers .= 'reply-To:'.$reply."\n";
$headers .= 'X-Mailer:PHP/'.phpversion()."\n";
//$headers .= 'X-Sender-IP:'.$REMOTE_ADDR."\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
// Extrahiere Emailadressen
$empfaengerString = implode(',', $empfaenger);
//$empfaengerCCString = implode(',', $empfaengerCC);
$empfaengerBCCString = implode(',', $empfaengerBCC);

$headers .= 'Cc: ' . $empfaengerCCString . "\n";
$headers .= 'Bcc: ' . $empfaengerBCCString . "\n";

/* Verschicken der Mail */
mail($empfaengerString, $subject, $message, $headers);
/*Verschicken der an admin Mail*/
mail($empfaengerad, $betreff, $text, $from);
?>
<?php
// beginn captcha
// Klasse einbinden
require_once ('recaptcha/recaptchalib.php');
// Der public Key aus der Anmeldung
$publickey = "";
// Der private Key aus der Anmeldung
$privatekey = "";
//weiter leitung
$richtig = 'correct';
// Darin wird die Antwort abgelegt
$resp = null;
// Für die Fehlermeldung
$error = null;
// Wurde ein CAPTCHA geloest?
if (isset ( $_POST ["recaptcha_response_field"] ))
  {
  // Eingabe testen ob sie korrekt war
  $resp = recaptcha_check_answer ( $privatekey, $_SERVER ["REMOTE_ADDR"], $_POST ["recaptcha_challenge_field"], $_POST ["recaptcha_response_field"] );
  // War die Eingabe korrekt?
  if (true == $resp->is_valid)
  {
  $error = ""; // Leert Variable
  $html_ausgabe = "" ; // Leert Variable
  (!empty($vorname)) ? $html_ausgabe .= "Guten Tag $vorname. <br />\n"; // Schreibt Variable---- hier geht der fehler los
  (!empty($mailadr)) ? $html_ausgabe .= "Ihre Mail Adresse: $mailadr\n." // Schreibt Variable
  (strlen($html_ausgabe)>0) ? $html_ausgabe .= "E-Mail wurde gesendet!<br />Thank You"; // Schreibt Variable
  }
  else
  {
  // Fehlermeldung in Variable ablegen
  $error = $resp->error; // Schreibt Variable
  }
}
?>

HTML:
<html>
<style type="text/css">
#apDiv1 {
  position:absolute;
  left:25px;
  top:450px;
  width:183px;
  height:84px;
  background-color:rgb(0,255,204);
  layer-background-color:rgb(0,255,204);
  border:1px none #000000;
  z-index:1;
}
</style>
<body>
<h2>Formularinhalt mailen</h2>
<form action = "<?php echo $_SERVER[ 'mail_formular-eingabe.php' ]; ?>" method ="post">
  <p><input name="str_vorname"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?>/> Voname</p>
  <p><input name="str_nachname"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?> /> Nachname</p>
  <p><input name="strEmail"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?> /> Ihre&nbsp; E-Mail-Adresse</p>
  <p><textarea name="str_text" cols="50" rows="5"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?>></textarea> Ihre Nachricht</p>
  <!-- Hier können Sie den Code für Ihr Formular ergänzen -->
  <?php
  // Code für das CAPTCHA in das Formular einbauen
  echo recaptcha_get_html ( $publickey, $error);?>
  
  <input type="submit" value="submit"<?php strlen($html_ausgabe)>0 ? echo ' disabled'; ?> />
</form>
<?php
if (strlen($html_ausgabe)>0 || strlen($error)>0) { // Inhalt in $html_ausgabe oder $error ?>
<div id="apDiv1">
  <?php (strlen($html_ausgabe)>0) ? echo $html_ausgabe; : echo $error; // Inhalt ausgeben?>  
</div>
<?php } ?>
</body>
</html>
 

Myhar

Hat es drauf

Bist du sicher, dass in diese verkürzte if-Schreibweise einfach so ein ; hinein kommt?
Da habe ich das Gefühl, dass du dir nicht einmal deinen eigenen Code ansiehst, geschweige denn verstehst... :/
 

Merlin10

Noch nicht viel geschrieben

ok, keine ahnung was ich mit solchen sprüchen anfangen soll, mal ganz abgesehn davon das ich solche sprüche nicht brauche.
So nebenbei bemerkt , nur so am rande. der Code funk.
Die frage mit dem if, ist ja ok, jepp da bin ich mir sicher.
 

lachender_engel

Aktives Mitglied

Der Code kann so immer noch nicht funktionieren.
Du musst noch die drei Zeilen anpassen:
PHP:
  if(!empty($vorname)) $html_ausgabe .= "Guten Tag $vorname. <br />\n"; // Schreibt Variable---- hier geht der fehler los
  if(!empty($mailadr)) $html_ausgabe .= "Ihre Mail Adresse: $mailadr\n."; // Schreibt Variable
  if(strlen($html_ausgabe)>0) $html_ausgabe .= "E-Mail wurde gesendet!<br />Thank You"; // Schreibt Variable
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.616
Beiträge
1.538.358
Mitglieder
67.536
Neuestes Mitglied
QuestionMark
Oben