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');
$zapytanie = "SELECT * FROM `kontakt` WHERE `id`='1'";
{
}
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++)
{
}
$_SESSION['liczba']=$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
{
$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>'; }
?>
Proszę o pomoc.
Z góry dziękuje (IMG:
style_emoticons/default/smile.gif)
PS. Z ciastkiem się chyba udało. (IMG:
style_emoticons/default/smile.gif) Proszę o sprawdzenie.