Also erstmal prima Service den ihr hier anbietet! Habe schon lange ein Tutorial eines Chaptcha gesucht und letztendlich hier gelandet
Ich habe folgendes Problem:
Mein Skript besteht aus mehreren Teilen in einer Datei (gbposten.php):
- Code: Alles auswählen
<?php
include("gbconfig.php");
$rest = 0;
function foot()
{
$str = "";
return $str;
}
function record($REMOTE_ADDR)
{
include("gbconfig.php");
$ip = $REMOTE_ADDR;
$gesperrt = time() + ( 60 * $schutz );
$fp=fopen("database/ip.txt", "a+");
fputs ($fp,$ip."][".$gesperrt."\n");
fclose($fp);
}
function check($REMOTE_ADDR)
{
global $rest;
include("gbconfig.php");
$ip = $REMOTE_ADDR;
$trenner = "][";
$now = time();
$line = file("database/ip.txt");
$aline = count($line);
for($i=0;$i<$aline;$i++)
{
$entry = explode($trenner,$line[$i]);
if($entry[0]=="$ip")
{
if($now<$entry[1])
{
$rest = round(($entry[1] - $now) / 60);
return TRUE; // gesperrt
break;
}
else { return FALSE; } // nicht gesperrt
}
}
}
?>
<link rel=stylesheet type="text/css" href="../<?php echo "$css"; ?>">
</head>
<body bgcolor="<?php echo "$bgcolor"; ?>">
<div align="center">
<p> </p>
<?php if(($action=="") and (!check($REMOTE_ADDR))) { ?>
<form action="gbposten.php?action=gbposten" method="post" name="gbposten">
<?php
$datei = "templates/posten.html";
$fp = fopen ($datei, "r");
$gbposten = fread ($fp, filesize ($datei));
fclose ($fp);
$gbposten = str_replace('%%nick%%','<input type="text" name="post[nick]" maxlength="11" size="30"/>',$gbposten);
$gbposten = str_replace('%%email%%','<input type="text" name="post[email]" size="30"/>',$gbposten);
$gbposten = str_replace('%%icq%%','<input type="text" name="post[icq]" size="30"/>',$gbposten);
$gbposten = str_replace('%%hp%%','<input type="text" name="post[hp]" size="30" value="http://"/>',$gbposten);
$gbposten = str_replace('%%beitrag%%','<textarea name="post[beitrag]" cols="30" maxlength="100" rows="7"></textarea>',$gbposten);
$gbposten = str_replace('%%abschicken%%','<input type="submit" value="Abschicken" /> <input type="reset" value="Reset" />',$gbposten);
if($html=="0") { $gbposten = str_replace('%%html%%','HTML ist an',$gbposten); }
else { $gbposten = str_replace('%%html%%','HTML ist aus',$gbposten); }
echo "$gbposten";
?>
</form>
<?php
echo foot();
}
elseif (check($REMOTE_ADDR))
{
echo "<font color=\"red\">Spammschutz: Du kannst in $rest Minuten einen Beitrag hinterlassen!</font>";
echo foot();
}
elseif ($action=="gbposten")
{
// Felder überprüfen
$error = 0;
if($post[nick]=="") {
echo "<font color=\"red\">Du hast das Feld <b>'Nick'</b> nicht korrekt ausgefüllt!</font><br>";$error=1; }
if($post[email]=="") {
echo "<font color=\"red\">Du hast das Feld <b>'Email'</b> nicht korrekt ausgefüllt!</font><br>";$error=1; }
elseif(preg_match("/^.+@.+\.(de|info|com|org|net)$/s",$post[email])) { } else { echo "<font color=\"red\">Du hast das Feld <b>'Email'</b> nicht korrekt ausgefüllt!</font><br>";$error=1; }
if($post[hp]=="") { $post[hp] = "http://"; }
if($post[beitrag]=="") {
echo "<font color=\"red\">Du hast das Feld <b>'Text'</b> nicht korrekt ausgefüllt!</font><br>";$error=1; }
if($html=="0") {
if(preg_match("/^.<.>$/s",$post[beitrag])) { echo "<font color=\"red\"><b>HTML</b> ist nicht erlaubt!</font><br>";$error=1; }}
// Eintrag speichern
if($error==1)
{
echo "<br><br><a href=\"javascript:history.back()\">zurück</a>";
echo "<meta http-equiv=\"refresh\" content=\"3; URL=javascript:history.back()\">";
}
else
{
// Speichern
function save($datei, $eintragen)
{
$fp = fopen($datei, "w");
fwrite($fp, $eintragen);
fclose($fp);
}
function my_nl2br($text)
{
$retvalue="";
for ($ii=0; $ii < strlen($text); $ii++){
if ($text[$ii]!=chr(13))
$text[$ii]=="\n" ? $retvalue .= "<BR>" : $retvalue .= $text[$ii];
}
return $retvalue;
}
//Beitrag bearbeiten
$post[beitrag] = str_replace('\"','"',$post[beitrag]);
$post[beitrag] = my_nl2br($post[beitrag]);
// Smilies
$post[beitrag] = str_replace(':)','<img src="images/smilies/1.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':-)','<img src="images/smilies/1.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':(','<img src="images/smilies/2.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':-(','<img src="images/smilies/2.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':D','<img src="images/smilies/3.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':-D','<img src="images/smilies/3.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':|','<img src="images/smilies/4.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':-|','<img src="images/smilies/4.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace('x(','<img src="images/smilies/4.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace('x-(','<img src="images/smilies/4.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace('X(','<img src="images/smilies/4.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace('X-(','<img src="images/smilies/4.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(';)','<img src="images/smilies/5.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(';-)','<img src="images/smilies/5.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':P','<img src="images/smilies/6.gif" border="0">',$post[beitrag]);
$post[beitrag] = str_replace(':-P','<img src="images/smilies/6.gif" border="0">',$post[beitrag]);
$dBeitraege = "database/beitraege.txt";
$line = file($dBeitraege);
$post[datum] = date(d);
$post[datum] .= ".";
$post[datum] .= date(m);
$post[datum] .= ".";
$post[datum] .= date(y);
$post[uhrzeit] = date(H);
$post[uhrzeit] .= ":";
$post[uhrzeit] .= date(i);
$line[0] = "$post[nick]|µ|$post[email]|µ|$post[icq]|µ|$post[datum]|µ|$post[uhrzeit]|µ|$post[hp]|µ|$post[beitrag]|µ||µ|\n".$line[0];
save("$dBeitraege",implode("",$line));
record($REMOTE_ADDR);
// Emails abschicken
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ".$email."\r\n";
// Adminmail
if($adminmail=="1")
{
$text = "Folgender Eintrag wurde von $post[nick] <<a href=\"mailto:$post[email]\">$post[email]</a>> abgegeben:<br>
$post[beitrag]";
$betreff = "Neuer Eintrag in Ihrem Gästebuch";
mail($email, $betreff, $text, $headers);
}
if($usermail=="1")
{
$text = "Vielen Danke für deinen Eintrag in unserem Gästebuch!<br>
Wir würden uns freuen dich bald wieder auf unserer Homepage begrüßen zu dürfen!<br>mfg www.animanix.com";
$betreff = "Danke für deinen Eintrag!";
mail($post[email], $betreff, $text, $headers);
}
echo "
<body bgcolor=\"#636973\">
<A href=\"index.php?page=gbbook\"><img src=\"images/eintragend.jpg\" border=\"0\"></A></body>
";
}
}
?>
Nun weiß ich nicht wirklich wo ich das hier einbauen soll:
- Code: Alles auswählen
<?php
session_start();
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "29jfkd921");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);
//
//
//Hier kommt das ursprüngliche Script hin.
//
//
}
?>
Habs schon ein paar mal probiert, hat aber nicht wirklich funktioniert.
Ich hoffe ihr könnt mir weiterhelfen!
mfg Rene
