<html> <body>
<?
$block="
<form method='POST' action='{$_SERVER['PHP_SELF']}' >
<input type='text' name='name' >
<textarea name='text1' ></textarea>
<input type='submit' value='Отправить' name='submit' > <input type='reset' value='Очистить' name='reset' >
<INPUT TYPE='hidden' NAME='op' value='ds'>
</form>";
if (@$op != "ds") {
echo "$block";
exit;
}
$text2=ereg_replace("[*(&|>|<|/|//|\|;|/|)*]","",$text1); //фильтр спецсимволов
$name=ereg_replace("[*(&|>|<|/|//|\|;/|)*]","",$name);
//защита от матов
$mat= array("êîçåë");
$nis=strtr($text2, "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ", "абвгдеёжзийклмнопрстуфхцчшщъыьэюя");
foreach($mat as $value) {
$isk=strpos($nis,$value);
if($isk !== false){
echo"<SCRIPT LANGUAGE='JavaScript'>
<!--
alert ('Ваше послание содержит ругательство!')
-->
</SCRIPT>";
echo $block;
exit;
}}
$dbname="guestbook";
$tablename="guestbook";
@$connect=mysql_connect("localhost","root","pass") or die ("Невозможно подключиться к MySQL");
@$db=mysql_select_db($dbname, $connect) or die ("Невозможно выбрать БД");
$data=date("j.m.Y H:i");
$sql="INSERT INTO $tablename(name,data,text) VALUES ('$name','$data','$text2')";
@$result=mysql_query($sql,$connect) or die ("Невозможно выполнить запрос");
if ($result !=0){
echo"<SCRIPT LANGUAGE='JavaScript'>
<!--
alert ('Ваше послание добавлено!');
location .replace('./guestbook_frame.htm');
-->
</SCRIPT>";
}
?>
</body></html>
$sql получает нулевые $name и $text2 и база отказывается записывать строку. С $data всё OK.
А при просмотре HTML кода: action=/путь к этому скрипту/имя скрипта. Вместо подколок лучше помогли бы разобраться.