mam taki kod, dziala to tak:
wpisuje sie mail w formularz, strona wysyla maila z prosba o jego potwierdzenie i wszystko dziala
jest tu mechanizm "zabezpieczajacy" przed wpisaniem 2 razy tego samego maila, czy mozna to zabezpieczenie uzunac tak aby mozna bylo wpisac do bazy kilka razy ten sam mail?
function sendmail($mail,$first) {
$res = mysql_query("SELECT token FROM wpisy where mail = \"".$mail."\" ");
$msgBody = "Aby potwierdzic‡ kliknij w ponizszy link:
http://..../zaproszenie.php?token=$token
";
$msgBody.="Prosimy nie odpowiadac‡ na ta wiadomosc, zostala wygenerowana automatycznie";
$headers['From'] = 'newsletter@.....';
$headers['To'] = $mail;
$headers['Subject'] = ".....";
$headers['Content-type'] = "text/plain; charset=utf-8";
"host"=>"......pl",
"port"=>25,
"auth"=>true,
"username"=>"newsletter@.......pl",
"password"=>"........",
);
$mail_object =& Mail::factory('smtp', $params); $mail_object->send($mail, $headers, $msgBody);
if (PEAR::isError($mail_object)) {
die($mail_object->getMessage()); }
else {
echo "<hr><br>info wlasnie zostalo przeslane na Twoj mail, odbierz go!"; if ($first ===false)
}
}
if (!isset($_POST['mail'])){ }
$normal = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$";
if (!eregi($normal, $_POST['mail'])) { echo("Niepoprawny adres email"); }
$mail = $_POST['mail'];
if ($_POST['akcja']=='add')
$akcja = 'add';
else if ($_POST['akcja']=='del')
$akcja = 'del';
else{
}
if ($akcja == 'del') {
$res = mysql_query("DELETE FROM wpisy WHERE mail='".$mail."'"); }
else {
echo ("Brak wpisu w bazie"); }
}
if ($akcja == 'add') {
......
$res = @mysql_query("INSERT INTO wpisy(mail,token,.....) VALUES (\"".$mail."\", \"".$token."\",.... "); if ($res) {
sendmail($mail,true);
}
else {
$res = mysql_query("SELECT potwierdzony FROM wpisy where mail = \"".$mail."\" "); if ($potw == "t") {
echo("mail juz istnieje w bazie i jest powierdzony"); }
else if ($potw == "n") {
sendmail($mail,false);
}
}
}