Защита от спам

k0kicha

Registered
Искам към този код за писане на коментари да добавя още едно поле, което да се проверява дали е вярно и тогава да се публикува коментара. Примерно полета да е "Кога е създадена Българската държава?" и ако не е написани 681 да не се пише коментара.

Код:
<form action="comments.php" name="form" method="post">
<center>име:<input type="text" name="user" size="15" maxlength="20"><br></br><br>Текст:<br>
<textarea name="msg" cols="40" rows="4" maxlength="250" wrap="virtual"></textarea><br>
<input type="submit" name="submit" class="e" value="Изпрати"> <input type="reset" class="e" value="Изчисти"></center><hr>
<body Text="#FFFFFF" bgColor="#000000" Link="#FFFFFF" VLink="#FFFFFF" ALink="#FFFFFF">
<?php echo($whatToEcho);?>
<?php
if($_POST['msg']){
$name=$_POST['user'];
$msg=$_POST['msg'];
$fp=fopen("chat.txt","r+");
$con=fread($fp,filesize("chat.txt"));
fclose($fp);
$fp=fopen("chat.txt","w+");
$whatToEcho2="» <b>$user</b>:";
$whatToEcho=$whatToEcho2." ".$msg."<br> ".$con;
fwrite($fp,$whatToEcho);
fclose($fp);
} else {
$fp=fopen("chat.txt","r+");
$whatToEcho=fread($fp,filesize("chat.txt"));
fclose($fp); }

$name=str_replace ("<", "<",$_POST['user']);
$name=str_replace ("<", ">",$name);
$msg=str_replace ("<", "<",$_POST['msg']);
$msg=str_replace ("<", ">",$msg);

$msg=$whatToEcho;
$whatToEcho=$msg;
?><?php echo($whatToEcho);?>
<hr><br><br>
 
а може ли примерно да не излиза никакво съобщение просто да не се написва коментара в смисал да не става нищо
 
<form action="comments.php" name="form" method="post">
<center>име:<input type="text" name="user" size="15" maxlength="20"><br>
Кога е създадена Българската държава?<input type="text" name="q" size="15"><br /></br><br>Текст:<br>
<textarea name="msg" cols="40" rows="4" maxlength="250" wrap="virtual"></textarea><br>
<input type="submit" name="submit" class="e" value="Изпрати"> <input type="reset" class="e" value="Изчисти"></center><hr>
<body Text="#FFFFFF" bgColor="#000000" Link="#FFFFFF" VLink="#FFFFFF" ALink="#FFFFFF">
<?php echo($whatToEcho);?>
<?php
if($_POST['msg']){
if($_POST["q"]!="681") { exit; }
$name=$_POST['user'];
$msg=$_POST['msg'];
$fp=fopen("chat.txt","r+");
$con=fread($fp,filesize("chat.txt"));
fclose($fp);
$fp=fopen("chat.txt","w+");
$whatToEcho2="» <b>$user</b>:";
$whatToEcho=$whatToEcho2." ".$msg."<br> ".$con;
fwrite($fp,$whatToEcho);
fclose($fp);
} else {
$fp=fopen("chat.txt","r+");
$whatToEcho=fread($fp,filesize("chat.txt"));
fclose($fp); }

$name=str_replace ("<", "<",$_POST['user']);
$name=str_replace ("<", ">",$name);
$msg=str_replace ("<", "<",$_POST['msg']);
$msg=str_replace ("<", ">",$msg);

$msg=$whatToEcho;
$whatToEcho=$msg;
?><?php echo($whatToEcho);?>
<hr><br><br>
 
А мога ли да го направя - при грешно написана година... да рефрешва страницата.. без да публикува нищо ... ?!
 
сло най отгоре на кода това <? ob_start(); ?> най-отгоре ! на първия ред без празни места !

Код:
<form action="comments.php" name="form" method="post">
<center>име:<input type="text" name="user" size="15" maxlength="20"><br>
Кога е създадена Българската държава?<input type="text" name="q" size="15"><br /></br><br>Текст:<br>
<textarea name="msg" cols="40" rows="4" maxlength="250" wrap="virtual"></textarea><br>
<input type="submit" name="submit" class="e" value="Изпрати"> <input type="reset" class="e" value="Изчисти"></center><hr>
<body Text="#FFFFFF" bgColor="#000000" Link="#FFFFFF" VLink="#FFFFFF" ALink="#FFFFFF">
<?php echo($whatToEcho);?>
<?php
if($_POST['msg']){
$q=$_POST["q"];
if ($q != 681)
{
$ser=$_SERVER['SCRIPT_NAME'];
$new=explode("/", $ser);
header("location: $new[1]");
}
else
{
$name=$_POST['user'];
$msg=$_POST['msg'];
$fp=fopen("chat.txt","r+");
$con=fread($fp,filesize("chat.txt"));
fclose($fp);
$fp=fopen("chat.txt","w+");
$whatToEcho2="» <b>$user</b>:";
$whatToEcho=$whatToEcho2." ".$msg."<br> ".$con;
fwrite($fp,$whatToEcho);
fclose($fp);
} else {
$fp=fopen("chat.txt","r+");
$whatToEcho=fread($fp,filesize("chat.txt"));
fclose($fp); }

$name=str_replace ("<", "<",$_POST['user']);
$name=str_replace ("<", ">",$name);
$msg=str_replace ("<", "<",$_POST['msg']);
$msg=str_replace ("<", ">",$msg);

$msg=$whatToEcho;
$whatToEcho=$msg;
?><?php echo($whatToEcho);
}?>
<hr><br><br>
 

Back
Горе