Jetzt kostenlos Anmelden!

Benny

unregistriert

1

Donnerstag, 2. April 2009, 13:30

Captcha einbauen

Hallo zusammen,

ich wollte mal fragen ob ein Erfahrender Coder wie z.B Dooki :D, mir helfen kann ein Captcha alá " 5 + 3 =" ainzubauen, in diesem Script:

Quellcode

1
2
3
4
5
6
7
8
<form action="" id="test">
    	<input id="VLink" name="VLink" size="60" class="formular"/>
    	<input type="button" value="Downloaden" onclick="dvs_yd4all_CallServer(VLink.value);" id="Button1" name="Button1" class="button"/>
    	<br />
    	<span class="font_small">(Beispiel: http://www.youtube.com/watch?v=H90mI8T5R_U)</span> &nbsp;&nbsp;&nbsp;
    	<input type="checkbox" value="directDownload" id="directDownload" name="directDownload" onclick="dvs_DirectDownload=directDownload.checked;" checked="checked"/>
    	<span class="font_small">Sofort Downloaden</span>
  	</form>


Bevor man auf Downloaden klicken kann, sollte das Feld dann erscheinen mit der Eingabe des Captcha Codes, dann soll es erst möglich sein zu downloaden!
  • Zum Seitenanfang
  • Zum Seitenende

2Bad4You Männlich

findet sich zurecht

Beiträge: 103

Geschlecht: Männlich

Wohnort: Neustadt/Wied

PHPKIT Version: keine

2

Mittwoch, 8. April 2009, 21:10

Hi,

ich weiss zwar nich ob du hier noch ne Lösung suchst, falls net einfach ignorieren wenn doch dann könnte vielleicht das hier eine Lösung für dich sein:

Dein HTML Formular ändern in:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
<form name="download_formular" action="" id="test">
  <input id="VLink" name="VLink" size="60" class="formular"/><br />
  <img src="captcha.php" alt="Captcha" title="Captcha" width="80" height="25" />&nbsp;&nbsp;&nbsp;<input type="text" name="f_captcha" size="6" />&nbsp;&nbsp;&nbsp;<input type="button" name="f_captcha_send" value="Enter" onclick="sndReq();" /><br /><br />
  <p id="status_feld"></p>
  <br />
  <span class="font_small">(Beispielhttp://www.youtube.com/watch?v=H90mI8T5R_U)</span> &nbsp;&nbsp;&nbsp;
  <input type="checkbox" value="directDownload" id="directDownload" name="directDownload" onclick="dvs_DirectDownload=directDownload.checked;" checked="checked"/>
  <span class="font_small">Sofort Downloaden</span>
</form>


Dann eine Javascript Datei erstellen un diese einbinden bzw den Code daraus in deine js datei mit reinschreiben

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// JavaScript Document Start

var resObjekt;

if (navigator.appName.search("Microsoft Internet Explorer") > -&& navigator.appVersion.search("5"))
{
    resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
}
else if (navigator.appName.search("Microsoft Internet Explorer") > -&& navigator.appVersion.search("6")) 
{
    resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
}
else if (navigator.appName.search("Microsoft Internet Explorer") > -&& navigator.appVersion.search("7"))
{
    resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
}
else
{
    resObjekt = new XMLHttpRequest();
}

function sndReq()
{
    resObjekt.open("GET""validateCaptcha.php?code=" +document.download_formular.f_captcha.valuetrue);
    resObjekt.onreadystatechange handleResponse;
    resObjekt.send(null);
}

function handleResponse()
{
    if (resObjekt.readyState == 4)
    {
        document.getElementById("status_feld").innerHTML resObjekt.responseText;
    }
}

// JavaScript Document Stop


Dann eine .php Datei namens: "captcha.php" erstellen:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<?php
// Session starten
session_start();

/** Config Bereich Start **/

$Schriftarten = array( "zachary.ttf""mtcorsva.ttf""gilligan.ttf");
$BildPfad "captcha.png";

/** Config Bereich Ende **/

// Das Cachen der Grafik verhindern
header"Expires: Mon, 26 Jul 1997 05:00: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" );

// Dem Browser mitteilen das es sich hierbei um ein JPG handelt.
header'Content-type: image/jpeg' );

// Alten CAPTCHA-Code aus der Session loeschen
unset ( $_SESSION['captcha_code']);

// Sicherheitscode generieren
$ZahlenString "0123456789";
$ZufallString1 substrstr_shuffle$ZahlenString ), 01);
$operator "+";
$ZufallString2 substrstr_shuffle$ZahlenString ), 01);

$ZufallStringKomplett "".$ZufallString1 $ZufallString2."";

// Sicherheitscode in der Session speichern
$_SESSION['captcha_code'] = md5$ZufallStringKomplett );

// Grafik erzeugen und an den Browser senden
$Bilddatei imagecreatefrompng"captcha.png" );
$TextFarbe imagecolorallocate $Bilddatei0,0,0);
imagettftext$Bilddatei1215324$TextFarbe$Schriftarten[0], $ZufallString1 );
imagettftext$Bilddatei1602615$TextFarbe2$Schriftarten[1], $operator );
imagettftext$Bilddatei14, -205318$TextFarbe3$Schriftarten[2], $ZufallString2 );
imagejpeg$Bilddatei );

// Grafik zerstoeren und Speicher freigeben
imagedestroy$Bilddatei );
?>


Und dann noch eine .php datei namens: "validateCaptcha.php" erstellen:

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
?php
session_start();

if (!isset($_GET['code']) || ($_GET['code'] == ""))
{
    echo "<font color='#FF0000'>Bitte den Sicherheits Code eingeben!</font>";
}
else if (isset($_GET['code']) && ($_GET['code'] != "") && ($_SESSION['captcha_code'] == md5($_GET['code'])))
{
    echo '<input type="button" value="Downloaden" onclick="dvs_yd4all_CallServer(VLink.value);" id="Button1" name="Button1" class="button"/>';
}
else if(isset($_GET['code']) && ($_GET['code'] != "") && ($_SESSION['captcha_code'] != md5($_GET['code'])))
{
    echo " <font color='#FF0000'>Der Eingegebene Sicherheits Code ist falsch!</font>";
}

?>


Musst nur noch in der captcha.php dann die schrifttypen und das hintergrund bild bzw die pfade davon abbändern.
Alternativ kannste auch das kannste Packet Hier laden (war zu groß für nen anhang hier). Da ist dann Hintergrundgrafik, die .js datei und die .php dateien dabei. Auch mal dein Formular zum testen.

Live Ansicht hier
  • Zum Seitenanfang
  • Zum Seitenende

Benny

unregistriert

3

Donnerstag, 9. April 2009, 05:08

Vielen vielen dank!
Das werde ich dann mal ausprobieren.
Ich danke dir zu tiefst :D

LG
Benny
  • Zum Seitenanfang
  • Zum Seitenende