[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ошибка в гостевой
liver1981
всем доброго утра!
опять поповские коды дают течь
люди, укажите на ошибку пожалуйста.

я дошёл до 4 уровня видеоуроков
здесь я столкнулся с установкой гостевой для php блога
cкачал архив guest.zip с http://www.wr-script.ru/ (всё как сказано в видеокурсе)
захожу в гостевую из браузера, выдаёт следующий ужас:
user posted image
как исправить эти ошибки?
очень надеюсь на вашу отзывчивость, вы уже не раз помогали мне

вот коды страниц гостевой:

index.php

<? // WR-guest v 1.7M //  07.01.07 г.  //  Miha-ingener@yandex.ru

error_reporting (E_ALL);

$mainpage="http://МОЙ_САЙТ_RU-исправте_в_index.php_на_5-ой_строчке";

include "config.php";

$shapka="<html><head><META content='text/html; charset=windows-1251' http-equiv=Content-Type><link rel=stylesheet type='text/css' href='images/$skin/style.css'></head><body>";

// БЛОК загадок
$rand_zag=array(
"Сидит дед, во сто шуб одет. Кто его раздевает, тот слёзы проливает.",
"Стоит Антошка на одной ножке. Кто его встретит - всяк ему поклонится.",
"Кто поляны белит белым? И на стенах пишет мелом?",
"Шьет пуховые перины, разукрасил все витрины?",
"Покатился по полу колобок, да оставил хвост на семь верст",
"Все обходят это место: здесь земля, как буд-то тесто.",
"Здесь осока, кочки, мхи, нет опоры для ноги.",
"умный Ивашка в деревянной рубашке. По белому полю пойдёт, всяк его след поймет",
"Кто приходит, кто уходит, все ее за ручку водят",
"Летит - кричит, сядет - молчит, кто его убьет - свою кровь прольет");

// БЛОК ответов на загадки
$rand_qwe=array(
"лук",
"гриб",
"мороз",
"мороз",
"клубок",
"болото",
"болото",
"карандаш",
"дверь",
"комар");


// Для цифрозащиты 4-ый антиспам:
$maxkey=4; // Колличество символов в коде (можно изменять)
$absrand="233443";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.

if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
header("Content-type: image/gif");
header("Content-length: $len");
echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}




$rnd_do=array("п<B>лю</B>с","<B>ми</B>нус","ум<B>но</B>жить");

// Событие добавления сообщения if $event=add
if (isset($_GET['event'])) { if ($_GET['event']=="add") {

// возвращаем значения данных из формы и присваиваем их переменным
if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;}

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam=="1") {
$bada="$shapka $back <font color=red>Код на картинке НЕ совпадает</font> с введённым вами!";
if (isset($_POST['num'])) {$num=$_POST['num'];} else {print"$bada"; exit;}
if (isset($_POST['rand'])) {$rand=$_POST['rand'];} else {print"$bada"; exit;}
if ($num!=$rand) {print"$bada"; exit;}}

if ($antispam=="2") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ совпадает</font> с расчётным!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['chek'])) {$chek=$_POST['chek'];} else {print"$bada"; exit;}
$dt=explode("|",$chek);
if ($dt[1]==0) {$number=$dt[0]+$dt[2];}
if ($dt[1]==1) {$number=$dt[0]-$dt[2];}
if ($dt[1]==2) {$number=$dt[0]*$dt[2];}
if ($usernum!=$number) {print"$bada"; exit;}}

if ($antispam=="3") {
$qwe=$_POST['qwe'];
$answer=$_POST['answer'];
if (strtolower($rand_qwe[$qwe])!=strtolower($answer)) {print"$shapka $back <font color=red>ОТВЕТ НЕ верен!</font> Попробуйте снова."; exit;}}

if ($antispam=="4") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if ($name == "" || strlen($name) > $maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!</B></center>"; exit;}
if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}


$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();

// производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ|
$text="$msg|$name|$email|$date|$time|$today|";

$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'
<p>',$text);
$text=str_replace("\n",'
<br> ',$text);
// Вырезаем 3 и более ентеров
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
// Вырезаем 3 и более пробелов подряд
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);

if ($antiflud=="1") { // функция АНТИФЛУД здесь!
$linesn = file("guest.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("guest.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|"; $lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[3]|";
$today=mktime();
if (($lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!"; exit;}
if ($txtflud==$txtback) {print"$back Данное сообщение уже размещено. Флудить в гостевой запрещено!"; exit;} }
}


$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);


if ($sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg = $gname.chr(13).chr(10).'
Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail", "$gname (сообщение)", $allmsg, $headers); // Отправляем письмо майлеру на съедение ;-)
}


print "$shapka <script language='Javascript'>function reload() {location = 'index.php'}; setTimeout('reload()', 1500);</script>
<table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
Спасибо, <B>
$name</B>, Ваше сообщение успешно добавлено. <BR><BR>Через несколько секунд Вы будете автоматически перемещены на первую страницу гостевой.<BR><BR>
<B><a href='index.php'>Нажмите здесь, если не хотите больше ждать</a></B></td></tr></table></td></tr></table></center></body></html>"
;
exit;
}
}




// Типо главной страницы
if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page'];}

print "<html><head>
<title>
$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<META content='
$gname, $maintext' name=Keywords>
<META content='Гостевая книга. Здесь Вы можете оставить отзыв о нашем сайте.' name=Description>
<link rel=stylesheet type='text/css' href='images/
$skin/style.css'>
<script language=JavaScript>
function x () {return;}
function FocusText() {
document.REPLIER.msg.focus();
document.REPLIER.msg.select();
return true; }
function DoSmilie(addSmilie) {
var revisedmsgage;
var currentmsgage = document.REPLIER.msg.value;
revisedmsgage = currentmsgage+addSmilie;
document.REPLIER.msg.value=revisedmsgage;
document.REPLIER.msg.focus();
return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>

<center><a href=index.php><h3>
$gname</h3></a>

<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>
$date</b></TD>
<TD align=center><a href='index.php?event=new&page=
$page'>Добавить сообщение</a></TD>
<TD align=center><a href='
$mainpage'>Вернуться на главную</a></div></B>
</TD></TR>"
;

if (strlen($maintext)>5) {print"<TR><TD colspan=3><hr size=-1 width=100%><center>$maintext</center></TD></TR>";}

print "</TABLE></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



if (isset($_GET['event'])) { if ($_GET['event']=="new") {
print "
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><div align=center>Добавить сообщение</font><BR>
<center><table><tr><td valign=top>
<B>Имя</B> и E-mail<BR><BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' :-))');\">$s1</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' :-)');\">$s2</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' :-P');\">$s3</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' 8-)');\">$s4</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' :-(');\">$s5</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' :-O');\">$s6</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' ;-)');\">$s7</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' :roll:');\">$s8</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' :rf:');\">$s9</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' 8-(');\">$s10</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' `-(');\">$s11</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie('[RB] [/RB] ');\"><font color=red><B>RB</b></font></a>
</tr></td></table>
</td><td>
<form action=index.php?event=add method=post name=REPLIER>
<input type=text value='' name=name size=26> 
<input type=text value='' name=email size=26><br>
<textarea cols=55 rows=5 size=500 name=msg></textarea>"
;

// Первый вариант антиспама
if ($antispam=="1") {print"<tr><td align='right'>Защитный код:</td><td>";
$rand_key=array("7531","8642","9753","10864","1975","2186","3197","4298");
$imag_key=array("8642","9753","10864","1975","2186","3197","4298","7531");
$rand = mt_rand(0,7); $rnd=$rand_key[$rand]; $ima=$imag_key[$rand];
print"<img src='images/$ima.png' width=300 height=20 border=0>";
print"</td></tr><input name=rand type=hidden value='$rnd'>
<tr><td align='right'><font color=red>Напишите код цифрами:</font></td><td><input name='num' type='text' maxlength=5 size=5></td></tr>"
;}

// Второй вариант антиспама
if ($antispam=="2") {$rnd1=mt_rand(1,9); $rnd2=mt_rand(0,2); $rnd3=mt_rand(1,9);
print"<TR><TD>Защитный код АНТИСПАМ:</TD><TD><B>$rnd1</B> $rnd_do[$rnd2] <B>$rnd3</B> = <input name='usernum' type='text' maxlength=3 size=5> (посчитайте и введите значение)
<input name=chek type=hidden value='
$rnd1|$rnd2|$rnd3|'>";
}
// Третий вариант антиспама
if ($antispam=="3") {
$rand = mt_rand(0,9); $rnd=$rand_zag[$rand];
print"<TR><TD>Отгадай загадку</TD><TD><B>$rnd</B></TD></TR><TR><TD>введите ответ</TD><input name=qwe type=hidden value='$rand'>
<TD><input name='answer' type='text' maxlength=30 size=15> (в ответе не используйте пробелы)"
;}

// Четвёртый вариант антиспама
if ($antispam=="4") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD>Защитный код:</TD><TD>";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print" <input name='usernum' type='text' maxlength=$maxkey size=6> (введите число, указанное на картинке)
<input name=xkey type=hidden value='
$xkey'>";
}


print"<tr><td align='center' colspan=2><input type='submit' value=' Добавить '></td></tr>
</table>
</TD>

<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;
} }


// считываем данные в память
$lines = file("guest.dat");
$maxi = count($lines)-1;

// выводим СПИСОК доступных номеров СТРАНИЦ ВВЕРХУ
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
if ($page==0) {$page="1";} else {$page=abs($page);}

print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a href=\"index.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}


// Выводим qq сообщений на текущей странице

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if ($msginout=="1")
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }

do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++; $num=$maxi-$fm+2;} else {$fm--; $num=$fm+2;}

// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("|","|",$dt[0]);
if ($liteurl=="1") {$dt[0]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "<a href='\\1' target='_blank'>\\1</a>", $dt[0]);}

print"
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><B><a href='mailto:
$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B>
<UL><em>
$dt[0]</em>
<div align=right>
$num</div></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
"
;


if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
}
while($whm < $whe);




// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a href=\"index.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}



print "<BR><BR><center><font size=-2>Powered by <a href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7M</font></body></html>";
?>


guest.dat

Всем привет!<br><br>Подробное описание установки и настройки этого скрита тут: http://www.wr-script.ru/guest/README.html class="sh_keyword"><br><br>Оставляйте сообщения в гостевой, всем пока. ;-) :-P|Михаил||03.09.2006|13:13:53|1157260433|
6576|677||18.12.2006|22:03:06|1166454186|


config.php

<? // WR-guest v 1.7M //  07.01.07 г.  //  Miha-ingener@yandex.ru
$gname="Гостевая книга на сайте WR-Скрипт - бесплатных php скриптов"; // Имя гостевой книги отображается в теге TITLE и заголовке
$maintext="Добро пожаловать в гостевую книгу. Буду рад услышать Ваше мнение о моём сайте."; // Текст, выводящийся перед формой ввода сообщения
$adminemail="email@email.ru"; // Емайл админа
$sendmail="0"; // отсылать сообщения на Емайл админу
$password="admin"; // Пароль админа
$antispam="4"; // АНТИСПАМ вкл1/вкл2/вкл3/вкл4/выкл - 1/2/3/4/0
$antiflud="1"; // Функцию АНТИФЛУД вкл/выкл: 1/0
$maxname="30"; // Максимальное кол-во символов в имени
$maxmsg="1000"; // Максимальное кол-во символов в сообщении
$msginout="0"; // порядок просмотра сообщений: возрастание/убывание - 1/0
$qq="15"; // кол-во отображаемых сообщений на каждой странице гостевой: 1-100
$skin="original"; // Скин
$liteurl="1";// Подсвечивать УРЛ? 1/0
$back="<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>"; // Удобная строка
$s2="<img src='images/biggrin.gif' border=0>"; // Смайлики ;-)
$s1="<img src='images/smile.gif' border=0>";
$s3="<img src='images/razz.gif' border=0>";
$s4="<img src='images/cool.gif' border=0>";
$s5="<img src='images/mad.gif' border=0>";
$s6="<img src='images/redface.gif' border=0>";
$s7="<img src='images/wink.gif' border=0>";
$s8="<img src='images/rolleyes.gif' border=0>";
$s9="<img src='images/confused.gif' border=0>";
$s10="<img src='images/eek.gif' border=0>";
$s11="<img src='images/cry.gif' border=0>";
$s12="<font color=#ff0000><B>";
$date=date("d.m.Y"); // число.месяц.год
$time=date("H:i:s"); // часы:минуты:секунды
?>


admin.php

<? // WR-guest v 1.7M //  07.01.07 г.  //  Miha-ingener@yandex.ru

#error_reporting (E_ALL);


include "config.php";

// Авторизация
$adminname="1"; // имя администратора
$adminpass=$password;

// Выбран ВЫХОД из форума - очищаем куки
if(isset($_GET['event'])) { if ($_GET['event']=="clearcooke") { setcookie("gbcookies", "", time()); Header("Location: index.php"); exit; } }


if (!isset($_COOKIE['gbcookies'])) {

if (!isset($_POST['name']) & !isset($_POST['pass'])) {
echo "<html><head><META HTTP-EQUIV='Pragma' CONTENT='no-cache'><META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'><META content='text/html; charset=windows-1251' http-equiv=Content-Type><link rel=stylesheet type='text/css' href='images/$skin/style.css'></head><body>
<BR><BR><BR><center>
<form action='admin.php' method=POST name=pswrd>
Введите пароль: <BR>
<input type=password size=17 name=pass><BR>
<input type=hidden size=17 name=name value=
\"$adminname\"><BR>

<input type=submit value='Войти'>
<script language=JavaScript>document.pswrd.pass.focus();</SCRIPT><BR><BR><BR>"
;
print "<BR><BR><center><font size=-2>Powered by <a href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7</font></body></html>";
exit;}

$name=str_replace("|","I",$_POST['name']); $pass=str_replace("|","I",$_POST['pass']);
$text="$name|$pass|";
$text=trim($text); // Вырезает ПРОБЕЛьные символы
if (strlen($text)<4) {print"$back Вы не ввели имя или пароль!"; exit;}
$text=preg_replace( "/<script/i",' ',$text);
$text=str_replace( "<!--" ,'<!--',$text);
$text=str_replace( "-->" ,'-->' ,$text);
$text=str_replace( " " ,' ' ,$text);
$text=str_replace( "&" ,'&' ,$text);
$text=str_replace( ">" ,'>' ,$text);
$text=str_replace( "<" ,'<' ,$text);
$text=str_replace( "\"" ,'"',$text);
$text=preg_replace( "/\n\n/",'<p>' ,$text);
$text=preg_replace( "/\n/" ,'<br>' ,$text);
$text=preg_replace( "/\\\$/",'$',$text);
$text=preg_replace( "/\r/" ,'' ,$text);
$text=preg_replace( "/\\\/",'\',$text);
$text=str_replace("\r\n","<br>", $text);
$text=str_replace("\n\n",'
<p>',$text);
$text=str_replace("\n",'
<br>',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace(' ',' ',$text);
$exd=explode("|",$text); $name=$exd[0]; $pass=$exd[1];

// Сверяем введённое имя/пароль с заданным в конфиг файле
if ($name==$adminname & $pass==$adminpass) {
$tektime=time();
$gbcookies="$adminname|$adminpass|$tektime|";
setcookie("gbcookies", $gbcookies, time()+300);
Header("Location: admin.php"); exit;}
print "$back Ваш данные <B>НЕ верены</B>!</center>"; exit;
}




// Авторизация пройдена успешно
else {$gbc=$_COOKIE['
gbcookies']; $gbc=explode("|", $gbc); $gbname=$gbc[0];$gbpass=$gbc[1];$gbtime=$gbc[2];}




// Блок УДАЛЕНИЯ выбранного сообщения
if (isset($_GET['
id'])) { $page=$_GET['page'];
$file=file("guest.dat"); $itogo=count($file)-1;
if ($msginout==1) {$id=$itogo-$_GET['
id'];} else {$id=$itogo-$_GET['id']+2;}
if ($itogo<1) {print"$back. Нужно оставить хотябы одно сообщение!"; exit;}

$fp=fopen("guest.dat","w");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$id) {unset($file[$i]);} }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);
Header("Location: admin.php?pswrd=$password&page=$page"); exit; }



if (isset($_GET['
event'])) {

if ($_GET['
event']=="add") { // if ($event =="add")

$name=$_POST['
name']; $msg=$_POST['msg']; $email=$_POST['email'];
if (isset($_POST['
page'])) {$page=$_POST['page'];} else {$page=1;}

if ($name=="" || strlen($name) > $maxname) {print "$back вы не ввели имя, или вввели слишком длинное имя!</B></center>"; exit;}
if ($msg=="" || strlen($msg) > $maxmsg) {print "$back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}

// обрезаем лишние символы в емайле и сообщении
$email=substr($email,0,30);
$msg=stripslashes($msg);
$msg=htmlspecialchars($msg);
$msg=str_replace("|","I",$msg);
$msg=str_replace("\r\n","<br>",$msg);


// если выбрано - редактирование
if (isset($_GET['
rd'])) { $rd=$_GET['rd'];
$fdate=$_POST['
fdate'];$ftime=$_POST['ftime']; //$rd - номер РЕДАКТИРУЕМОЙ ячейки
$text="$msg|$name|$email|$fdate|$ftime|";
$file=file("guest.dat");
$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
for ($i=0;$i< sizeof($file);$i++) {if ($rd!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$text\r\n");}}
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);
}


else {
$text="$msg|$name|$email|$date|$time|";
$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);
}

Header("Location: admin.php?pswrd=$password&page=$page"); exit; }





if ($_GET['
event']=="skin") {

if ($sendmail=="1") {$s1="checked"; $s2="";} else {$s2="checked"; $s1="";}
if ($antiflud=="1") {$af1="checked"; $af2="";} else {$af2="checked"; $af1="";}
if ($liteurl=="1") {$lu1="checked"; $lu2="";} else {$lu2="checked"; $lu1="";}

print "<html><head><META HTTP-EQUIV=\"Pragma\" CONTENT=\"no-cache\"><META HTTP-EQUIV=\"Cache-Control\" CONTENT=\"no-cache\"><META content='
text/html; charset=windows-1251' http-equiv=Content-Type><link rel=stylesheet type='text/css' href='images/$skin/style.css'></head><body><BR><BR><BR><center>

<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='
1%'><IMG src='images/$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='
images/$skin/4.gif'></TD>
<TD><table width=100%><TR>
<TD><B>Сегодня <b>$date</b></TD>
<TD align=center><B><a href=admin.php?pswrd=$password&event=skin>Конфигурирование</a></TD>
<TD align=center><B><a href='
admin.php?pswrd=$password'>Главная админки</a></div></B>
<TD align=center><B><a href='
admin.php?event=clearcooke'>Вернуться на главную</a></div></B>
</TD></TR>
<TR><TD colspan=4><hr size=-1 width=100%></TD></TR></TABLE>

<table width=100%><TR><TD>
<center><B><font size=+1>Конфигурирование</font></b>

<form action=admin.php?pswrd=$password&event=config method=POST name=REPLIER>
<table>
<tr><td>Имя скрипта</td><td><input type=text value='
$gname' name=gname size=50></tr></td>
<tr><td>Текст приветствия</td><td><textarea cols=50 rows=4 size=500 name=maintext>$maintext</textarea></tr></td>
<tr><td>Емайл админа / отсылать сообщения</td><td><input type=text value='
$adminemail' name=adminemail size=30>     <input type=radio name=sendmail value=\"1\"$s1/> да   <input type=radio name=sendmail value=\"0\"$s2/> нет</tr></td></tr></td>

<tr><td>Задействовать функцию <B>АНТИСПАМ</B>?</td><td><select class=input name=antispam>
<option value=\"$antispam\">Не менять</option>
<option value='
0'>Нет, отключить</option>
<option value='
1'>Да - Цифротекст</option>
<option value='
2'>Да - Матоперации</option>
<option value='
3'>Да - Загадки</option>
<option value='
4'>Да - Цифрозащита</option>
</select></tr></td>

<tr><td class=row1>Задействовать функцию <B>АНТИФЛУД</B>?</td><td class=row1><input type=radio name=antiflud value=\"1\"$af1/> да   <input type=radio name=antiflud value=\"0\"$af2/> нет</tr></td>
<tr><td class=row1>Делать ссылки в тексте <B>активными</B>?</td><td class=row1><input type=radio name=liteurl value=\"1\"$lu1/> да   <input type=radio name=liteurl value=\"0\"$lu2/> нет</tr></td>


<tr><td>Пароль админа</td><td><input type=text value='
$password' name=password size=15></tr></td>
<tr><td>Макс. длина имени</td><td><input type=text value='
$maxname' name=maxname size=10></tr></td>
<tr><td>Макс. длина сообщения</td><td><input type=text value='
$maxmsg' name=maxmsg size=10></tr></td>
<tr><td>Сообщений на страницу</td><td><input type=text value='
$qq' name=qq size=10></tr></td>
<tr><td>Cледование сообщений</td><td><select class=input name=msginout><option value='
$msginout'>Текущее</option><option value='1'>по убыванию</option><option value='0'>по возрастанию</option></select></tr></td>

<tr><td>Скин</td><td><select class=input name=skin>

<option value=\"$skin\">Текущий</option>
<option value='
original' style='color: #000000; background: #FF0000'>Светло-красный</option>
<option value='black' style='color: #000000; background: #FFFFFF'>Чёрно-белый</option>
<
option value='blue' style='color: #FFFFFF; background: #0086BF'>Тёмно-голубой</option>
<
option value='korich' style='color: #FFFFFF; background: #968549'>Коричневый</option>

</
select></nobr></tr></td>

<
tr><td colspan=2><center><table><tr><td><input type=submit value='Сохранить конфигурацию'></form></td></tr></table>
</
td></tr></table>

</
TD></TR></TABLE></TD>
<
TD background='images/$skin/6.gif'> </TD>
</
TR><TR><TD><IMG src='images/$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</
TBODY></TABLE>
";
exit;
}



if (
$_GET['event']=="config") {

$configdata="<? // WR-guest v 1.7M // 07.01.07 г. // Miha-ingener@yandex.ru\r\n".
"$"."gname=\"".$_POST['gname']."\"; // Имя гостевой книги отображается в теге TITLE и заголовке\r\n".
"$"."maintext=\"".$_POST['maintext']."\"; // Текст, выводящийся перед формой ввода сообщения\r\n".
"$"."adminemail=\"".$_POST['adminemail']."\"; // Емайл админа\r\n".
"$"."sendmail=\"".$_POST['sendmail']."\"; // отсылать сообщения на Емайл админу\r\n".
"$"."password=\"".$_POST['password']."\"; // Пароль админа\r\n".
"$"."antispam=\"".$_POST['antispam']."\"; // АНТИСПАМ вкл1/вкл2/вкл3/вкл4/выкл - 1/2/3/4/0\r\n".
"$"."antiflud=\"".$_POST['antiflud']."\"; // Функцию АНТИФЛУД вкл/выкл: 1/0\r\n".
"$"."maxname=\"".$_POST['maxname']."\"; // Максимальное кол-во символов в имени\r\n".
"$"."maxmsg=\"".$_POST['maxmsg']."\"; // Максимальное кол-во символов в сообщении\r\n".
"$"."msginout=\"".$_POST['msginout']."\"; // порядок просмотра сообщений: возрастание/убывание - 1/0\r\n".
"$"."qq=\"".$_POST['qq']."\"; // кол-во отображаемых сообщений на каждой странице гостевой: 1-100\r\n".
"$"."skin=\"".$_POST['skin']."\"; // Скин\r\n".
"$"."liteurl=\"".$_POST['liteurl']."\";// Подсвечивать УРЛ? 1/0\r\n".
"$"."back=\"<center>Вернитесь <a href='javascript:history.back(1)'><B>назад</B></a>\"; // Удобная строка\r\n".
"$"."s2=\"<img src='images/biggrin.gif' border=0>\"; // Смайлики ;-)\r\n".
"$"."s1=\"<img src='images/smile.gif' border=0>\";\r\n".
"$"."s3=\"<img src='images/razz.gif' border=0>\";\r\n".
"$"."s4=\"<img src='images/cool.gif' border=0>\";\r\n".
"$"."s5=\"<img src='images/mad.gif' border=0>\";\r\n".
"$"."s6=\"<img src='images/redface.gif' border=0>\";\r\n".
"$"."s7=\"<img src='images/wink.gif' border=0>\";\r\n".
"$"."s8=\"<img src='images/rolleyes.gif' border=0>\";\r\n".
"$"."s9=\"<img src='images/confused.gif' border=0>\";\r\n".
"$"."s10=\"<img src='images/eek.gif' border=0>\";\r\n".
"$"."s11=\"<img src='images/cry.gif' border=0>\";\r\n".
"$"."s12=\"<font color=#ff0000><B>\";\r\n".
"$"."date=date(\"d.m.Y\"); // число.месяц.год\r\n".
"$"."time=date(\"H:i:s\"); // часы:минуты:секунды \r\n?>";

$file=file("config.php");
$fp=fopen("config.php","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА
fputs($fp,$configdata);
fflush ($fp);//очищение файлового буфера
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("config.php", 0644);
Header("Location: admin.php?pswrd=$password&event=skin"); exit; }

}
// if isset['event']


else {

if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}

print "<html><head>
<title>
$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<link rel=stylesheet type='text/css' href='images/
$skin/style.css'>
<script language=JavaScript>
function x () {return;}
function FocusText() {
document.REPLIER.msg.focus();
document.REPLIER.msg.select();
return true; }
function DoSmilie(addSmilie) {
var revisedmsgage;
var currentmsgage = document.REPLIER.msg.value;
revisedmsgage = currentmsgage+addSmilie;
document.REPLIER.msg.value=revisedmsgage;
document.REPLIER.msg.focus();
return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>
<center><a href=index.php><h3>
$gname</h3></a>

<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>
$date</b></TD>
<TD align=center><B><a href=admin.php?pswrd=
$password&event=skin>Конфигурирование</a></TD>
<TD align=center><B><a href='admin.php?pswrd=
$password'>Главная админки</a></div></B>
<TD align=center><B><a href='admin.php?event=clearcooke'>Вернуться на главную</a></div></B>
</TD></TR></TABLE>
</TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



if ((!isset($_GET['event'])) or (isset($_GET['event'])) & ($_GET['event']!="add")) {
$lines=file("guest.dat");
$itogo=count($lines);
$maxi=$itogo-1;
print "
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><center><b><font size=+1>Всего сообщений в базе: <font color=#FF0000>
$itogo</font>, добавь ещё!</font></b></center>
<center><table ><tr><td valign=top>
<B>Имя</B> и E-mail<BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' :-))');\">$s1</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' :-)');\">$s2</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' :-P');\">$s3</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' 8-)');\">$s4</a>
<a href='javascript:%20x()' onclick=
\"DoSmilie(' :-(');\">$s5</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' :-O');\">$s6</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' ;-)');\">$s7</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(':roll:');\">$s8</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(':rf:');\">$s9</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' 8-(');\">$s10</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie(' `-(');\">$s11</a>
<A href='javascript:%20x()' onclick=
\"DoSmilie('[RB] [/RB]');\"><font color=red><B>RB</b></font></a>
</tr></td></table>
</td><td>
"
;


// ищем сообщение для редактирования и выводим его в форму
if (isset($_GET['rd'])) {
if ($msginout==1) {$rd=$maxi-$_GET['rd'];} else {$rd=$maxi-$_GET['rd']+2;}

$dt=explode("|",$lines[$rd]);
$dt[0]=str_replace("<br>", "\r\n", $dt[0]);

print "
<form action=admin.php?pswrd=
$password&event=add&rd=$rd method=POST name=REPLIER>
<input type=text value='
$dt[1]' name=name size=30> 
<input type=text value='
$dt[2]' name=email size=26><br>
<textarea cols=59 rows=10 size=500 name=msg>
$dt[0]</textarea>
<input type=hidden name=fdate value='
$dt[3]'>
<input type=hidden name=ftime value='
$dt[4]'>
<input type=hidden name=page value='
$page'>
<script language=JavaScript>document.REPLIER.msg.focus();</SCRIPT>
<center><input type=submit value='Сохранить под этим же номером'></form>
"
;
}
else
{
print "<form action=admin.php?pswrd=$password&event=add method=post name=REPLIER>
<input type=text value='' name=name size=30> 
<input type=text value='' name=email size=26><br>
<textarea cols=59 rows=10 size=500 name=msg></textarea>
<script language=JavaScript>document.REPLIER.msg.focus();</SCRIPT>
<center><input type=submit value='Добавить'></form>"
;
}
print"</tr></td></table>

</TD><TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



// Выводим qq сообщений на текущей странице

if ($page=="0") {$page="1";} else {$page=abs($page);}

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if ($msginout=="1")
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }


do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++;} else {$fm--;}
$num=$itogo-$fm; $pnum=$num-1;
// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("|","|",$dt[0]);
$dt[0]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "<a href='\\1' target='_blank'>\\1</a>", $dt[0]);


print"
<TABLE width=780 align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><B><a href='mailto:
$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B><BR>
<em>
$dt[0]</em><BR>
<div align=right>

<table><TR><TD bgcolor=#22FF44>
<B><a href='admin.php?pswrd=
$password&rd=$num&page=$page'>.P.</a></TD><TD>  </TD><TD bgcolor=#FF2244><a href='admin.php?pswrd=$password&id=$num&page=$page'>.X.</a></B></TD><TD>    $pnum
</TD></TR></TABLE>
</div>
</TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
"
;



if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
}
while($whm < $whe);
print "</td></tr></table>";


// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a href='admin.php?pswrd=$password&page=$ip'>$ip</a>  ";}
$i=$i+$qq;} print "(дробление = <B>$qq</B>)";
}

}




print "<BR><BR><center><font size=-2>Powered by <a href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7</font></body></html>";
?>




Спустя 32 минуты, 6 секунд (31.08.2010 - 07:39) Basili4 написал(а):
liver1981
1. Учни английский . DEPRECATED переводится как устарело т.е. не желательно использовать функции на вызов которых появляется этот "матюг"

2. Из сабжа можно сделать вывод что ты этого не знал и видео урок тебя этому не научил и не научит. Вывод не пользуйся видео уроками. Единственный способ научится что делать это делать самому. А видео урок это просто усложненная копи паста. И думать он не научит.

Спустя 1 минута, 42 секунды (31.08.2010 - 07:41) amazing написал(а):
замени на preg _replace

Спустя 1 минута, 44 секунды (31.08.2010 - 07:42) liver1981 написал(а):
Цитата (amazing @ 31.08.2010 - 04:41)
замени на preg _replace

amazing, простите я не совсем понял, а что именно заменить?

Спустя 4 минуты, 15 секунд (31.08.2010 - 07:47) twin написал(а):
Цитата
а что именно заменить?

preg_replace('#.*#sui', '', file_get_contents('http://www.wr-script.ru/ '));
smile.gif

Там много что заменить нужно. А ругается на eregi_replace(), вот его и менять.

Спустя 13 минут, 36 секунд (31.08.2010 - 08:00) liver1981 написал(а):
amazing и twin
спасибо что откликнулись

я заменил, одна ошибка исчезла
теперь код выглядит вот так:



<? include ("blocks/bd.php");
error_reporting (E_ALL);

$mainpage="gb.php";

include "config.php";

$shapka = "<html><head>
<title>
$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<META content='
$gname, $maintext' name=Keywords>
<META content='Гостевая книга. Здесь Вы можете оставить отзыв о нашем сайте.' name=Description>
<link rel=stylesheet type='text/css' href='images/
$skin/style.css'>
<link href='style.css' rel='stylesheet' type='text/css'>
<script language=JavaScript>
function x () {return;}
function FocusText() {
document.REPLIER.msg.focus();
document.REPLIER.msg.select();
return true; }
function DoSmilie(addSmilie) {
var revisedmsgage;
var currentmsgage = document.REPLIER.msg.value;
revisedmsgage = currentmsgage+addSmilie;
document.REPLIER.msg.value=revisedmsgage;
document.REPLIER.msg.focus();
return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>"
;

echo "$shapka";


?>



<table
width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<?
include ("blocks/header.php"); ?>
<tr>
<td
valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<?
include ("blocks/lefttd.php"); ?>
<td
valign="top">
<?
$n=0; include ("blocks/nav.php"); ?>

<?
// WR-guest v 1.7M // 07.01.07 г. // Miha-ingener@yandex.ru



// БЛОК загадок

$rand_zag=array(
"Сидит дед, во сто шуб одет. Кто его раздевает, тот слёзы проливает.",
"Стоит Антошка на одной ножке. Кто его встретит - всяк ему поклонится.",
"Кто поляны белит белым? И на стенах пишет мелом?",
"Шьет пуховые перины, разукрасил все витрины?",
"Покатился по полу колобок, да оставил хвост на семь верст",
"Все обходят это место: здесь земля, как буд-то тесто.",
"Здесь осока, кочки, мхи, нет опоры для ноги.",
"умный Ивашка в деревянной рубашке. По белому полю пойдёт, всяк его след поймет",
"Кто приходит, кто уходит, все ее за ручку водят",
"Летит - кричит, сядет - молчит, кто его убьет - свою кровь прольет");

// БЛОК ответов на загадки
$rand_qwe=array(
"лук",
"гриб",
"мороз",
"мороз",
"клубок",
"болото",
"болото",
"карандаш",
"дверь",
"комар");


// Для цифрозащиты 4-ый антиспам:
$maxkey=4; // Колличество символов в коде (можно изменять)
$absrand="233443";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.

if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
header("Content-type: image/gif");
header("Content-length: $len");
echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}




$rnd_do=array("п<B>лю</B>с","<B>ми</B>нус","ум<B>но</B>жить");

// Событие добавления сообщения if $event=add
if (isset($_GET['event'])) { if ($_GET['event']=="add") {

// возвращаем значения данных из формы и присваиваем их переменным
if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;}

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam=="1") {
$bada="$shapka $back <font color=red>Код на картинке НЕ совпадает</font> с введённым вами!";
if (isset($_POST['num'])) {$num=$_POST['num'];} else {print"$bada"; exit;}
if (isset($_POST['rand'])) {$rand=$_POST['rand'];} else {print"$bada"; exit;}
if ($num!=$rand) {print"$bada"; exit;}}

if ($antispam=="2") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ совпадает</font> с расчётным!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['chek'])) {$chek=$_POST['chek'];} else {print"$bada"; exit;}
$dt=explode("|",$chek);
if ($dt[1]==0) {$number=$dt[0]+$dt[2];}
if ($dt[1]==1) {$number=$dt[0]-$dt[2];}
if ($dt[1]==2) {$number=$dt[0]*$dt[2];}
if ($usernum!=$number) {print"$bada"; exit;}}


if ($antispam=="3") {
$qwe=$_POST['qwe'];
$answer=$_POST['answer'];
if (strtolower($rand_qwe[$qwe])!=strtolower($answer)) {print"$shapka $back <font color=red>ОТВЕТ НЕ верен!</font> Попробуйте снова."; exit;}}

if ($antispam=="4") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if ($name == "" || strlen($name) > $maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!</B></center>"; exit;}
if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}


$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();

// производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ|
$text="$msg|$name|$email|$date|$time|$today|";

$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'
<p>',$text);
$text=str_replace("\n",'
<br> ',$text);
// Вырезаем 3 и более ентеров
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
// Вырезаем 3 и более пробелов подряд
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);

if ($antiflud=="1") { // функция АНТИФЛУД здесь!
$linesn = file("guest.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("guest.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|"; $lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[3]|";
$today=mktime();
if (($lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!"; exit;}
if ($txtflud==$txtback) {print"$back Данное сообщение уже размещено. Флудить в гостевой запрещено!"; exit;} }
}


$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);


if ($sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg = $gname.chr(13).chr(10).'
Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail", "$gname (сообщение)", $allmsg, $headers); // Отправляем письмо майлеру на съедение ;-)
}


print "$shapka <script language='Javascript'>function reload() {location = 'gb.php'}; setTimeout('reload()', 1500);</script>
<table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
Спасибо, <B>
$name</B>, Ваше сообщение успешно добавлено. <BR><BR>Через несколько секунд Вы будете автоматически перемещены на первую страницу гостевой.<BR><BR>
<B><a class='gb' href='gb.php'>Нажмите здесь, если не хотите больше ждать</a></B></td></tr></table></td></tr></table></center></body></html>"
;
exit;
}
}




// Типо главной страницы
if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page'];}

print "<center><br>

<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>
$date</b></TD>
<TD align=center><a class='gb' href='gb.php?event=new&page=
$page'>Добавить сообщение</a></TD>
<TD align=center><a class='gb' href='
$mainpage'>Вернуться на главную</a></div></B>
</TD></TR>"
;

if (strlen($maintext)>5) {print"<TR><TD colspan=3><hr size=-1 width=100%><center>$maintext</center></TD></TR>";}

print "</TABLE></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



if (isset($_GET['event'])) { if ($_GET['event']=="new") {
print "
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><div align=center>Добавить сообщение</font><BR>
<center><table><tr><td valign=top>
<B>Имя</B> и E-mail<BR><BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-))');\">$s1</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-)');\">$s2</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-P');\">$s3</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-)');\">$s4</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-(');\">$s5</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-O');\">$s6</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' ;-)');\">$s7</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :roll:');\">$s8</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :rf:');\">$s9</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-(');\">$s10</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' `-(');\">$s11</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie('[RB] [/RB] ');\"><font color=red><B>RB</b></font></a>
</tr></td></table>
</td><td>
<form action=gb.php?event=add method=post name=REPLIER>
<input type=text value='' name=name size=26> <br> <br>
<input type=text value='' name=email size=26><br> <br>
<textarea cols=35 rows=5 size=500 name=msg></textarea>"
;

// Первый вариант антиспама
if ($antispam=="1") {print"<tr><td align='right'>Защитный код:</td><td>";
$rand_key=array("7531","8642","9753","10864","1975","2186","3197","4298");
$imag_key=array("8642","9753","10864","1975","2186","3197","4298","7531");
$rand = mt_rand(0,7); $rnd=$rand_key[$rand]; $ima=$imag_key[$rand];
print"<img src='images/$ima.png' width=300 height=20 border=0>";
print"</td></tr><input name=rand type=hidden value='$rnd'>
<tr><td align='right'><font color=red>Напишите код цифрами:</font></td><td><input name='num' type='text' maxlength=5 size=5></td></tr>"
;}

// Второй вариант антиспама
if ($antispam=="2") {$rnd1=mt_rand(1,9); $rnd2=mt_rand(0,2); $rnd3=mt_rand(1,9);
print"<TR><TD>Защитный код АНТИСПАМ:</TD><TD><B>$rnd1</B> $rnd_do[$rnd2] <B>$rnd3</B> = <input name='usernum' type='text' maxlength=3 size=5> (посчитайте и введите значение)
<input name=chek type=hidden value='
$rnd1|$rnd2|$rnd3|'>";
}
// Третий вариант антиспама
if ($antispam=="3") {
$rand = mt_rand(0,9); $rnd=$rand_zag[$rand];
print"<TR><TD>Отгадай загадку</TD><TD><B>$rnd</B></TD></TR><TR><TD>введите ответ</TD><input name=qwe type=hidden value='$rand'>
<TD><input name='answer' type='text' maxlength=30 size=15> (в ответе не используйте пробелы)"
;}

// Четвёртый вариант антиспама
if ($antispam=="4") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD>Защитный код:</TD><TD>";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print" <input name='usernum' type='text' maxlength=$maxkey size=6> (введите число, указанное на картинке)
<input name=xkey type=hidden value='
$xkey'>";
}


print"<tr><td align='center' colspan=2><input type='submit' value=' Добавить '></td></tr>
</table>
</TD>

<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;
} }


// считываем данные в память
$lines = file("guest.dat");
$maxi = count($lines)-1;

// выводим СПИСОК доступных номеров СТРАНИЦ ВВЕРХУ
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
if ($page==0) {$page="1";} else {$page=abs($page);}

print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}


// Выводим qq сообщений на текущей странице

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if ($msginout=="1")
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }

do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++; $num=$maxi-$fm+2;} else {$fm--; $num=$fm+2;}

// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("|","|",$dt[0]);
if ($liteurl=="1") {$dt[0]=preg_seplace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "<a class='gb' href='\\1' target='_blank'>\\1</a>", $dt[0]);}

print"
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><B><a class='gb' href='mailto:
$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B>
<UL><em>
$dt[0]</em>
<div align=right>
$num</div></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
"
;


if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
}
while($whm < $whe);




// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}



print "<BR><BR><center><font size=-2>Powered by <a class='gb' href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7M</font></body></html>";
?>







</td>
</tr>
</table></td>
</tr>
<?
include ("blocks/footer.php"); ?>
</table>
</body>
</html>



но выдаётся теперь вот такая ошибка:

user posted image

как это исправить?

Спустя 5 минут, 48 секунд (31.08.2010 - 08:06) amazing написал(а):
twin наверное имел ввиду preg_replace smile.gif


Спустя 12 минут, 48 секунд (31.08.2010 - 08:33) liver1981 написал(а):
amazing, twin спасибо

я вот подправил как вы и сказали

<? include ("blocks/bd.php");
error_reporting (E_ALL);

$mainpage="gb.php";

include "config.php";

$shapka = "<html><head>
<title>
$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<META content='
$gname, $maintext' name=Keywords>
<META content='Гостевая книга. Здесь Вы можете оставить отзыв о нашем сайте.' name=Description>
<link rel=stylesheet type='text/css' href='images/
$skin/style.css'>
<link href='style.css' rel='stylesheet' type='text/css'>
<script language=JavaScript>
function x () {return;}
function FocusText() {
document.REPLIER.msg.focus();
document.REPLIER.msg.select();
return true; }
function DoSmilie(addSmilie) {
var revisedmsgage;
var currentmsgage = document.REPLIER.msg.value;
revisedmsgage = currentmsgage+addSmilie;
document.REPLIER.msg.value=revisedmsgage;
document.REPLIER.msg.focus();
return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>"
;

echo "$shapka";


?>



<table
width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<?
include ("blocks/header.php"); ?>
<tr>
<td
valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<?
include ("blocks/lefttd.php"); ?>
<td
valign="top">
<?
$n=0; include ("blocks/nav.php"); ?>

<?
// WR-guest v 1.7M // 07.01.07 г. // Miha-ingener@yandex.ru



// БЛОК загадок

$rand_zag=array(
"Сидит дед, во сто шуб одет. Кто его раздевает, тот слёзы проливает.",
"Стоит Антошка на одной ножке. Кто его встретит - всяк ему поклонится.",
"Кто поляны белит белым? И на стенах пишет мелом?",
"Шьет пуховые перины, разукрасил все витрины?",
"Покатился по полу колобок, да оставил хвост на семь верст",
"Все обходят это место: здесь земля, как буд-то тесто.",
"Здесь осока, кочки, мхи, нет опоры для ноги.",
"умный Ивашка в деревянной рубашке. По белому полю пойдёт, всяк его след поймет",
"Кто приходит, кто уходит, все ее за ручку водят",
"Летит - кричит, сядет - молчит, кто его убьет - свою кровь прольет");

// БЛОК ответов на загадки
$rand_qwe=array(
"лук",
"гриб",
"мороз",
"мороз",
"клубок",
"болото",
"болото",
"карандаш",
"дверь",
"комар");


// Для цифрозащиты 4-ый антиспам:
$maxkey=4; // Колличество символов в коде (можно изменять)
$absrand="233443";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.

if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
header("Content-type: image/gif");
header("Content-length: $len");
echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}




$rnd_do=array("п<B>лю</B>с","<B>ми</B>нус","ум<B>но</B>жить");

// Событие добавления сообщения if $event=add
if (isset($_GET['event'])) { if ($_GET['event']=="add") {

// возвращаем значения данных из формы и присваиваем их переменным
if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;}

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam=="1") {
$bada="$shapka $back <font color=red>Код на картинке НЕ совпадает</font> с введённым вами!";
if (isset($_POST['num'])) {$num=$_POST['num'];} else {print"$bada"; exit;}
if (isset($_POST['rand'])) {$rand=$_POST['rand'];} else {print"$bada"; exit;}
if ($num!=$rand) {print"$bada"; exit;}}

if ($antispam=="2") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ совпадает</font> с расчётным!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['chek'])) {$chek=$_POST['chek'];} else {print"$bada"; exit;}
$dt=explode("|",$chek);
if ($dt[1]==0) {$number=$dt[0]+$dt[2];}
if ($dt[1]==1) {$number=$dt[0]-$dt[2];}
if ($dt[1]==2) {$number=$dt[0]*$dt[2];}
if ($usernum!=$number) {print"$bada"; exit;}}


if ($antispam=="3") {
$qwe=$_POST['qwe'];
$answer=$_POST['answer'];
if (strtolower($rand_qwe[$qwe])!=strtolower($answer)) {print"$shapka $back <font color=red>ОТВЕТ НЕ верен!</font> Попробуйте снова."; exit;}}

if ($antispam=="4") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if ($name == "" || strlen($name) > $maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!</B></center>"; exit;}
if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}


$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();

// производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ|
$text="$msg|$name|$email|$date|$time|$today|";

$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'
<p>',$text);
$text=str_replace("\n",'
<br> ',$text);
// Вырезаем 3 и более ентеров
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
// Вырезаем 3 и более пробелов подряд
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);

if ($antiflud=="1") { // функция АНТИФЛУД здесь!
$linesn = file("guest.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("guest.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|"; $lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[3]|";
$today=mktime();
if (($lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!"; exit;}
if ($txtflud==$txtback) {print"$back Данное сообщение уже размещено. Флудить в гостевой запрещено!"; exit;} }
}


$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);


if ($sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg = $gname.chr(13).chr(10).'
Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail", "$gname (сообщение)", $allmsg, $headers); // Отправляем письмо майлеру на съедение ;-)
}


print "$shapka <script language='Javascript'>function reload() {location = 'gb.php'}; setTimeout('reload()', 1500);</script>
<table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
Спасибо, <B>
$name</B>, Ваше сообщение успешно добавлено. <BR><BR>Через несколько секунд Вы будете автоматически перемещены на первую страницу гостевой.<BR><BR>
<B><a class='gb' href='gb.php'>Нажмите здесь, если не хотите больше ждать</a></B></td></tr></table></td></tr></table></center></body></html>"
;
exit;
}
}




// Типо главной страницы
if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page'];}

print "<center><br>

<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>
$date</b></TD>
<TD align=center><a class='gb' href='gb.php?event=new&page=
$page'>Добавить сообщение</a></TD>
<TD align=center><a class='gb' href='
$mainpage'>Вернуться на главную</a></div></B>
</TD></TR>"
;

if (strlen($maintext)>5) {print"<TR><TD colspan=3><hr size=-1 width=100%><center>$maintext</center></TD></TR>";}

print "</TABLE></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



if (isset($_GET['event'])) { if ($_GET['event']=="new") {
print "
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><div align=center>Добавить сообщение</font><BR>
<center><table><tr><td valign=top>
<B>Имя</B> и E-mail<BR><BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-))');\">$s1</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-)');\">$s2</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-P');\">$s3</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-)');\">$s4</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-(');\">$s5</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-O');\">$s6</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' ;-)');\">$s7</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :roll:');\">$s8</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :rf:');\">$s9</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-(');\">$s10</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' `-(');\">$s11</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie('[RB] [/RB] ');\"><font color=red><B>RB</b></font></a>
</tr></td></table>
</td><td>
<form action=gb.php?event=add method=post name=REPLIER>
<input type=text value='' name=name size=26> <br> <br>
<input type=text value='' name=email size=26><br> <br>
<textarea cols=35 rows=5 size=500 name=msg></textarea>"
;

// Первый вариант антиспама
if ($antispam=="1") {print"<tr><td align='right'>Защитный код:</td><td>";
$rand_key=array("7531","8642","9753","10864","1975","2186","3197","4298");
$imag_key=array("8642","9753","10864","1975","2186","3197","4298","7531");
$rand = mt_rand(0,7); $rnd=$rand_key[$rand]; $ima=$imag_key[$rand];
print"<img src='images/$ima.png' width=300 height=20 border=0>";
print"</td></tr><input name=rand type=hidden value='$rnd'>
<tr><td align='right'><font color=red>Напишите код цифрами:</font></td><td><input name='num' type='text' maxlength=5 size=5></td></tr>"
;}

// Второй вариант антиспама
if ($antispam=="2") {$rnd1=mt_rand(1,9); $rnd2=mt_rand(0,2); $rnd3=mt_rand(1,9);
print"<TR><TD>Защитный код АНТИСПАМ:</TD><TD><B>$rnd1</B> $rnd_do[$rnd2] <B>$rnd3</B> = <input name='usernum' type='text' maxlength=3 size=5> (посчитайте и введите значение)
<input name=chek type=hidden value='
$rnd1|$rnd2|$rnd3|'>";
}
// Третий вариант антиспама
if ($antispam=="3") {
$rand = mt_rand(0,9); $rnd=$rand_zag[$rand];
print"<TR><TD>Отгадай загадку</TD><TD><B>$rnd</B></TD></TR><TR><TD>введите ответ</TD><input name=qwe type=hidden value='$rand'>
<TD><input name='answer' type='text' maxlength=30 size=15> (в ответе не используйте пробелы)"
;}

// Четвёртый вариант антиспама
if ($antispam=="4") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD>Защитный код:</TD><TD>";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print" <input name='usernum' type='text' maxlength=$maxkey size=6> (введите число, указанное на картинке)
<input name=xkey type=hidden value='
$xkey'>";
}


print"<tr><td align='center' colspan=2><input type='submit' value=' Добавить '></td></tr>
</table>
</TD>

<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;
} }


// считываем данные в память
$lines = file("guest.dat");
$maxi = count($lines)-1;

// выводим СПИСОК доступных номеров СТРАНИЦ ВВЕРХУ
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
if ($page==0) {$page="1";} else {$page=abs($page);}

print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}


// Выводим qq сообщений на текущей странице

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if ($msginout=="1")
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }

do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++; $num=$maxi-$fm+2;} else {$fm--; $num=$fm+2;}

// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("|","|",$dt[0]);
if ($liteurl=="1") {$dt[0]=preg_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "<a class='gb' href='\\1' target='_blank'>\\1</a>", $dt[0]);}

print"
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><B><a class='gb' href='mailto:
$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B>
<UL><em>
$dt[0]</em>
<div align=right>
$num</div></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
"
;


if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
}
while($whm < $whe);




// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}



print "<BR><BR><center><font size=-2>Powered by <a class='gb' href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7M</font></body></html>";
?>







</td>
</tr>
</table></td>
</tr>
<?
include ("blocks/footer.php"); ?>
</table>
</body>
</html>



но тут вот опять такое:

заполняю формочку

user posted image

жму отправить а выдаёт опять ошибку с этой же eregi

user posted image

пытаюсь изменить на preg_replace или preg_seplace - ошибка та же выскакивает
как тут подправить подскажите пожалуйста?

Спустя 9 минут, 8 секунд (31.08.2010 - 08:42) liver1981 написал(а):
вот например меняю на preg_replace

if (!preg_replace("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}


выдаёт такое:

Warning: preg_replace() expects at least 3 parameters, 2 given in Z:\home\localhost\www\phpblog\gb.php on line 153
Вернитесь назад и введите корректный E-mail адрес!


пишу вот так:



if (!preg_seplace("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>"; exit;}


выдаёт вот такую ошибку:

Fatal error: Call to undefined function preg_seplace() in Z:\home\localhost\www\phpblog\gb.php on line 153

ужас какой то, ох и видеошкола...
кто поможет исправить?

Спустя 1 минута, 54 секунды (31.08.2010 - 08:44) Basili4 написал(а):
а начало и конец регулярки добавь #

Спустя 7 минут, 11 секунд (31.08.2010 - 08:51) liver1981 написал(а):
Basili4, добавил, но оно почему то пишет опять ошибку:

Warning: preg_replace() expects at least 3 parameters, 2 given in Z:\home\localhost\www\phpblog\gb.php on line 153
Вернитесь назад и введите корректный E-mail адрес!
#


вот то что есть сейчас:

<? include ("blocks/bd.php");
error_reporting (E_ALL);

$mainpage="gb.php";

include "config.php";

$shapka = "<html><head>
<title>
$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<META content='
$gname, $maintext' name=Keywords>
<META content='Гостевая книга. Здесь Вы можете оставить отзыв о нашем сайте.' name=Description>
<link rel=stylesheet type='text/css' href='images/
$skin/style.css'>
<link href='style.css' rel='stylesheet' type='text/css'>
<script language=JavaScript>
function x () {return;}
function FocusText() {
document.REPLIER.msg.focus();
document.REPLIER.msg.select();
return true; }
function DoSmilie(addSmilie) {
var revisedmsgage;
var currentmsgage = document.REPLIER.msg.value;
revisedmsgage = currentmsgage+addSmilie;
document.REPLIER.msg.value=revisedmsgage;
document.REPLIER.msg.focus();
return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>"
;

echo "$shapka";


?>



<table
width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<?
include ("blocks/header.php"); ?>
<tr>
<td
valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<?
include ("blocks/lefttd.php"); ?>
<td
valign="top">
<?
$n=0; include ("blocks/nav.php"); ?>

<?
// WR-guest v 1.7M // 07.01.07 г. // Miha-ingener@yandex.ru



// БЛОК загадок

$rand_zag=array(
"Сидит дед, во сто шуб одет. Кто его раздевает, тот слёзы проливает.",
"Стоит Антошка на одной ножке. Кто его встретит - всяк ему поклонится.",
"Кто поляны белит белым? И на стенах пишет мелом?",
"Шьет пуховые перины, разукрасил все витрины?",
"Покатился по полу колобок, да оставил хвост на семь верст",
"Все обходят это место: здесь земля, как буд-то тесто.",
"Здесь осока, кочки, мхи, нет опоры для ноги.",
"умный Ивашка в деревянной рубашке. По белому полю пойдёт, всяк его след поймет",
"Кто приходит, кто уходит, все ее за ручку водят",
"Летит - кричит, сядет - молчит, кто его убьет - свою кровь прольет");

// БЛОК ответов на загадки
$rand_qwe=array(
"лук",
"гриб",
"мороз",
"мороз",
"клубок",
"болото",
"болото",
"карандаш",
"дверь",
"комар");


// Для цифрозащиты 4-ый антиспам:
$maxkey=4; // Колличество символов в коде (можно изменять)
$absrand="233443";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.

if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
header("Content-type: image/gif");
header("Content-length: $len");
echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}




$rnd_do=array("п<B>лю</B>с","<B>ми</B>нус","ум<B>но</B>жить");

// Событие добавления сообщения if $event=add
if (isset($_GET['event'])) { if ($_GET['event']=="add") {

// возвращаем значения данных из формы и присваиваем их переменным
if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;}

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam=="1") {
$bada="$shapka $back <font color=red>Код на картинке НЕ совпадает</font> с введённым вами!";
if (isset($_POST['num'])) {$num=$_POST['num'];} else {print"$bada"; exit;}
if (isset($_POST['rand'])) {$rand=$_POST['rand'];} else {print"$bada"; exit;}
if ($num!=$rand) {print"$bada"; exit;}}

if ($antispam=="2") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ совпадает</font> с расчётным!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['chek'])) {$chek=$_POST['chek'];} else {print"$bada"; exit;}
$dt=explode("|",$chek);
if ($dt[1]==0) {$number=$dt[0]+$dt[2];}
if ($dt[1]==1) {$number=$dt[0]-$dt[2];}
if ($dt[1]==2) {$number=$dt[0]*$dt[2];}
if ($usernum!=$number) {print"$bada"; exit;}}


if ($antispam=="3") {
$qwe=$_POST['qwe'];
$answer=$_POST['answer'];
if (strtolower($rand_qwe[$qwe])!=strtolower($answer)) {print"$shapka $back <font color=red>ОТВЕТ НЕ верен!</font> Попробуйте снова."; exit;}}

if ($antispam=="4") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if ($name == "" || strlen($name) > $maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!</B></center>"; exit;}
if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
if (!preg_replace("#^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>#"; exit;}


$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();

// производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ|
$text="$msg|$name|$email|$date|$time|$today|";

$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'
<p>',$text);
$text=str_replace("\n",'
<br> ',$text);
// Вырезаем 3 и более ентеров
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
// Вырезаем 3 и более пробелов подряд
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);

if ($antiflud=="1") { // функция АНТИФЛУД здесь!
$linesn = file("guest.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("guest.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|"; $lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[3]|";
$today=mktime();
if (($lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!"; exit;}
if ($txtflud==$txtback) {print"$back Данное сообщение уже размещено. Флудить в гостевой запрещено!"; exit;} }
}


$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);


if ($sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg = $gname.chr(13).chr(10).'
Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail", "$gname (сообщение)", $allmsg, $headers); // Отправляем письмо майлеру на съедение ;-)
}


print "$shapka <script language='Javascript'>function reload() {location = 'gb.php'}; setTimeout('reload()', 1500);</script>
<table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
Спасибо, <B>
$name</B>, Ваше сообщение успешно добавлено. <BR><BR>Через несколько секунд Вы будете автоматически перемещены на первую страницу гостевой.<BR><BR>
<B><a class='gb' href='gb.php'>Нажмите здесь, если не хотите больше ждать</a></B></td></tr></table></td></tr></table></center></body></html>"
;
exit;
}
}




// Типо главной страницы
if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page'];}

print "<center><br>

<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>
$date</b></TD>
<TD align=center><a class='gb' href='gb.php?event=new&page=
$page'>Добавить сообщение</a></TD>
<TD align=center><a class='gb' href='
$mainpage'>Вернуться на главную</a></div></B>
</TD></TR>"
;

if (strlen($maintext)>5) {print"<TR><TD colspan=3><hr size=-1 width=100%><center>$maintext</center></TD></TR>";}

print "</TABLE></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



if (isset($_GET['event'])) { if ($_GET['event']=="new") {
print "
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><div align=center>Добавить сообщение</font><BR>
<center><table><tr><td valign=top>
<B>Имя</B> и E-mail<BR><BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-))');\">$s1</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-)');\">$s2</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-P');\">$s3</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-)');\">$s4</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-(');\">$s5</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-O');\">$s6</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' ;-)');\">$s7</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :roll:');\">$s8</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :rf:');\">$s9</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-(');\">$s10</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' `-(');\">$s11</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie('[RB] [/RB] ');\"><font color=red><B>RB</b></font></a>
</tr></td></table>
</td><td>
<form action=gb.php?event=add method=post name=REPLIER>
<input type=text value='' name=name size=26> <br> <br>
<input type=text value='' name=email size=26><br> <br>
<textarea cols=35 rows=5 size=500 name=msg></textarea>"
;

// Первый вариант антиспама
if ($antispam=="1") {print"<tr><td align='right'>Защитный код:</td><td>";
$rand_key=array("7531","8642","9753","10864","1975","2186","3197","4298");
$imag_key=array("8642","9753","10864","1975","2186","3197","4298","7531");
$rand = mt_rand(0,7); $rnd=$rand_key[$rand]; $ima=$imag_key[$rand];
print"<img src='images/$ima.png' width=300 height=20 border=0>";
print"</td></tr><input name=rand type=hidden value='$rnd'>
<tr><td align='right'><font color=red>Напишите код цифрами:</font></td><td><input name='num' type='text' maxlength=5 size=5></td></tr>"
;}

// Второй вариант антиспама
if ($antispam=="2") {$rnd1=mt_rand(1,9); $rnd2=mt_rand(0,2); $rnd3=mt_rand(1,9);
print"<TR><TD>Защитный код АНТИСПАМ:</TD><TD><B>$rnd1</B> $rnd_do[$rnd2] <B>$rnd3</B> = <input name='usernum' type='text' maxlength=3 size=5> (посчитайте и введите значение)
<input name=chek type=hidden value='
$rnd1|$rnd2|$rnd3|'>";
}
// Третий вариант антиспама
if ($antispam=="3") {
$rand = mt_rand(0,9); $rnd=$rand_zag[$rand];
print"<TR><TD>Отгадай загадку</TD><TD><B>$rnd</B></TD></TR><TR><TD>введите ответ</TD><input name=qwe type=hidden value='$rand'>
<TD><input name='answer' type='text' maxlength=30 size=15> (в ответе не используйте пробелы)"
;}

// Четвёртый вариант антиспама
if ($antispam=="4") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD>Защитный код:</TD><TD>";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print" <input name='usernum' type='text' maxlength=$maxkey size=6> (введите число, указанное на картинке)
<input name=xkey type=hidden value='
$xkey'>";
}


print"<tr><td align='center' colspan=2><input type='submit' value=' Добавить '></td></tr>
</table>
</TD>

<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;
} }


// считываем данные в память
$lines = file("guest.dat");
$maxi = count($lines)-1;

// выводим СПИСОК доступных номеров СТРАНИЦ ВВЕРХУ
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
if ($page==0) {$page="1";} else {$page=abs($page);}

print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}


// Выводим qq сообщений на текущей странице

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if ($msginout=="1")
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }

do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++; $num=$maxi-$fm+2;} else {$fm--; $num=$fm+2;}

// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("|","|",$dt[0]);
if ($liteurl=="1") {$dt[0]=preg_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "<a class='gb' href='\\1' target='_blank'>\\1</a>", $dt[0]);}

print"
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><B><a class='gb' href='mailto:
$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B>
<UL><em>
$dt[0]</em>
<div align=right>
$num</div></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
"
;


if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
}
while($whm < $whe);




// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}



print "<BR><BR><center><font size=-2>Powered by <a class='gb' href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7M</font></body></html>";
?>







</td>
</tr>
</table></td>
</tr>
<?
include ("blocks/footer.php"); ?>
</table>
</body>
</html>


Спустя 3 минуты, 22 секунды (31.08.2010 - 08:54) Basili4 написал(а):
#^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$#

Вот так по пробуй в начало и в конец #


Спустя 3 минуты, 51 секунда (31.08.2010 - 08:58) phz написал(а):
Что мне нравится в Попове так это его простота, сам как бы "программист" - а на сайте _http://www.photoshop-master.ru/gb.php использует чужую гостевую на файлах... фу

Спустя 8 минут, 4 секунды (31.08.2010 - 09:06) Basili4 написал(а):
phz
Попов тонкий Троль. Получающий кроме денег еще и лулзы. А использование чужих кодов на своих сайтах какбэ намекает на это.

Спустя 2 минуты, 11 секунд (31.08.2010 - 09:08) liver1981 написал(а):
Basili4, вот я пробую

<? include ("blocks/bd.php");
error_reporting (E_ALL);

$mainpage="gb.php";

include "config.php";

$shapka = "<html><head>
<title>
$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<META content='
$gname, $maintext' name=Keywords>
<META content='Гостевая книга. Здесь Вы можете оставить отзыв о нашем сайте.' name=Description>
<link rel=stylesheet type='text/css' href='images/
$skin/style.css'>
<link href='style.css' rel='stylesheet' type='text/css'>
<script language=JavaScript>
function x () {return;}
function FocusText() {
document.REPLIER.msg.focus();
document.REPLIER.msg.select();
return true; }
function DoSmilie(addSmilie) {
var revisedmsgage;
var currentmsgage = document.REPLIER.msg.value;
revisedmsgage = currentmsgage+addSmilie;
document.REPLIER.msg.value=revisedmsgage;
document.REPLIER.msg.focus();
return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>"
;

echo "$shapka";


?>



<table
width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<?
include ("blocks/header.php"); ?>
<tr>
<td
valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<?
include ("blocks/lefttd.php"); ?>
<td
valign="top">
<?
$n=0; include ("blocks/nav.php"); ?>

<?
// WR-guest v 1.7M // 07.01.07 г. // Miha-ingener@yandex.ru



// БЛОК загадок

$rand_zag=array(
"Сидит дед, во сто шуб одет. Кто его раздевает, тот слёзы проливает.",
"Стоит Антошка на одной ножке. Кто его встретит - всяк ему поклонится.",
"Кто поляны белит белым? И на стенах пишет мелом?",
"Шьет пуховые перины, разукрасил все витрины?",
"Покатился по полу колобок, да оставил хвост на семь верст",
"Все обходят это место: здесь земля, как буд-то тесто.",
"Здесь осока, кочки, мхи, нет опоры для ноги.",
"умный Ивашка в деревянной рубашке. По белому полю пойдёт, всяк его след поймет",
"Кто приходит, кто уходит, все ее за ручку водят",
"Летит - кричит, сядет - молчит, кто его убьет - свою кровь прольет");

// БЛОК ответов на загадки
$rand_qwe=array(
"лук",
"гриб",
"мороз",
"мороз",
"клубок",
"болото",
"болото",
"карандаш",
"дверь",
"комар");


// Для цифрозащиты 4-ый антиспам:
$maxkey=4; // Колличество символов в коде (можно изменять)
$absrand="233443";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.

if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
header("Content-type: image/gif");
header("Content-length: $len");
echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}




$rnd_do=array("п<B>лю</B>с","<B>ми</B>нус","ум<B>но</B>жить");

// Событие добавления сообщения if $event=add
if (isset($_GET['event'])) { if ($_GET['event']=="add") {

// возвращаем значения данных из формы и присваиваем их переменным
if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;}

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam=="1") {
$bada="$shapka $back <font color=red>Код на картинке НЕ совпадает</font> с введённым вами!";
if (isset($_POST['num'])) {$num=$_POST['num'];} else {print"$bada"; exit;}
if (isset($_POST['rand'])) {$rand=$_POST['rand'];} else {print"$bada"; exit;}
if ($num!=$rand) {print"$bada"; exit;}}

if ($antispam=="2") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ совпадает</font> с расчётным!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['chek'])) {$chek=$_POST['chek'];} else {print"$bada"; exit;}
$dt=explode("|",$chek);
if ($dt[1]==0) {$number=$dt[0]+$dt[2];}
if ($dt[1]==1) {$number=$dt[0]-$dt[2];}
if ($dt[1]==2) {$number=$dt[0]*$dt[2];}
if ($usernum!=$number) {print"$bada"; exit;}}


if ($antispam=="3") {
$qwe=$_POST['qwe'];
$answer=$_POST['answer'];
if (strtolower($rand_qwe[$qwe])!=strtolower($answer)) {print"$shapka $back <font color=red>ОТВЕТ НЕ верен!</font> Попробуйте снова."; exit;}}

if ($antispam=="4") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if ($name == "" || strlen($name) > $maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!</B></center>"; exit;}
if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
if (!preg_replace("#^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$#", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>#"; exit;}

$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();

// производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ|
$text="$msg|$name|$email|$date|$time|$today|";

$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'
<p>',$text);
$text=str_replace("\n",'
<br> ',$text);
// Вырезаем 3 и более ентеров
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
// Вырезаем 3 и более пробелов подряд
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);

if ($antiflud=="1") { // функция АНТИФЛУД здесь!
$linesn = file("guest.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("guest.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|"; $lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[3]|";
$today=mktime();
if (($lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!"; exit;}
if ($txtflud==$txtback) {print"$back Данное сообщение уже размещено. Флудить в гостевой запрещено!"; exit;} }
}


$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);


if ($sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg = $gname.chr(13).chr(10).'
Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail", "$gname (сообщение)", $allmsg, $headers); // Отправляем письмо майлеру на съедение ;-)
}


print "$shapka <script language='Javascript'>function reload() {location = 'gb.php'}; setTimeout('reload()', 1500);</script>
<table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
Спасибо, <B>
$name</B>, Ваше сообщение успешно добавлено. <BR><BR>Через несколько секунд Вы будете автоматически перемещены на первую страницу гостевой.<BR><BR>
<B><a class='gb' href='gb.php'>Нажмите здесь, если не хотите больше ждать</a></B></td></tr></table></td></tr></table></center></body></html>"
;
exit;
}
}




// Типо главной страницы
if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page'];}

print "<center><br>

<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>
$date</b></TD>
<TD align=center><a class='gb' href='gb.php?event=new&page=
$page'>Добавить сообщение</a></TD>
<TD align=center><a class='gb' href='
$mainpage'>Вернуться на главную</a></div></B>
</TD></TR>"
;

if (strlen($maintext)>5) {print"<TR><TD colspan=3><hr size=-1 width=100%><center>$maintext</center></TD></TR>";}

print "</TABLE></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



if (isset($_GET['event'])) { if ($_GET['event']=="new") {
print "
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><div align=center>Добавить сообщение</font><BR>
<center><table><tr><td valign=top>
<B>Имя</B> и E-mail<BR><BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-))');\">$s1</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-)');\">$s2</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-P');\">$s3</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-)');\">$s4</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-(');\">$s5</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-O');\">$s6</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' ;-)');\">$s7</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :roll:');\">$s8</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :rf:');\">$s9</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-(');\">$s10</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' `-(');\">$s11</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie('[RB] [/RB] ');\"><font color=red><B>RB</b></font></a>
</tr></td></table>
</td><td>
<form action=gb.php?event=add method=post name=REPLIER>
<input type=text value='' name=name size=26> <br> <br>
<input type=text value='' name=email size=26><br> <br>
<textarea cols=35 rows=5 size=500 name=msg></textarea>"
;

// Первый вариант антиспама
if ($antispam=="1") {print"<tr><td align='right'>Защитный код:</td><td>";
$rand_key=array("7531","8642","9753","10864","1975","2186","3197","4298");
$imag_key=array("8642","9753","10864","1975","2186","3197","4298","7531");
$rand = mt_rand(0,7); $rnd=$rand_key[$rand]; $ima=$imag_key[$rand];
print"<img src='images/$ima.png' width=300 height=20 border=0>";
print"</td></tr><input name=rand type=hidden value='$rnd'>
<tr><td align='right'><font color=red>Напишите код цифрами:</font></td><td><input name='num' type='text' maxlength=5 size=5></td></tr>"
;}

// Второй вариант антиспама
if ($antispam=="2") {$rnd1=mt_rand(1,9); $rnd2=mt_rand(0,2); $rnd3=mt_rand(1,9);
print"<TR><TD>Защитный код АНТИСПАМ:</TD><TD><B>$rnd1</B> $rnd_do[$rnd2] <B>$rnd3</B> = <input name='usernum' type='text' maxlength=3 size=5> (посчитайте и введите значение)
<input name=chek type=hidden value='
$rnd1|$rnd2|$rnd3|'>";
}
// Третий вариант антиспама
if ($antispam=="3") {
$rand = mt_rand(0,9); $rnd=$rand_zag[$rand];
print"<TR><TD>Отгадай загадку</TD><TD><B>$rnd</B></TD></TR><TR><TD>введите ответ</TD><input name=qwe type=hidden value='$rand'>
<TD><input name='answer' type='text' maxlength=30 size=15> (в ответе не используйте пробелы)"
;}

// Четвёртый вариант антиспама
if ($antispam=="4") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD>Защитный код:</TD><TD>";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print" <input name='usernum' type='text' maxlength=$maxkey size=6> (введите число, указанное на картинке)
<input name=xkey type=hidden value='
$xkey'>";
}


print"<tr><td align='center' colspan=2><input type='submit' value=' Добавить '></td></tr>
</table>
</TD>

<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;
} }


// считываем данные в память
$lines = file("guest.dat");
$maxi = count($lines)-1;

// выводим СПИСОК доступных номеров СТРАНИЦ ВВЕРХУ
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
if ($page==0) {$page="1";} else {$page=abs($page);}

print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}


// Выводим qq сообщений на текущей странице

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if ($msginout=="1")
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }

do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++; $num=$maxi-$fm+2;} else {$fm--; $num=$fm+2;}

// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("|","|",$dt[0]);
if ($liteurl=="1") {$dt[0]=preg_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "<a class='gb' href='\\1' target='_blank'>\\1</a>", $dt[0]);}

print"
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><B><a class='gb' href='mailto:
$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B>
<UL><em>
$dt[0]</em>
<div align=right>
$num</div></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
"
;


if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
}
while($whm < $whe);




// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}



print "<BR><BR><center><font size=-2>Powered by <a class='gb' href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7M</font></body></html>";
?>







</td>
</tr>
</table></td>
</tr>
<?
include ("blocks/footer.php"); ?>
</table>
</body>
</html>



а ошибка та же,

Warning: preg_replace() expects at least 3 parameters, 2 given in Z:\home\localhost\www\phpblog\gb.php on line 153
Вернитесь назад и введите корректный E-mail адрес!
#


ну как же исправить?
user posted image
user posted image

Спустя 23 минуты, 35 секунд (31.08.2010 - 09:32) liver1981 написал(а):
люди, ну подскажите пожалуйста?

ну никак не работает отправка сообщений

Спустя 28 минут, 40 секунд (31.08.2010 - 10:01) liver1981 написал(а):
вот блог целиком и база:

http://up.iteam.ua/86770
http://up.iteam.ua/86771

Спустя 52 секунды (31.08.2010 - 10:01) Evilsoul написал(а):

Спустя 5 минут, 13 секунд (31.08.2010 - 10:07) liver1981 написал(а):
Evilsoul, спасибо
я это видел
но надо же как то доделать эту гостевую, я же всё по видео делал
вот уже столько уроков прошел и опять эта ошибка
как же этот код забросить и новое начать ничего тут не разобрав-я же так никогда не научусь ничему

кстати могу помочь форуму
я профессиональный саунд-дизайнер, могу сделать любое музыкальное оформление для вэб smile.gif

Спустя 16 минут, 49 секунд (31.08.2010 - 10:24) linker написал(а):
$text=preg_replace("/\\\\/","\\",$text);

Спустя 11 минут, 53 секунды (31.08.2010 - 10:35) amazing написал(а):
liver1981, я вот сейчас попробовал там вообще все напутано, в переменной $email находиться заголовок сообщения, в переменной $name находиться e-mail, и еще куча всего...
Так что лучше не разбираться в велосипедах сломя голову, а почитать что-то менее нагружающее новичков

Спустя 5 минут, 9 секунд (31.08.2010 - 10:41) inpost написал(а):
liver1981
Тоже по Попову учился делать звуковое оформление?! =) Шутка! =)
Покажи строчки 153, и 152. СЛучайно не на эту функцию ругается?
$text=preg_replace("/\\\/",'\',$text);

Если да - убери её =)

Спустя 14 минут, 15 секунд (31.08.2010 - 10:55) liver1981 написал(а):
Цитата (linker @ 31.08.2010 - 07:24)
$text=preg_replace("/\\\\/","\\",$text);

linker, простите
как мне это понять?

Спустя 1 минута, 48 секунд (31.08.2010 - 10:57) inpost написал(а):
liver1981
Он исправил на то, как должна выглядеть эта строчка правильно, я же предложил её вообще убрать, не вижу в ней необходимости на данном этапе!!!

Спустя 1 минута, 31 секунда (31.08.2010 - 10:58) liver1981 написал(а):
Цитата (inpost @ 31.08.2010 - 07:41)
liver1981
Тоже по Попову учился делать звуковое оформление?! =) Шутка! =)
Покажи строчки 153, и 152. СЛучайно не на эту функцию ругается?
$text=preg_replace("/\\\/",'\',$text);

Если да - убери её =)

inpost, вот они

if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}
if (!preg_replace("#^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$#", $email) and $email != "") {print "$shapka $back и введите корректный E-mail адрес!</B></center>#"; exit;}


но тут вроде нет такого

Спустя 1 минута, 28 секунд (31.08.2010 - 11:00) liver1981 написал(а):
Цитата (inpost @ 31.08.2010 - 07:57)
liver1981
Он исправил на то, как должна выглядеть эта строчка правильно, я же предложил её вообще убрать, не вижу в ней необходимости на данном этапе!!!

inpost, о какой именно строчке Вы говорите?

Спустя 5 минут, 37 секунд (31.08.2010 - 11:05) inpost написал(а):
liver1981
Ты ошибку читал? Там написано, надо 3 параметра, а у тебя только 2.
Смотрим на строчку 153, как написано в ошибке и сравниваем с описанием функции. Вот описание самой функции:
http://www.php.su/functions/?preg-replace
У тебя присутствует первое и третье значение, надо добавить ещё второе. Мне кажется, что тут надо не проверку проводить с заменой, а простую проверку! Перым параметром ты написал то, что ищешь, а третьим в какой переменной! Вторым значением напиши то, на что ты заменишь найденные данные. Если честно, то тут некоректно использовано это, я бы вообще эту строчку убрал бы

Спустя 6 минут, 26 секунд (31.08.2010 - 11:12) liver1981 написал(а):
inpost, огромное спасибо
убрал я эту строку и сообщение добавилось
вот работающий код:

<? include ("blocks/bd.php");
error_reporting (E_ALL);

$mainpage="gb.php";

include "config.php";

$shapka = "<html><head>
<title>
$gname</title>
<META HTTP-EQUIV='Pragma' CONTENT='no-cache'>
<META HTTP-EQUIV='Cache-Control' CONTENT='no-cache'>
<META content='text/html; charset=windows-1251' http-equiv=Content-Type>
<META content='
$gname, $maintext' name=Keywords>
<META content='Гостевая книга. Здесь Вы можете оставить отзыв о нашем сайте.' name=Description>
<link rel=stylesheet type='text/css' href='images/
$skin/style.css'>
<link href='style.css' rel='stylesheet' type='text/css'>
<script language=JavaScript>
function x () {return;}
function FocusText() {
document.REPLIER.msg.focus();
document.REPLIER.msg.select();
return true; }
function DoSmilie(addSmilie) {
var revisedmsgage;
var currentmsgage = document.REPLIER.msg.value;
revisedmsgage = currentmsgage+addSmilie;
document.REPLIER.msg.value=revisedmsgage;
document.REPLIER.msg.focus();
return;
}
function DoPrompt(action) { var revisedmsgage; var currentmsgage = document.REPLIER.qmsgage.value; }
</SCRIPT>
</head>
<body>"
;

echo "$shapka";


?>



<table
width="690" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF" class="main_border">
<?
include ("blocks/header.php"); ?>
<tr>
<td
valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<?
include ("blocks/lefttd.php"); ?>
<td
valign="top">
<?
$n=0; include ("blocks/nav.php"); ?>

<?
// WR-guest v 1.7M // 07.01.07 г. // Miha-ingener@yandex.ru



// БЛОК загадок

$rand_zag=array(
"Сидит дед, во сто шуб одет. Кто его раздевает, тот слёзы проливает.",
"Стоит Антошка на одной ножке. Кто его встретит - всяк ему поклонится.",
"Кто поляны белит белым? И на стенах пишет мелом?",
"Шьет пуховые перины, разукрасил все витрины?",
"Покатился по полу колобок, да оставил хвост на семь верст",
"Все обходят это место: здесь земля, как буд-то тесто.",
"Здесь осока, кочки, мхи, нет опоры для ноги.",
"умный Ивашка в деревянной рубашке. По белому полю пойдёт, всяк его след поймет",
"Кто приходит, кто уходит, все ее за ручку водят",
"Летит - кричит, сядет - молчит, кто его убьет - свою кровь прольет");

// БЛОК ответов на загадки
$rand_qwe=array(
"лук",
"гриб",
"мороз",
"мороз",
"клубок",
"болото",
"болото",
"карандаш",
"дверь",
"комар");


// Для цифрозащиты 4-ый антиспам:
$maxkey=4; // Колличество символов в коде (можно изменять)
$absrand="233443";// Случайное число. Используется для цифрозащиты. Генерировать его нужно случайно при настройке или изменении конфигурации скрипта.

if (isset($_GET['image'])) {
// Функция с цифрами защиты
$st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков
function imgwr($st,$num){
if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";}
if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";}
if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";}
if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";}
if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";}
if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";}
if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";}
if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";}
if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";}
if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";}
header("Content-type: image/gif");
header("Content-length: $len");
echo base64_decode($number); }
// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }
exit;}




$rnd_do=array("п<B>лю</B>с","<B>ми</B>нус","ум<B>но</B>жить");

// Событие добавления сообщения if $event=add
if (isset($_GET['event'])) { if ($_GET['event']=="add") {

// возвращаем значения данных из формы и присваиваем их переменным
if (isset ($_POST['name']) & isset ($_POST['msg']) & isset ($_POST['email'])) {$name=$_POST['name']; $msg=$_POST['msg']; $email=$_POST['email'];} else {exit;}

sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер

if ($antispam=="1") {
$bada="$shapka $back <font color=red>Код на картинке НЕ совпадает</font> с введённым вами!";
if (isset($_POST['num'])) {$num=$_POST['num'];} else {print"$bada"; exit;}
if (isset($_POST['rand'])) {$rand=$_POST['rand'];} else {print"$bada"; exit;}
if ($num!=$rand) {print"$bada"; exit;}}

if ($antispam=="2") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ совпадает</font> с расчётным!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['chek'])) {$chek=$_POST['chek'];} else {print"$bada"; exit;}
$dt=explode("|",$chek);
if ($dt[1]==0) {$number=$dt[0]+$dt[2];}
if ($dt[1]==1) {$number=$dt[0]-$dt[2];}
if ($dt[1]==2) {$number=$dt[0]*$dt[2];}
if ($usernum!=$number) {print"$bada"; exit;}}


if ($antispam=="3") {
$qwe=$_POST['qwe'];
$answer=$_POST['answer'];
if (strtolower($rand_qwe[$qwe])!=strtolower($answer)) {print"$shapka $back <font color=red>ОТВЕТ НЕ верен!</font> Попробуйте снова."; exit;}}

if ($antispam=="4") {
$bada="$shapka $back <font color=red>Введённый вами код НЕ верен</font>!";
if (isset($_POST['usernum'])) {$usernum=$_POST['usernum'];} else {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}

if ($name == "" || strlen($name) > $maxname) {print "$shapka $back ваше имя или пустое, или превышает $maxname символов!</B></center>"; exit;}
if ($msg == "" || strlen($msg) > $maxmsg) {print "$shapka $back ваше сообщение или пустое или превышает $maxmsg символов.</B></center>"; exit;}


$msg=str_replace("|","I",$msg);
$name=wordwrap($name,24,' ',1); // разрываем слишком длинные строки
$msg=wordwrap($msg,75,' ',1);
$today=mktime();

// производим запись данных в файл по шаблону: собщение|имя|емайл|дата|время|МКТАЙМ|
$text="$msg|$name|$email|$date|$time|$today|";

$text=str_replace(" ",' ',$text);
$text=str_replace("&",'&',$text);
$text=str_replace(">",'>',$text);
$text=str_replace("<",'<',$text);
$text=str_replace("\"",'"',$text);
$text=preg_replace("/\n\n/",'<p>',$text);
$text=preg_replace("/\n/",'<br>',$text);
$text=preg_replace("/\\\$/",'$',$text);
$text=preg_replace("/\r/",'',$text);
$text=stripslashes($text);
$text=preg_replace("/\\\/",'\',$text);
$text=str_replace("\r\n","<br> ",$text);
$text=str_replace("\n\n",'
<p>',$text);
$text=str_replace("\n",'
<br> ',$text);
// Вырезаем 3 и более ентеров
do {$text=str_replace("<br><br><br>","<br>",$text);} while (preg_match("/<br><br><br><br>/i",$text));
// Вырезаем 3 и более пробелов подряд
do {$text=str_replace(" "," ",$text);} while (preg_match("/ /i",$text));
$text=str_replace("\t",' ',$text);
$text=str_replace("\r",' ',$text);
$text=str_replace(' ',' ',$text);

if ($antiflud=="1") { // функция АНТИФЛУД здесь!
$linesn = file("guest.dat"); $in=count($linesn);
if ($in > 0) {
$lines=file("guest.dat"); $i=count($lines)-1; $itogo=$i; $dtf=explode("|",$lines[$i]);
$txtback="$dtf[0]|$dtf[1]|$dtf[2]|$dtf[3]|"; $lastmsg=$dtf[5];
$dtb=explode("|",$text);
$txtflud="$dtb[0]|$dtb[1]|$dtb[2]|$dtb[3]|";
$today=mktime();
if (($lastmsg+30)>$today) {
$eshe=($lastmsg+30)-$today; print"$back Чаще 30 секунд запрещено размещать сообщения. Подождите ещё $eshe секунд!"; exit;}
if ($txtflud==$txtback) {print"$back Данное сообщение уже размещено. Флудить в гостевой запрещено!"; exit;} }
}


$fp=fopen("guest.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
@chmod("guest.dat", 0644);


if ($sendmail=="1") { // отправка сообщения админу на мыло
$headers=null;
$headers.="Content-Type: text/plain; charset=windows-1251\r\n";
$headers.="From: ".$name." <".$email.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
// Собираем всю информацию в теле письма
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$allmsg = $gname.chr(13).chr(10).'
Новое сообщение в гостевой: http://'.$host.$self.chr(13).chr(10).'Имя: '.$name.chr(13).chr(10).'E-mail: '.$email.chr(13).chr(10).'Сообщение: '.$msg.chr(13).chr(10);
mail("$adminemail", "$gname (сообщение)", $allmsg, $headers); // Отправляем письмо майлеру на съедение ;-)
}


print "$shapka <script language='Javascript'>function reload() {location = 'gb.php'}; setTimeout('reload()', 1500);</script>
<table width=100% height=80%><tr><td><table border=1 cellpadding=10 cellspacing=0 bordercolor=#224488 align=center valign=center width=60%><tr><td><center>
Спасибо, <B>
$name</B>, Ваше сообщение успешно добавлено. <BR><BR>Через несколько секунд Вы будете автоматически перемещены на первую страницу гостевой.<BR><BR>
<B><a class='gb' href='gb.php'>Нажмите здесь, если не хотите больше ждать</a></B></td></tr></table></td></tr></table></center></body></html>"
;
exit;
}
}




// Типо главной страницы
if (!isset($_GET['page'])) {$page=1;} else {$page=$_GET['page'];}

print "<center><br>

<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD>
<table width=100%><TR>
<TD><B>Сегодня <b>
$date</b></TD>
<TD align=center><a class='gb' href='gb.php?event=new&page=
$page'>Добавить сообщение</a></TD>
<TD align=center><a class='gb' href='
$mainpage'>Вернуться на главную</a></div></B>
</TD></TR>"
;

if (strlen($maintext)>5) {print"<TR><TD colspan=3><hr size=-1 width=100%><center>$maintext</center></TD></TR>";}

print "</TABLE></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;



if (isset($_GET['event'])) { if ($_GET['event']=="new") {
print "
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><div align=center>Добавить сообщение</font><BR>
<center><table><tr><td valign=top>
<B>Имя</B> и E-mail<BR><BR>
<B>Сообщение</B>
<table width=90 height=70><tr><td valign=top>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-))');\">$s1</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-)');\">$s2</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-P');\">$s3</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-)');\">$s4</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-(');\">$s5</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :-O');\">$s6</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' ;-)');\">$s7</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :roll:');\">$s8</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' :rf:');\">$s9</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' 8-(');\">$s10</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie(' `-(');\">$s11</a>
<a class='gb' href='javascript:%20x()' onclick=
\"DoSmilie('[RB] [/RB] ');\"><font color=red><B>RB</b></font></a>
</tr></td></table>
</td><td>
<form action=gb.php?event=add method=post name=REPLIER>
<input type=text value='' name=name size=26> <br> <br>
<input type=text value='' name=email size=26><br> <br>
<textarea cols=35 rows=5 size=500 name=msg></textarea>"
;

// Первый вариант антиспама
if ($antispam=="1") {print"<tr><td align='right'>Защитный код:</td><td>";
$rand_key=array("7531","8642","9753","10864","1975","2186","3197","4298");
$imag_key=array("8642","9753","10864","1975","2186","3197","4298","7531");
$rand = mt_rand(0,7); $rnd=$rand_key[$rand]; $ima=$imag_key[$rand];
print"<img src='images/$ima.png' width=300 height=20 border=0>";
print"</td></tr><input name=rand type=hidden value='$rnd'>
<tr><td align='right'><font color=red>Напишите код цифрами:</font></td><td><input name='num' type='text' maxlength=5 size=5></td></tr>"
;}

// Второй вариант антиспама
if ($antispam=="2") {$rnd1=mt_rand(1,9); $rnd2=mt_rand(0,2); $rnd3=mt_rand(1,9);
print"<TR><TD>Защитный код АНТИСПАМ:</TD><TD><B>$rnd1</B> $rnd_do[$rnd2] <B>$rnd3</B> = <input name='usernum' type='text' maxlength=3 size=5> (посчитайте и введите значение)
<input name=chek type=hidden value='
$rnd1|$rnd2|$rnd3|'>";
}
// Третий вариант антиспама
if ($antispam=="3") {
$rand = mt_rand(0,9); $rnd=$rand_zag[$rand];
print"<TR><TD>Отгадай загадку</TD><TD><B>$rnd</B></TD></TR><TR><TD>введите ответ</TD><input name=qwe type=hidden value='$rand'>
<TD><input name='answer' type='text' maxlength=30 size=15> (в ответе не используйте пробелы)"
;}

// Четвёртый вариант антиспама
if ($antispam=="4") {

// Вывод изображений на экран (все кодированы - робот не пройдёт)
if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"];
for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} }

$xkey=""; mt_srand(time()+(double)microtime()*1000000);

print"<TR><TD>Защитный код:</TD><TD>";
for ($i=0; $i<$maxkey; $i++) {
$snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand);
$phpself=$_SERVER["PHP_SELF"];
echo "<img src=$phpself?image=$psnum border='0' alt=''>\n";
$xkey=$xkey.$snum[$i];
}
$xkey=md5("$xkey+$absrand");

print" <input name='usernum' type='text' maxlength=$maxkey size=6> (введите число, указанное на картинке)
<input name=xkey type=hidden value='
$xkey'>";
}


print"<tr><td align='center' colspan=2><input type='submit' value=' Добавить '></td></tr>
</table>
</TD>

<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>"
;
} }


// считываем данные в память
$lines = file("guest.dat");
$maxi = count($lines)-1;

// выводим СПИСОК доступных номеров СТРАНИЦ ВВЕРХУ
if (isset($_GET['page'])) {$page=$_GET['page'];} else {$page="1";}
if ($page==0) {$page="1";} else {$page=abs($page);}

print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}


// Выводим qq сообщений на текущей странице

$maxpage=ceil(($maxi+1)/$qq); if ($page>$maxpage) {$page=$maxpage;}

if ($msginout=="1")
{ $fm=$qq*($page-1); if ($fm>$maxi) {$fm=$maxi-$qq;}
$lm=$fm+$qq; if ($lm>$maxi) {$lm=$maxi+1;} }
else
{ $fm=$maxi-$qq*($page-1); if ($fm<"0") {$fm=$qq;}
$lm=$fm-$qq; if ($lm<"0") {$lm="-1";} }

do { $dt = explode("|", $lines[$fm]);
if ($msginout=="1") {$fm++; $num=$maxi-$fm+2;} else {$fm--; $num=$fm+2;}

// заменяем текстовые смайлики на графические
$dt[0]=str_replace(":-))",$s1,$dt[0]);
$dt[0]=str_replace(":-)",$s2,$dt[0]);
$dt[0]=str_replace(":-P",$s3,$dt[0]);
$dt[0]=str_replace("8-)",$s4,$dt[0]);
$dt[0]=str_replace(":-(",$s5,$dt[0]);
$dt[0]=str_replace(":-O",$s6,$dt[0]);
$dt[0]=str_replace(";-)",$s7,$dt[0]);
$dt[0]=str_replace(":roll:",$s8,$dt[0]);
$dt[0]=str_replace(":rf:",$s9,$dt[0]);
$dt[0]=str_replace("8-(",$s10,$dt[0]);
$dt[0]=str_replace("`-(",$s11,$dt[0]);
$dt[0]=str_replace("[RB]","<B><font color=red>", $dt[0]);
$dt[0]=str_replace("[/RB]","</font></B>", $dt[0]);
$dt[0]=str_replace("|","|",$dt[0]);
if ($liteurl=="1") {$dt[0]=preg_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/~%]*(\\?[[:alnum:]?+&;_=/%]*)?)?)", "<a class='gb' href='\\1' target='_blank'>\\1</a>", $dt[0]);}

print"
<TABLE width='90%' align=center cellPadding=0 cellSpacing=0><TBODY>
<TR><TD width='1%'><IMG src='images/
$skin/1.gif' width=14 height=12 border=0></TD><TD width='96%' background='images/$skin/2.gif'></TD><TD width='3%'><IMG src='images/$skin/3.gif' width=14 height=12 border=0></TD></TR>
<TR><TD background='images/
$skin/4.gif'></TD>
<TD><B><a class='gb' href='mailto:
$dt[2]'>$dt[1]</a> ($dt[3] $dt[4])</B>
<UL><em>
$dt[0]</em>
<div align=right>
$num</div></TD>
<TD background='images/
$skin/6.gif'> </TD>
</TR><TR><TD><IMG src='images/
$skin/8.gif' width=14 height=12 border=0></TD><TD background='images/$skin/5.gif'></TD><TD><IMG src='images/$skin/9.gif' width=14 height=12 border=0></TD></TR>
</TBODY></TABLE>
"
;


if ($msginout=="1") {$whm=$fm; $whe=$lm;} else {$whm=$lm; $whe=$fm;}
}
while($whm < $whe);




// выводим СПИСОК доступных номеров СТРАНИЦ ВНИЗУ
print "Страницы:  ";
for($i=0; $i<$maxi+1wink.gif {$ip=$i/$qq+1;
if ($page==$ip) {print "<B>$ip</B>  ";} else {print "<a class='gb' href=\"gb.php?page=$ip\">$ip</a>  ";}
$i=$i+$qq;}



print "<BR><BR><center><font size=-2>Powered by <a class='gb' href='http://www.wr-script.ru/'>WR-Guest</a> © 1.7M</font></body></html>";
?>







</td>
</tr>
</table></td>
</tr>
<?
include ("blocks/footer.php"); ?>
</table>
</body>
</html>



Спустя 4 минуты, 36 секунд (31.08.2010 - 11:16) liver1981 написал(а):
спасибо, уважаемые профи
который раз поражаюсь вашим знаниям и отзывчивости
всем новичкам буду советовать ваш форум
наконец то я могу продолжить обучение
дай Бог вам всем здоровья и материального благополучия

насчёт муз-дизайна кстати...
а вы и сами можете послушать мои работы и понять по попову они сделаны или нет
мои работы
если будете отправлять мне запрос напишите просто что вы с phpforum.ru smile.gif

Спустя 1 минута, 31 секунда (31.08.2010 - 11:18) inpost написал(а):
liver1981
Этот код, который Попов взял откуда-то ещё кривее, чем сам код Попова. =)
В следующий раз читай ошибки, в них в 99% ответ. Ошибка возникает либо на этой строчке, либо на предыдущей. Если выставляешь на сайте вопрос, то не надо копировать весь этот скрипт, не будет же каждый читать все ЭТО! Да к тому же ты предлагаешь мне считать с начала и до 153 строчки? Лучше копируй то, на что матюкается скрипт, быстрее поможем.

Спустя 6 минут, 32 секунды (31.08.2010 - 11:24) liver1981 написал(а):
inpost, спасибо огромнейшее
я просто ещё не совсем пониманию чего хочет от меня php когда ругается
но я не останавливаю обучение, всё придёт с опытом
нужно же дела доводить до конца


ещё раз мой низкий поклон!

Спустя 12 минут, 16 секунд (31.08.2010 - 11:37) amazing написал(а):
liver1981, и все таки учти что с именами переменных там напутано smile.gif

Спустя 1 час, 45 минут, 17 секунд (31.08.2010 - 13:22) liver1981 написал(а):
amazing, он же не обьясняет код(
а где там напутано именно?

Спустя 18 минут, 4 секунды (31.08.2010 - 13:40) amazing написал(а):
Цитата (amazing @ 31.08.2010 - 10:35)
liver1981, я вот сейчас попробовал там вообще все напутано, в переменной $email находиться заголовок сообщения, в переменной $name находиться e-mail, и еще куча всего...
Так что лучше не разбираться в велосипедах сломя голову, а почитать что-то менее нагружающее новичков

Я уже писал, видно внимания не обратили

Спустя 3 часа, 56 минут, 37 секунд (31.08.2010 - 17:37) liver1981 написал(а):
amazing, я то внимание обратил но как исправить не знаю. он там про эти переменные не рассказывает а сам я ещё не на том уровне чтобы там что то править. но буду стараться smile.gif

Спустя 14 часов, 6 минут, 31 секунда (1.09.2010 - 07:43) liver1981 написал(а):
кстати в админке гостевой была та же ошибка с eregi, заменил на preg_replace

ещё раз спасибо, люди

Спустя 29 минут, 43 секунды (1.09.2010 - 08:13) linker написал(а):
А мне вот интересно, с какого перепуга кто-то посоветовал заменить eregi() на preg_replace(), может надо заменить на preg_match()?

Спустя 30 минут, 26 секунд (1.09.2010 - 08:43) twin написал(а):
Никто не советовал. Советовали eregi_replace() заменить. На него и ругался интерпретатор.
А дальше топикстартер сам додумал наверно))).

liver1981
Метод тыка - не самый быстрый способ обучения.

Спустя 40 минут, 57 секунд (1.09.2010 - 09:24) liver1981 написал(а):
linker, спасибо не знал про preg_match, а куда его ставить?
twin, да мне хоть бы всё это настроить чтобы оно работало чтоб хоть как то разобраться, я неопытен в данных вопрос ещё
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.