You are not logged in.

  • Login

1

Saturday, December 16th 2006, 7:59pm

Einfaches Captcha

Hallo,

wie im andere Threat schon beschrieben, suche ich ein relativ simples Captcha Script oder ein Tutorial dazu. Es genügen mir 3 Zeichen. Wenn man das ganze auch noch skalieren könnte, wäre dies super. Bei Google gibt es zwar viele Seiten, doch die Captchas sind immer wahre Monster :roll:

Meine 2. Frage dazu:

Ist es möglich, ein Captcha auch auf der selben Seite auswerten zu lassen? Die Tutorials und Scripte die ich bisher gefunden habe, benötigen immer 2 Seiten (die 2. für die Auswertung). Mein Problem: Ich habe auf meiner Download-Seite ja die Daten bekommen für den Download und diese gehen mir ja bei der Auswertung verloren und man kann die Datei nicht mehr downloaden. Da nützt eine erfolgreiche Captcha-Eingabe auch nichts mehr :? Dass es geht, beweist Rapidshare. Die haben das auch irgendwie integriert, nur wie haben die das gemacht?

Gruß Inekai

2

Saturday, December 16th 2006, 9:01pm

So macht das Rapidshare:

XML Code

1
<form name="dl" action="http://dl10.rapidshare.de/files/30026126/170799368/DieDatei" method="post">Download <font color="red">DieDatei</font>: dl10.rapidshare.de (7953 von 10000 MBit/s in Gebrauch)<br><h3>Kein Premium-User. Bitte <img src="https://ssl.rapidshare.de/cpt170799368.png"> hier eingeben: <input name="captcha" size="4" maxlength="3" type="text"> <input name="actionstring" value="Download" type="submit"></h3></form>


Hallo,
was willst du denn genau ?
Möchtest du dein Skript nicht noch einmal nachladen lassen ? Dann wäre AJAX eine Lösung.
Oder willst du das Formular einfach von der momentanen Seite verarbeiten lassen ?
Dann hilft:

PHP Quellcode

1
2
3
4
<?
echo '<form action="';
echo $_SERVER['PHP_SELF'];
echo '"...';


Habe deine Frage leider nicht richtig verstanden. :oops:
Kannst es ja vielleicht nochmal ein bisschen genauer darstellen oder ich bin einfach nur doof :cry: , und jemand anderes kann dir weiterhelfen.

3

Saturday, December 16th 2006, 9:25pm

Ich verwende immer ein recht einfaches Capcha Script das ich mir irgendwann mal zusammen gebastelt hab.

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?PHP
session_start();
$alphanum = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
$code = substr( str_shuffle( $alphanum ), 0, 5 );
$_SESSION['captcha'] = md5( $code );
$image = imagecreatefromjpeg( '../images/captcha' .rand( 1, 4 ). '.jpg');
$bgCol = imagecolorallocate ( $image, 255, 255, 255 );
$txtCol = imagecolorallocate ( $image, 0, 0, 0 );
imagestring ( $image, 5, 5, 8, $code, $txtCol );
header( 'Expires: Mon, 12 Jul 1999 01:01:00 GMT' );
header( 'Last-Modified: ' . gmdate( "D, d M Y H:i:s" ) . ' GMT' );
header( 'Cache-Control: no-store, no-cache, must-revalidate' );
header( 'Cache-Control: post-check=0, pre-check=0', false );
header( 'Pragma: no-cache' );
header( 'Content-type: image/jpeg' );
imagejpeg( $image );
imagedestroy( $image );
?>

Das einfach als capcha.php speichern und dann mit

HTML Code

1
2
<img src="include/captcha.php" border="0" alt="captcha"><br>
Visuelle Bestätigung: <input name="captcha" size="5" type="text">
in die Seite einbinden.
Püfen kannst du das dann mit

PHP Quellcode

1
2
3
4
if ( md5($income['captcha']) == $_SESSION['captcha'] ) 
{
	CAPCHA OK
}

4

Sunday, December 17th 2006, 1:06am

auf Browsershots.de setze ich dieses Script ein:
http://pascal-rehfeldt.com/german/content/Captcha.html

5

Wednesday, December 20th 2006, 5:09pm

Quoted from ""TDege""



Habe deine Frage leider nicht richtig verstanden. :oops:
Kannst es ja vielleicht nochmal ein bisschen genauer darstellen oder ich bin einfach nur doof :cry: , und jemand anderes kann dir weiterhelfen.


Hi TDege,

es geht um folgendes:

Leute kommen auf eine dynamisch generierte Downloadseite mit dem Downloadcode, der zur Datei führt. Die Captchas, die ich gesehen habe, brauchen aber eine 2. Seite zur überprüfung, ob der eingegebene Captchacode richtig ist und verarbeiten dann die Anfrage. Nur auf der 2. Seite würde mir ja der generierte Downloadcode verloren gehen, außer ich könnte den irgendwie mitnehmen auf die 2. Seite wo der Captchacode überprüft wird und der Download würde dann bei richtigem Captchacode starten und bei falschem Code ein neues Captcha generieren. Da ich eben noch PHP-Anfänger bin, muss ich mir noch vieles erfragen und anlesen und schauen, wie andere das gelöst haben, wie z. B. Rapidshare - "Learning by doing" eben :?

Gruß inekai

6

Wednesday, December 20th 2006, 7:04pm

Du kannst doch den Code in einer Session speichern oder mit der URL übergeben und dann auf der Zieldatei je nachdem welcher Code in der Session steht den richtigen Download starten.

7

Monday, December 25th 2006, 7:45pm

Hallo Tobi,

könntest du dich bitte nocheinmal bei mir melden, denn ich habe dein Captcha genutzt aber leider geht es nicht richtig.

Schau da bitte
http://spinning-minds.com/gb/test.php



MfG

PHP Quellcode

1
2
3
4
5
6
7
8
9
10
<img src="captcha.php" border="0" alt="captcha"><br>
Visuelle Bestätigung: <input name="captcha" size="5" type="text">
<input type='submit' value='Eintragen'>
<?php
if ( md5($income['captcha']) == $_SESSION['captcha'] )
{
	echo 'Captcha ok';
}
    else 'Captcha Error';
?>


Ehm es ist nicht korrekt es geht mir lediglich um das Bild was angezeigt werden sollte.

8

Monday, December 25th 2006, 8:16pm

na, stell deine frage doch einfach. Wir können dir bei dem Code doch auch helfen.
Aber wehe es ist ein Syntaxfehler in #3 *gg*

PHP Quellcode

1
2
3
4
if ( md5($income['captcha']) == $_SESSION['captcha'] )
{
        CAPCHA OK
}

9

Monday, December 25th 2006, 10:37pm

Ok das ist das eine das wusste ich nicht ganz genau ;), ich habe gedacht ich kann da eine ganz normal If bedingung draus machen.

Aber du hast mich ja nun berichtigt ;).

Aber wie mache ich das nun das ,dass Bild richtig angezeigt wird?
Also der einzugebende Captcha

MfG

10

Tuesday, December 26th 2006, 2:18am

Hast du die Hintergrundbilder hochgelaen?

PHP Quellcode

1
$image = imagecreatefromjpeg( '../images/captcha' .rand( 1, 4 ). '.jpg');

Also 1.jpg, 2.jpg, 3.jpg, 4.jpg und dann den Pfad natürlich anpassen.

Wenn nur ein Bild verwendet werden soll, kann man aus der Zeile auch einfach

PHP Quellcode

1
$image = imagecreatefromjpeg( './pfad/bild.jpg');
machen.

Hab ich vergessen oben dazu zu schreiben, sorry. Aber steht ja im Code und sollte deshalb auch so klar sein.

11

Tuesday, December 26th 2006, 2:55pm

danke ne ich weiß nunr was ich vergessen habe ^^ .

12

Sunday, May 24th 2009, 12:24pm

wasfalsch

wasfalsch:

ich hab´versucht, das hier als captcha zu verwenden. tut nicht, weil selbst richtige eingaben im code als "falsch" interpretiert werden- soll heissen, sie werden an die adresse im "else"-teil geschickt.

abhilfe?

if ( md5($income['captcha']) == $_SESSION['captcha'] )
{
$emailadresse = "adresserichtig";
}
ELSE
{
$emailadresse = "adressefalsch";
}

13

Sunday, May 24th 2009, 2:48pm

Die Definition von $income wird nicht erläutert. Vermutlich musst du $income schlicht durch $_POST ersetzen.

Wenn man nicht genau versteht wie es funktioniert, sollte man sich keine Codeausschnitte aus Foren kopieren.
Ich würde dir daher zu "professionelleren" Ansätzen wie http://www.phpcaptcha.org/ raten.

UPDATE: Mehr Captcha Code auch in unserem Wiki: Captcha Tutorial

Similar threads

Social bookmarks