Ich habe versucht das Captcha in das Skript Insta Review Ver 3.0 einzubauen, bekomme aber immer nur Fehlermeldungen.
es gibt eine post.php und das zugehörige Template post.html
post.php
<?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"], "123456");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
}
else {
echo 'Security Code is wrong! Der eingetragene Security Code ist falsch!';
}
/////////////////////////////////
// Includes
/////////////////////////////////
define('root_path', '');
require ("inc/global.php");
////////////////////////////////////////////////
// Load Template
////////////////////////////////////////////////
$tpl = new template;
$tpl->load_file('main', "$skin_path/post.htm");
function check_email($str)
{
if(ereg("^.+@.+\\..+$", $str))
return 1;
else
return 0;
}
////////////////////////////////////////////////
// Check for flooding
////////////////////////////////////////////////
if ($floodperiod)
{
$ip = getenv("REMOTE_ADDR");
$query = "SELECT timestamp FROM ".$tableprefix."_reviews WHERE ip = '$ip' ORDER BY timestamp DESC LIMIT 1";
$result = $site_db->query($query);
$row = $site_db->fetch_array($result);
if ($row){
$now = date("YmdHis");
$record = $row[timestamp];
if ($now - $floodperiod <= $record)
$error_list = $lang[flooding];
}
}
if ($rev_submit){
if ( strlen($review) > $wordlimit)
$error_list .= $lang[over_limit];
if (!strlen($name))
$error_list .= $lang[empty_name];
if (!strlen($review))
$error_list .= $lang[empty_review];
if (!strlen($title))
$error_list .= $lang[empty_title];
if (!$error_list){
$final_encoded = wordwrap( $review, 40, "\n", 1);
$final_encoded = strip_tags($final_encoded);
/////////////////////////////////
// WORD FILTER
/////////////////////////////////
if ($wordfilter == 1){
$query = "SELECT * FROM ".$tableprefix."_wordfilter";
$result = $site_db->query($query);
while ($row = $site_db->fetch_array($result)){
$bad[] = $row['badword'];
$good[] = $row['goodword'];
}
for ($n=0; $n<sizeof($bad); $n++)
$final_encoded = eregi_replace($bad[$n], $good[$n], $final_encoded);
}
// Get time and IP for flood protection
$time = date("YmdHis");
$ip = getenv("REMOTE_ADDR");
// Check if moderation required
if ($moderate == "1") $valid = 0; else $valid = 1;
// Empty email if invalid
if (!check_email($email)) $email = "";
$date = date("Y-m-d");
$que="INSERT INTO ".$tableprefix."_reviews(item_id,title,name,date,email,review,rating,ip,timestamp,valid)
VALUES ($id,'$title','$name','$date','$email','$final_encoded','$rating','$ip','$time','$valid')";
$site_db->query($que);
if ($moderate == "0"){
$que = "SELECT avg_rating,avg_total,reviews FROM ".$tableprefix."_items WHERE item_id = $id";
$result = $site_db->query($que);
$row = $site_db->fetch_array($result);
$avg_total = $row[avg_total];
$avg_rating = $row[avg_rating];
$reviews = $row[reviews];
$avg_total++;
$reviews++;
$avg_rating+= $rating;
$que="UPDATE ".$tableprefix."_items SET avg_total = $avg_total, avg_rating = $avg_rating, reviews = $reviews WHERE item_id = $id";
$site_db->query($que);
}
if ($moderate== 1) $message = $lang[submit_app];
else $message = $lang[submit];
$complete = 1;
}
}
else
{
$result = $site_db->query ("SELECT * FROM ".$tableprefix."_items WHERE item_id = '$id'");
if ($row = $site_db->fetch_array($result))
{
$item_name = $row[item_name];
$item_id = $row[item_id];
}
else
$error_list .= $lang[item_invalid];
}
if ($error_list){
$message = $lang[post_error];
$message .= "$error_list";
$message .= $lang[go_back];
}
elseif (!$complete){
$show_rev_form = 1;
$back = $lang[go_back];
}
$site_db->close();
$tpl->parse_if('main','show_rev_form');
$tpl->register('main','wordlimit,item_name,item_id,message,back,copyright');
$tpl->pprint('main');
?>
post.html
<center>
<input type="hidden" value="4" name="id">
<p><b><br>
{message}</b></p>
<p align="center">{if_name_show_rev_form}</p>
<p align="center">You are writing a review for <i>{item_name}</i></p>
<form name="review" method="POST" action>
<table style="BORDER-COLLAPSE: collapse" borderColor="#777777" cellPadding="3" border="0">
<tr>
<td align="right" height="22">
Review Title
</td>
<td height="22">
<input class="textfield" maxLength="50" size="30" name="title" tabindex="1"></td>
</tr>
<tr>
<td align="right" height="22">Your Name </td>
<td height="22">
<input class="textfield" maxLength="50" size="18" name="name" tabindex="2"></td>
</tr>
<tr>
<td align="right" height="22">Email (optional) </td>
<td height="22">
<input class="textfield" size="18" name="email" tabindex="3"></td>
</tr>
<tr>
<td colspan="2" height="228">
<p align="center">Your Review<br>
<textarea class="textfield" onkeydown="textCounter(document.review.review,document.review.remLen1,{wordlimit})" onkeyup="textCounter(document.review.review,document.review.remLen1,{wordlimit})" name="review" rows="10" wrap="physical" cols="60" tabindex="4"></textarea><br>
<input class="boxi" readOnly maxLength="3" size="3" value="{wordlimit}" name="remLen1" class="boxi">
characters left </p>
</td>
</tr>
<tr>
<td colspan="2" height="22">Rating
<select class="textfield" size="1" name="rating" tabindex="8">
<option value="0" selected>Choose Rating</option>
<option value="1">1(WORST)</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5(BEST)</option>
</select> </td>
</tr>
<tr>
<tr>
<td><img src="captcha/captcha.php" border="0" title="Security Code"><br>
<br>
<input type="text" name="security" size="4"></td>
</tr>
<td height="61" colspan="2"><center>
<p><input type="hidden" name="id" value="{item_id}">
<input class="button" type="submit" value="post" name="rev_submit" tabindex="8">{end_if_name_show_rev_form}</p>
<p align="center">{back}</p>
</td>
</tr>
</table>
</form>
<p align="center">{copyright}</p>
</center>
Beim Aufruf der Postingseite kommt folgende Fehlermeldung
Fatal error: Cannot redeclare encrypt() (previously declared in /atlantis/eguide/post.php:3) in /atlantis/eguide/inc/global.php on line 70
global.php Zeile 70
function encrypt($string) {//hash then encrypt a string
$crypted = crypt(md5($string), md5($string));
return $crypted;
}
Hilfe! Ich komme nicht weiter.
