Captcha gästebuch
Pascal
- php
Sehr geehrte User
ich habe noch nie php geschrieben, bloss html, deshalb habe ich folgendes problem, und ich hoffe, dass ich in diesem forum etwas hilfe bekomme.
ich habe ei gästebuchscript und ein captcha script vom internet heruntergelaten.. beides funktionniert einwandfrei, solange es einzeln auf dem server getestet wird. Nun wollte ich die eiden skripte vereinigen ( gästebuch mit captcha) doch leider leuft dann gar nichts mehr seht mal bei http://pascalenderli.pa.funpic.de//guestbook/schutz/guestbook.php (testseite von mir)
wie muss ich das skript vereinigen?
einzel funktionniert es:
captcha:
http://pascalenderli.pa.funpic.de//spam/spam-schutz.php
gästebuch:
http://pascalenderli.pa.funpic.de//gaestebuch/guestbook.php
danke für die hilfe
gruss pascal
hier der code zu meinem halb funktionnierendem gästebuch (nur der eine teil, indem ein neier eintrag gemacht wird (alles weitere im seitenquelltext meiner angegebenen seiten.)
// ******************************
// *** Neuer Gästebucheintrag ***
// ******************************
if ( ($action=="new") or trim($err_text != "") ) {
echo '<h1>'.$GuestbookTitle.'</h1>'."\n";
echo '<h2>'.GetLngStr("PostAddNewTitle").'</h2>'."\n";
if(($send=="1") && trim($err_text!="")) {
echo '<div class="errorbox"><b class="red">'.GetLngStr("PostError").'</b><br>';
echo "$err_text</div>\n";
}
if(trim($gb_home=="") && (!$gb_home)) $gb_home="http://";
?>
<div class="formbox">
<form action="<?php echo GetParam("PHP_SELF", "S"); ?>?g_action=post" method="post" name="guestbook">
<?php
$gb_name = str_replace("<", "<", $gb_name);
$gb_name = str_replace(">", ">", $gb_name);
$gb_name = str_replace("\"", """, $gb_name);
$gb_home = ereg_replace("(<|>| |\(|\)|\||\"|\')", "", $gb_home);
$gb_text = str_replace("<", "<", $gb_text);
$gb_text = str_replace(">", ">", $gb_text);
$gb_text = str_replace("\"", """, $gb_text);
?>
<table width="100%" height="508" border=0 cellpadding=0 cellspacing=2>
<tr>
<td width="34%" height="337" valign="top">
<table width="100%" height="481" border=0 cellpadding=0 cellspacing=3>
<tr><td nowrap align="right" class="formtext"><?=GetLngStr("PostFormName")?></td><td nowrap align=right> </td>
<td width="100%"><input type="text" name="p_gb_name" size=50 maxlength=25 value="<?=$gb_name?>"></td></tr>
<tr><td nowrap align="right" class="formtext" style="vertical-align:top;"><?=GetLngStr("PostFormText")?><br><i><?=GetLngStr("PostFormTextMax")?></i></td><td></td>
<td width="100%"><textarea cols="50" rows="8" name="p_gb_text"><?=$gb_text?>
</textarea></td></tr>
<tr><td height="311" nowrap class="formtext"> </td><td></td><td>
<?php
// Spam-Schutz
$eingabe = @$_POST["eingabe"];
$eingabe = strtolower($eingabe);
$code = @$_POST["code"];
if(@$_POST["eingabe"] !=""){
$chluessel[1] = "dsnxn";
$chluessel[2] = "tepsh";
$chluessel[3] = "5fwnb";
$chluessel[4] = "fs7ha";
$chluessel[5] = "5ress";
$chluessel[6] = "ywyyw";
$chluessel[7] = "lcvr7";
$chluessel[8] = "gskaw";
$chluessel[9] = "u7twn";
$chluessel[10] = "4x8uw";
$chluessel[11] = "wtwem";
$chluessel[12] = "ehewh";
// Weitere Schlüssel ab hier eingeben!
// Überprüfung
if ($chluessel[$code] == $eingabe) {
echo "<font color=blue>Die Eingabe war richtig.</font>";
?><input type="hidden" value="1" name="p_send">
<input type="submit" value="<?=GetLngStr("PostFormSubmit")?>" name="submit"><?php
}
else {
echo "<font color=red>Die Eingabe war falsch!</font>";
}
}
?>
<form name="Form" action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post" onSubmit="return eingaben_ueberpruefen(this.form)">
<table>
<tr>
<td>Wiederholen Sie<br>folgenden Code<br><small>(Dies verhindert SPAM)</small></td>
<td>
<input type=hidden name="code">
<script type="text/javascript">document.write('<img src="'+RND()+'A.gif" width=210 height=50>');</script>
</td>
</tr>
<tr>
<td></td>
<td><input type=text name="eingabe" style="text-transform: uppercase;"></td>
<tr>
<th colspan=2>
<br>
<input type=submit> <input type=reset>
</th>
</tr>
</table>
</form>
</td></tr>
</table>
</td><td width="1%"> </td><td width="65%" valign=top>
Zwei Hinweise.
Dein Gästebuch ist offenbar nicht nach modernen Richtlinien geschrieben
Zum Beispiel verwendest du globale Variabeln.
Dazu werden dir PHP bewanderte mehr verraten.
Zum Captcha: Es ist ein Bildcaptcha.
Nichts gegen Bildcaptchas, aber alles gegen fehlende Alternativen.
Ich habe mir überlegt, dass pure Text Rätselcaptche zugänglicher sind
und für private HPs eher den Zweck erfüllen, als Captchas in Bild UND Ton.
Ansonsten würde ich für eine private Homepage zuerst eine Baterie von anderen Tests durchführen, um das Captcha zu vermeiden.
Ansonsten sage ich Hep hep Hurray, dem, der noch nicht vor den Bots resigniert hat, und Formularzugang von einer Registration abhängig gemacht hat.
mfg Beat
mir wird nicht ganz klar, mit welchen inhalt die über das formular gesendete variablen gefüllt werden.
sorry, aber wenn du nur einzelne fremde teil-skripte zusammenführen willst: wieso nimmst du dann nicht ein skript, was bereits beide eigenschaften verbindet?
ch