Witam wszystkich. Zabrałem się za zabezpieczenie formularza kontaktowego na swojej stronie(przed ostatnia rzecz do zrobienie na własnej stronie) i mam problem jak zwykle z sesjami oraz ciastkami. A tego trzeba tutaj użyć. Chciałbym prosić wszystkich użytkowników o pomoc w tym skrypcie. Mam już wszystko napisane, ale chcę to zabezpieczyć. Po pierwsze chcę zrobić przepisywanie pierwszej i ostatnie cyfry z kodu wylosowanego, a po drugie chcę po wysłaniu jednej wiadomości dodać ciastko na 10 minut, żeby nie otrzymywać niepotrzebnego spamu. I napisałem coś takiego(pokaże cały kod)
kontakt.php
<?php
include('functions/bbc.php');
include('include/db.php');
echo '<h2>Kontakt</h2>';
$zapytanie = "SELECT * FROM `kontakt` WHERE `id`='1'";
$idzapytania = mysql_query($zapytanie);
while ($wiersz = mysql_fetch_array($idzapytania))
{
echo ''.stripslashes(bbc($wiersz['tresc'])).'<br />';
}
if(!isset($_COOKIE['kontakt']))
{
if(isset($_POST['tresc']))
{
echo '<div align="center"><form action="/kontakt.html" method="post"><br />
Nick:<br /><input type="text" name="nick" value="'.$_POST['nick'].'" /><br />
Twój email:<br /><input type="text" name="email" value="'.$_POST['email'].'" /><br />
Temat:<br /><input type="text" name="temat" value="'.$_POST['temat'].'" /><br />
Treść:<br /><textarea name="tresc" cols="30" rows="10">'.$_POST['tresc'].'</textarea><br />
Przepisz pierwszą i ostatnią liczbe:<br />';
echo $_SESSION['liczba'];
echo '<br /><input type="text" name="liczba" /><br /><br />
<input class="przycisk_kontakt" name="wyslij" type="submit" value="Wyślij" />
<input class="przycisk_kontakt" name="wyczysc" type="reset" value="Wyczyść" /></form><br /><br /></div>';
}
else
{
echo '<div align="center"><form action="/kontakt.html" method="post"><br />
Nick:<br /><input type="text" name="nick" /><br />
Twój email:<br /><input type="text" name="email" /><br />
Temat:<br /><input type="text" name="temat" /><br />
Treść:<br /><textarea name="tresc" cols="30" rows="10"></textarea><br />';
echo 'Przepisz pierwszą i ostatnią liczbe:<br />';
$kod='';
for($i=0;$i<3;$i++)
{
$kod.=rand(0,9);
}
$_SESSION['liczba']=$kod;
echo $kod;
$pomoc = $kod[0].$kod[2];
echo '<br /><input type="text" name="liczba" /><br /><br />
<input class="przycisk_kontakt" name="wyslij" type="submit" value="Wyślij" />
<input class="przycisk_kontakt" name="wyczysc" type="reset" value="Wyczyść" /></form><br /><br /></div>';
}
if(isset($_POST['wyslij']))
{
if(empty($_POST['nick']) or empty($_POST['email']) or empty($_POST['temat']) or empty($_POST['tresc']) or empty($_POST['liczba']))
{
echo '<div align="center"><font color="red"><b>Wypełnij wszystkie pola formularza!</b></font></div><br />';
}
elseif(!$_POST["email"] || !preg_match("/^[-0-9a-zA-Z_\.]+@([-0-9a-zA-Z_\.]+\.)+([0-9a-zA-Z]){2,4}$/i", $_POST["email"]))
{
echo '<div align="center"><font color="red"><b>Podany email jest nieprawidłowy!</b></font></div><br />';
}
elseif($_SESSION['liczba']!=$kod)
{
echo '<div align="center"><font color="red"><b>Podany kod jest nieprawidłowy!</b></font></div><br />';
}
else
{
setcookie("kontakt", 1, time()+10*60);
$message = 'Nick: '.$_POST['nick'].'<br /> email: '.$_POST['email'].'<br /> Temat: '.$_POST['temat'].'<br /> Treść: '.$_POST['tresc'].'';
$naglowki = 'From: '.$_POST['nick'].''.PHP_EOL.'Reply-To: '.$_POST['nick'].''.PHP_EOL.'Content-type: text/html; charset=utf-8';
mail('nansss@nportfolio.pl', 'Wiadomość ze strony WWW', $message, $naglowki);
echo '<div align="center"><font color="green"><b>Wiadomość została wysłana poprawnie!</b></font></div><meta http-equiv="Refresh" content="3; url=/kontakt.html" /><br />';
}
}
}
else
{
echo '<div align="center"><font color="green"><br /><b>Nie można wysłać ponownie wiadomości. Prosimy spróbować za 10 minut.</b></font></div>';
}
mysql_close($connect);
?>
Proszę o pomoc.
Z góry dziękuje :)