Captcha für Kontakt und GB gesucht

Hi User,

ich suche ein sicheres Captcha für mein GB und den Kontakt,
es gibt doch mit Sicherheit ein paar die soetwas anbiente?
(Mit Anleitung wäre nicht schlecht!)

Danke…

MfG: René

recaptcha.com und tausend andere - Google tuts.
Zum Selbermachen dann php und eine Grafikbibliothek

xcCaptcha
xcube-design.ath.cx/tutorial/ind … =downloads

brauwn:
recaptcha.com braucht das nicht eine Externe Verbindung?

Ja,

wenn du nochmal fragst kriegst du die verbesserte Version.
Oder du kannst auch die von CitusCMS nutzen.

ReCaptcha wird per IFrame eingebunden.

MfG, xcube

Hilft dir das:
stoppt-den-spam.info/webmast … index.html

Hi, ich habe das mal nach der Bauanleitug von stoptp-den-spam eingebaut und bekomme jetzt nur einen Error.

Hier ist der Code der Form:

[code]<?php
session_start();
if(isset($_SESSION[‘captcha_spam’]) AND $_POST[“sicherheitscode”] == $_SESSION[‘captcha_spam’])
{
unset($_SESSION[‘captcha_spam’]);
}
else{
die (“Der Sicherheitscode ist falsch!”);
}

$host = ‘localhost’;
$user = ‘don-ambiente’;
$pass = ‘einneuespw’;
$db = ‘don-ambiente’;

@mysql_connect($host, $user, $pass) or die(“Fehler bei der DB-Verbindung!”);
mysql_select_db($db) or die(“Fehler bei der DB-Tabelle!”);

function clean_string($input) {
$input = htmlspecialchars($input, ENT_QUOTES);

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

$input = mysql_real_escape_string($input);
$input = trim($input);

return $input;
}

$name = clean_string($_POST[‘name’]);
$text = clean_string($_POST[‘text’]);
$homepage = clean_string($_POST[‘page’]);
$email = clean_string($_POST[‘email’]);

$error = 0;

if(isset($_POST[‘submit’])) {

if(empty($name)) {
echo “Bitte geben Sie Ihren Namen an!
\n”;
$error = 1;
}

if(empty($text)) {
echo “Bitte geben Sie einen Nachrichtentext ein!
\n”;
$error = 1;
}

if(empty($homepage)) {
$homepage = “”;
}

if(empty($email)) {
$email = “”;
}

if($error!=1) {

$sql = “INSERT INTO gaestebuch (name,date,email,homepage,text) VALUES (’” . $name . “’,’” . time() . “’,’” . $email . “’,’” . $homepage . “’,’” . $text . “’)”;

if (mysql_query($sql)) {
echo "Danke für ihren Eintrag! Zurück zu den <a href=\"comments.php\">Comments?</a><br>\n";
}
else {
echo "Ihr Eintrag konnte nicht gespeichert werden! Bitte erneut versuchen!<br>\n";
}

}
}

?>[/code]
Alles schön und gut, nur funktioniert das nicht. Der Parser- Error sagt ab Zeile 100 ist etwas falsch, wäre hier also die session_start(); (zweite zeile im Code oben) … Wo liegt der Fehler?

MfG: René

Dann sag uns bitte noch was das für ein Error ist, sonst kann man dir leider nicht helfen :wink:
Und eingebaut hast du den Code ja grad auch nicht…

<?php session_start(); if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']) { unset($_SESSION['captcha_spam']); } else{ die ("Der Sicherheitscode ist falsch!"); }

Das ist der Code im Formular. Die externe Datei cpatcha/captcha.php brauche ich ja nicht zu erwähen.

Error:

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/don-ambiente/www/comments_w.php:99) in /users/don-ambiente/www/comments_w.php on line 100

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/don-ambiente/www/comments_w.php:99) in /users/don-ambiente/www/comments_w.php on line 100


MfG: René

Bitte danach suchen, hier oder im www.

Soetwas wie:

php-resource.de/forum/showthread … d=62965%B4
(Quelle Google) bringt mich nicht weiter.

Ich verstehe es einfach nicht. Sowie ich mich jetzt auch schon durch drei weitere Foren kämpfe, bringt es mir keinen Aufschluss.

Auf der Webseite, in dem das Captcha beschrieben wird steht, man solle den Code um den bereits vorhanden einsetzen. Das habe ich gemacht und jetzt geht es nicht.

don-ambiente.de/comments_w.php

Habe ich was in der Funktion session_start(); vergessen? Schließlich wird diese doch in der Warnung angegeben?


MfG: René

Was bitte verstehst du denn daran, dass vor dem Aufruf von session_start noch keinerlei Ausgabe stattgefunden haben darf, nicht?

Ok, zu früh gefreut.

Der Script hat keine Warunung oder einen Error, aber er funktioniert dennoch nicht.

[code]<?php
session_start();
if(isset($_SESSION[‘captcha_spam’]) AND $_POST[“sicherheitscode”] == $_SESSION[‘captcha_spam’]){
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);

}
else{
die (“Der Sicherheitscode ist falsch!”);
}
?> [/code]

*edit: uh, hab wohl was überlesen :stuck_out_tongue:

Was befindet sich in Zeile 99 (also die vor Session Start)? Richtig, <?php
Nun weißt du sicher, dass vor Header-Aktionen (setcookie,session_start, header()) keine Ausgabe stattfinden darf. Falsches Beispiel:

<h1>FALSCH!</h1>
<?php
session_start();

Lösung:

<?php session_start(); ?>
<h1>FALSCH!</h1>
<?php

Nun ist es aber auch möglich, dass ein Leerzeichen eine Ausgabe darstellt, bitte überprüfe mit der Lupe!

Eine andere Möglichkeit ist, das dein Editor Angaben in der Datei speichert (was eine Ausgabe darstellt). In diesem Falle: :stress: !haue :motz: ihn dazu bringen, das nicht mehr zu machen.
Entweder er machts nichtmehr, oder du suchst dir einen anderen.

Mfg
Mgier

*edit2: So wie ich deinen geposteten Code verstehe ist das iwie verkehrt, in etwa so:

if(Sicherheitscode richtig eingegeben){ Captcha erstellen }

Mein Tipp: Ich Blick da nicht so ganz durch, nimm das Captcha von Citus-CMS, das ist ganz einfach. (Citus-CMS herunterladen, den ordner captcha kopieren und bei dir hochladen)
Einbinden kannst du das Captcha im Formular dann mit und überprüfen dann in etwa so:

if($_SESSION['captchacode'] == md5($_POST['captcha'])){ Eintrag einfügen } else { echo 'Abgeblitzt, sh!ce Bot!'; }
Mfg
Mgier

@CitusCMS (xCube):

Du hast eine PM bekommen!

Mgier:

Erst einmal noch danke für deinen GB-Eintrag, tut zwischen Spammeinträge mal ganz gut. :p

Damit schließe ich das Thema, auch wenn es noch nicht klappt…
Danke für die Hilfestellung!

MfG: René

Hi User,

mal ganz unter uns- Nach 5 Stunden suchen im Internet, nach der Lösung meines Problems, bin ich auf folgendes gestoßen:

1ngo.de/web/captcha-spam.html

Spammeinträge sind bei mir wie ausgestorben… Versuchen kann man es ja einmal.

LG: René