Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]newsletter
Forum PHP.pl > Forum > Przedszkole
pkania128
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?

  1. function sendmail($mail,$first) {
  2. $res = mysql_query("SELECT token FROM wpisy where mail = \"".$mail."\" ");
  3. $token = mysql_result($res,0);
  4.  
  5. $msgBody = "Aby potwierdzic‡ kliknij w ponizszy link:
  6. http://..../zaproszenie.php?token=$token
  7. ";
  8. $msgBody.="Prosimy nie odpowiadac‡ na ta wiadomosc, zostala wygenerowana automatycznie";
  9. $msgBody = wordwrap($msgBody, 70);
  10. $headers['From'] = 'newsletter@.....';
  11. $headers['To'] = $mail;
  12. $headers['Subject'] = ".....";
  13. $headers['Content-type'] = "text/plain; charset=utf-8";
  14.  
  15. $params = array(
  16. "host"=>"......pl",
  17. "port"=>25,
  18. "auth"=>true,
  19. "username"=>"newsletter@.......pl",
  20. "password"=>"........",
  21. );
  22.  
  23.  
  24. $mail_object =& Mail::factory('smtp', $params);
  25. $mail_object->send($mail, $headers, $msgBody);
  26.  
  27. if (PEAR::isError($mail_object)) {
  28. die($mail_object->getMessage());
  29. }
  30. else {
  31. echo "<hr><br>info wlasnie zostalo przeslane na Twoj mail, odbierz go!";
  32. if ($first ===false)
  33. echo " ponownie";
  34. echo ".";
  35. }
  36.  
  37. }
  38.  
  39. if (!isset($_POST['mail'])){
  40. echo ("Brak maila!");
  41. }
  42. $normal = "^[a-z0-9_\+-]+(\.[a-z0-9_\+-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*\.([a-z]{2,4})$";
  43. if (!eregi($normal, $_POST['mail'])) {
  44. echo("Niepoprawny adres email");
  45. exit;
  46. }
  47. $mail = $_POST['mail'];
  48. if ($_POST['akcja']=='add')
  49. $akcja = 'add';
  50. else if ($_POST['akcja']=='del')
  51. $akcja = 'del';
  52. else{
  53. echo ("blad");
  54. }
  55.  
  56. $sql = mysql_connect( '..........pl' , '.......' , '........' );
  57. mysql_select_db( '........' );
  58.  
  59.  
  60. if ($akcja == 'del') {
  61. $res = mysql_query("DELETE FROM wpisy WHERE mail='".$mail."'");
  62. if (mysql_affected_rows($sql)=='1') {
  63. echo ("wpis usunieto");
  64. }
  65. else {
  66. echo ("Brak wpisu w bazie");
  67. }
  68. }
  69.  
  70. if ($akcja == 'add') {
  71. $token = sha1(time());
  72. ......
  73. $res = @mysql_query("INSERT INTO wpisy(mail,token,.....) VALUES (\"".$mail."\", \"".$token."\",.... ");
  74. if ($res) {
  75. sendmail($mail,true);
  76. }
  77. else {
  78. $res = mysql_query("SELECT potwierdzony FROM wpisy where mail = \"".$mail."\" ");
  79. $potw = mysql_result($res,0);
  80. if ($potw == "t") {
  81. echo("mail juz istnieje w bazie i jest powierdzony");
  82. }
  83. else if ($potw == "n") {
  84. sendmail($mail,false);
  85. }
  86. }
  87. }



black.old.cat
Usun linie: 83, 84, 85, 86, 87, 89.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.