Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

php-Code

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.


Antworten zu php-Code:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Bei einer so präzisen Frage sieht's mit der Antwort leider auch nicht besser aus: --> google.de

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

ich denke, er meint "captcha"...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Ich hab mir mal einen Captcha-Test selbst geschrieben, da bräuchtest du allerdings PHP-Unterstützung und müsstest den Test ein bisschen anpassen.

Das ist eine PHP-Datei, die nennst du am Besten captcha.php und legst sie irgendwo ab auf dem Webspace:
<?php
	
header("Content-Type: image/png"); // Als PNG zurückgeben
	

	
$explode explode(&#39;x&#39;, $_REQUEST[&#39;string&#39;]); // Rechenaufgabe aufspalten
	
$zahl1 $explode[1]; // Erste Zahl
	
$zahl2 $explode[2];  // Zweite Zahl
	
if(
$explode[0] == &#39;vp&#39;) $string = &#39;+&#39;; // Addition
	
else 
$string = &#39;-&#39;; // Subtraktion
	

	
$img imagecreate(8015); // Bild initialisieren
	
imagecolorallocate($img,  rand(170,255), rand(170,255), rand(170,255)); // Hintergrundfarbe (Zufällig)
	

	
// Erste Zahl ausgeben
	
$col imagecolorallocate($imgrand(0100), rand(0100), rand(0100)); // Farbe "berechnen"
	
imagestring($imgrand(1,3), rand(0,15), rand(0,3), ($zahl1-10), $col); // Position
	

	
// Rechenzeichen ausgeben
	
$col imagecolorallocate($imgrand(0100), rand(0100), rand(0100));
	
imagestring($imgrand(1,3), rand(25,35), rand(0,3), $string$col);
	

	
// Zweite Zahl ausgeben
	
$col imagecolorallocate($imgrand(0100), rand(0100), rand(0100));
	
imagestring($imgrand(1,3), rand(45,60), rand(0,3), ($zahl2-10), $col);
	

	
// Gleichzeichen ausgeben
	
$col imagecolorallocate($imgrand(0100), rand(0100), rand(0100));
	
imagestring($imgrand(1,3), 70rand(0,3), &#39;=&#39;, $col);
	

	

	
imagepng($img); // Bild ausgeben
	
imagedestroy($img); // Speicher wieder freigeben
	

?>


Dann brauchst du noch folgenden Code, den du modifizieren kannst, wenn du dich auskennst:

<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 = &#39;vpx&#39;.($zahl1+10).&#39;x&#39;.($zahl2+10); // Rechenaufgabe "kodieren" um es Robots ein wenig schwerer zu machen
}
else // Subtraktion (siehe bei Addition)
{
$loesung $zahl1 $zahl2;
$string = &#39;vmx&#39;.($zahl1+10).&#39;x&#39;.($zahl2+10);
}
?>


<form action="<?php echo $_SERVER[&#39;PHP_SELF&#39;];?>" 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>


Das ist jetzt auch nicht die Musterlösung, aber bisher hab ich 0% Spam, wo ich ihn einsetze ;)
Es ist natürlich mögilch den Captcha-Test zu umgehen, indem man z.B. den String dekodiert oder einfach die Lösung ausließt im Quellcode oder selber ein Formular schreibt ohne diesen Captcha-Test und an die Seite schickt, aber entweder ist das zu aufwändig oder du musst noch ein bisschen basteln (z.B. den Test nochmal überprüfen im PHP-Teil)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Brauchst du da nicht Erweiterungen auf dem Server (GD Lib oder ähnliches)? Die sind doch bestimmt bei den meisten Webhostern nicht mit installiert...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button
Ja, PHP und GDLib (ich glaub 1.6 reicht da sogar schon, besser >2.0).

GD Lib ist schon relativ weit verbreitet, bei funpic.de hat man schon 2.0.28 und normalerweise ist es bei PHP schon standardgemäß aktiviert.
Aber wie gesagt, es ist auch nicht DIE Lösung, nur mal ein Codebeispiel von mir.

Auf der PHP-Seite dazu auch:
http://at.php.net/manual/de/ref.image.php
Zitat
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 übernommenProblem mit @Yahoo.com »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

| Mehr Themen zu "php Code"
Fremdwörter? Erklärungen im Lexikon!
Quellcode
Ein Quellcode, auch als Quelltext bekannt, bezeichnet den unkompilierten Programm-Code einer Software. Quell- oder Programm-Code ist der auch für Menschen lesbare Co...

Unicode
Unicode ist ein international anerkannter Standard, der als universeller Zeichencode ("Universal Code") dient und durch das Unicode-Konsortium entwickelt und verwaltet wi...

QR-Code
QR-Codes, die Abkürzung für "Quick Response Codes", sind eine Form von zweidimensionalen Barcodes. Damit lassen sich Informationen schnell und effizient speiche...