Hallo ich kenn mich wenig mit php aus.
Ich hab bissen rumgebastelt und es geht einfach nicht kann mir jemand ein demo script geben?
Moderator: frameguard
<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>
<?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]);
?>
<?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);
?><?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";
}
?>
<?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]);
?> <?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);
?> Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste