Demo

Hier werden Probleme rund um das Rechen Captcha behandelt

Moderator: frameguard

Demo

Beitragvon {BG}Michael{clan} » 04.08.2008, 12:29

Hallo ich kenn mich wenig mit php aus.
Ich hab bissen rumgebastelt und es geht einfach nicht kann mir jemand ein demo script geben?
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Beitragvon Rob [Admin] » 04.08.2008, 16:55

Was geht nicht, was hast du gemacht, um welche Seite geht es, mehr Infos bitte :roll:
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon {BG}Michael{clan} » 04.08.2008, 17:11

wenn der code falsch ist läst er mich einfach durch
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Beitragvon Rob [Admin] » 04.08.2008, 17:18

Ein Demo Script findest du ja auf der Hauptseite, beim Tutorial, dies hat bereits bei vielen Webmastern funktioniert. Poste doch mal deinen Code, dann können wir dir bei deinem individuellen Code weiter helfen.
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon {BG}Michael{clan} » 04.08.2008, 17:20

Code: Alles auswählen
<form method="post" action="formular2.php">

  <p>Ihr Name:
    <input type="text" name="name">
    <br>

Ihre Nachricht:
<textarea name="nachricht"></textarea>
</p>
  <p><img src="rechen-captcha.php"> <input type="text" name="sicherheitscode" size="5"><br>
    <input type="submit" name="Button" value="Abschicken">
  </p>
</form>

Code: Alles auswählen
<?PHP

echo "Ihre Nachricht wurde mit diesem Inhalt gesendet:<br>";

echo "Ihr Name: $_POST[name]<br>";

echo "Ihre Nachricht $_POST[nachricht]";

mail("MEINE MAIL ADRESSE","Nachricht von $_POST[name]",$_POST[nachricht]);
?>

Code: Alles auswählen
<?php
session_start();
unset($_SESSION['rechen_captcha_spam']);
$zahl1 = rand(10,20); //Erste Zahl 10-20
$zahl2 = rand(1,10);  //Zweite Zahl 1-10
$operator = rand(1,2); // + oder -

if($operator == "1"){
   $operatorzeichen = " + ";
   $ergebnis = $zahl1 + $zahl2;
}else{
   $operatorzeichen = " - ";
   $ergebnis = $zahl1 - $zahl2;
}

function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}

$_SESSION['rechen_captcha_spam'] = encrypt($ergebnis, "29jfkd921"); //Key
$_SESSION['rechen_captcha_spam'] = str_replace("=", "", $_SESSION['rechen_captcha_spam']);
         
$rechnung = $zahl1.$operatorzeichen.$zahl2." = ?";
$img = imagecreatetruecolor(80,15);
$schriftfarbe = imagecolorallocate($img,13,28,91);
$hintergrund = imagecolorallocate($img,162,162,162);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Beitragvon Rob [Admin] » 04.08.2008, 17:25

Versuchs mal so:

Code: Alles auswählen
<?php
session_start(); //muss zuoberst im Script stehen!!!!
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
   $char = substr($string, $i, 1);
   $keychar = substr($key, ($i % strlen($key))-1, 1);
   $char = chr(ord($char)+ord($keychar));
   $result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if(isset($_SESSION['rechen_captcha_spam']) AND $sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);




//Dein altes Script
echo "Ihre Nachricht wurde mit diesem Inhalt gesendet:<br>";

echo "Ihr Name: $_POST[name]<br>";

echo "Ihre Nachricht $_POST[nachricht]";

mail("MEINE MAIL ADRESSE","Nachricht von $_POST[name]",$_POST[nachricht]);



}else{
echo "Captcha Code war falsch";
}
?> 
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon {BG}Michael{clan} » 04.08.2008, 17:28

beides zusammen oder nur das obere?
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Beitragvon Rob [Admin] » 04.08.2008, 17:29

Alles zusammen, also das Script das ich gepostet habe im Austausch mit deinem 2. gepostetem Script, also folgendes ersetzten:

Code: Alles auswählen
<?PHP

echo "Ihre Nachricht wurde mit diesem Inhalt gesendet:<br>";

echo "Ihr Name: $_POST[name]<br>";

echo "Ihre Nachricht $_POST[nachricht]";

mail("MEINE MAIL ADRESSE","Nachricht von $_POST[name]",$_POST[nachricht]);
?>
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon {BG}Michael{clan} » 04.08.2008, 17:38

Daaaaaaaaaaaaaaaaaaaaanke!
Daaaaaaaaaaaaaaaaaaaaanke!
Eine Frage wenn ich noch Felder hinzufüge muss ich dein Script ändern oder nur das echo? und html?
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Beitragvon Rob [Admin] » 04.08.2008, 17:40

Nur echo und html
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon {BG}Michael{clan} » 04.08.2008, 17:41

danke schön eine frage noch wie ist das beim anderen code wo man die Zahlen nur eingeben muss ist der ok?:
Code: Alles auswählen
<?php
   session_start();
   unset($_SESSION['captcha_spam']);

   function randomString($len) {
      function make_seed(){
         list($usec , $sec) = explode (' ', microtime());
         return (float) $sec + ((float) $usec * 100000);
      }
      srand(make_seed()); 
      //Der String $possible enthält alle Zeichen, die verwendet werden sollen
      $possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
      $str="";
      while(strlen($str)<$len) {
        $str.=substr($possible,(rand()%(strlen($possible))),1);
      }
   return($str);
   }

   $text = randomString(5);  //Die Zahl bestimmt die Anzahl stellen
   $_SESSION['captcha_spam'] = $text;
         
   header('Content-type: image/png');
   $img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
   $color = ImageColorAllocate($img, 0, 0, 0); //Farbe
   $ttf = $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"; //Schriftart
   $ttfsize = 25; //Schriftgrösse
   $angle = rand(0,5);
   $t_x = rand(5,30);
   $t_y = 35;
   imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
   imagepng($img);
   imagedestroy($img);
?>
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Beitragvon Rob [Admin] » 04.08.2008, 17:45

musst schauen ob die verschlüsslung verwenden möchtest oder nicht. ansonsten sieht das ok aus.
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon {BG}Michael{clan} » 04.08.2008, 17:47

ja klar mit verschlüsselung also mit captcha code sonst würde ich nicht fragen xD
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Beitragvon Rob [Admin] » 04.08.2008, 17:50

Einfach ausprobieren ;)
Rob [Admin]
Site Admin
 
Beiträge: 143
Registriert: 23.12.2006, 12:27

Beitragvon {BG}Michael{clan} » 04.08.2008, 17:50

letzte frage will dich nicht stören :oops:
was bedeutet "29jfkd921"?
{BG}Michael{clan}
 
Beiträge: 16
Registriert: 04.08.2008, 12:15

Nächste

Zurück zu Rechen Captcha

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron