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" /> <input type="text" name="f_captcha" size="6" /> <input type="button" name="f_captcha_send" value="Enter" onclick="sndReq();" /><br /><br />
<p id="status_feld"></p>
<br />
<span class="font_small">(Beispiel: http://www.youtube.com/watch?v=H90mI8T5R_U)</span>
<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") > -1 && navigator.appVersion.search("5"))
{
resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
}
else if (navigator.appName.search("Microsoft Internet Explorer") > -1 && navigator.appVersion.search("6"))
{
resObjekt = new ActiveXObject("MSXML2.XMLHTTP");
}
else if (navigator.appName.search("Microsoft Internet Explorer") > -1 && 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.value, true);
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 = substr( str_shuffle( $ZahlenString ), 0, 1);
$operator = "+";
$ZufallString2 = substr( str_shuffle( $ZahlenString ), 0, 1);
$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 ( $Bilddatei, 0,0,0);
imagettftext( $Bilddatei, 12, 15, 3, 24, $TextFarbe, $Schriftarten[0], $ZufallString1 );
imagettftext( $Bilddatei, 16, 0, 26, 15, $TextFarbe2, $Schriftarten[1], $operator );
imagettftext( $Bilddatei, 14, -20, 53, 18, $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