Hallo,
hab ein paar Probleme wegen Spamereien auf meiner Seite. Wollte mal Fragen, ob jemand nen Code hat, mit so einem Sicherheits Code oder einer Rechnung das wenn dies nicht richtig ausgefüllt ist erst gar nichts abgeschickt wird.
celle Gast |
celle Gast |
Hallo,
hab ein paar Probleme wegen Spamereien auf meiner Seite. Wollte mal Fragen, ob jemand nen Code hat, mit so einem Sicherheits Code oder einer Rechnung das wenn dies nicht richtig ausgefüllt ist erst gar nichts abgeschickt wird.
header("Content-Type: image/png"); // Als PNG zurückgeben
$explode = explode('x', $_REQUEST['string']); // Rechenaufgabe aufspalten
$zahl1 = $explode[1]; // Erste Zahl
$zahl2 = $explode[2]; // Zweite Zahl
if($explode[0] == 'vp') $string = '+'; // Addition
else $string = '-'; // Subtraktion
$img = imagecreate(80, 15); // Bild initialisieren
imagecolorallocate($img, rand(170,255), rand(170,255), rand(170,255)); // Hintergrundfarbe (Zufällig)
// Erste Zahl ausgeben
$col = imagecolorallocate($img, rand(0, 100), rand(0, 100), rand(0, 100)); // Farbe "berechnen"
imagestring($img, rand(1,3), rand(0,15), rand(0,3), ($zahl1-10), $col); // Position
// Rechenzeichen ausgeben
$col = imagecolorallocate($img, rand(0, 100), rand(0, 100), rand(0, 100));
imagestring($img, rand(1,3), rand(25,35), rand(0,3), $string, $col);
// Zweite Zahl ausgeben
$col = imagecolorallocate($img, rand(0, 100), rand(0, 100), rand(0, 100));
imagestring($img, rand(1,3), rand(45,60), rand(0,3), ($zahl2-10), $col);
// Gleichzeichen ausgeben
$col = imagecolorallocate($img, rand(0, 100), rand(0, 100), rand(0, 100));
imagestring($img, rand(1,3), 70, rand(0,3), '=', $col);
imagepng($img); // Bild ausgeben
imagedestroy($img); // Speicher wieder freigeben
<script type="text/javascript"><!--
function validate() {
if(document.eform.l.value != trim(document.eform.myGBcode.value))
{
alert('Die Loesung zu der Rechenaufgabe ist falsch!');
}
else
{
if(document.eform.myGBtext.value.length < 3)
{
alert('Der Text muss aus mindestens drei Zeichen bestehen!');
}
else
{
document.eform.submit();
}
}
}
--></script>
<?php
$zahl1 = rand(10,21); // Zahl "generieren" zwischen 10 und 21
$zahl2 = rand(1,9); // Zahl "generieren" zwischen 1 und 9
$vorzeichen = rand(1,2); // Art der Rechnung bestimmen (1 = Plus, 2 = Minus)
if($vorzeichen == 1) // Addition
{
$loesung = $zahl1 + $zahl2; // Lösung ausrechnen
$string = 'vpx'.($zahl1+10).'x'.($zahl2+10); // Rechenaufgabe "kodieren" um es Robots ein wenig schwerer zu machen
}
else // Subtraktion (siehe bei Addition)
{
$loesung = $zahl1 - $zahl2;
$string = 'vmx'.($zahl1+10).'x'.($zahl2+10);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" name="eform">
....
<tr>
<td><img src="admin/scripts/captcha.php?string=<?php echo $string;?>"></td>
<td><input name="myGBcode" type="text"></td>
</tr>
<tr>
<td>Text</td>
<td><textarea name="myGBtext"></textarea></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="button" value="Eintragen" onclick="validate()"></td>
</tr></table>
<input type="hidden" name="send">
<input type="hidden" name="l" value="<?php echo $loesung;?>">
</form>
Brauchst du da nicht Erweiterungen auf dem Server (GD Lib oder ähnliches)? Die sind doch bestimmt bei den meisten Webhostern nicht mit installiert...
Anmerkung: Seit PHP 4.3 ist eine Version der GD-Bibliothek in PHP enthalten. Diese gebündelte Version bietet zusätzliche Möglichkeiten, wie z.B. alpha blending und sollte der externen Version immer vorgezogen werden (der Code wird besser betreut und ist stabiler).[/font]
« css-Datenveränderung wird nicht mit übernommen | Problem mit @Yahoo.com » | ||