Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: subskrypcja poprzez mail
Forum PHP.pl > Forum > PHP
ojs
Witam, mam problem zmodyfikowałem sobie plik dodawania komentarzy na taki który zapisuje maile do pliku i oddziela je przecinkami aby można było wkleić do programu pocztowego i wysłać wiadomość do wielu użytkowników. W tym problem że zamiast maila można podać dowolny ciąg znaków sadsmiley02.gif . Chodzi mi o dodanie takich założeń aby w podanym tekście musiały wystąpić:
1X znak "@"
1X znak "."

W przeciwnym wypadku ma nie dopisywać do pliku txt (bo do takiego zapisuje) i wyświetlić stosowny komunikat.
Poniżej dodaje skrypt php wykonujący poprzednie polecenia:
  1. <?php
  2.  
  3.  
  4. $mail = $_POST['mail'];
  5.  
  6.  
  7. $mail = HTMLSpecialChars($mail);
  8.  
  9. $wynik =$mail.', ';
  10. $plik ="listamaili.txt";
  11. $fp = fopen($plik, "a");
  12. fwrite ($fp, $wynik);
  13. fclose($fp);
  14.  
  15. echo '<font color="green"><b>zapis - OK</b><br></font>';
  16.  
  17. ?>

Z góry dziękuję za odpowiedzi snitch.gif
Pozdrawiam, ojs
webdice
5 sekund na google, http://www.google.pl/search?hl=pl&q=ph...+Google&lr=
ojs
Dziękuję smile.gif pytanie jeszcze jedno, zmodyfikowałem ten plik poprzez dodanie funkcjii z tej strony:
http://webmade.org/porady/weryfikacja-adresu-e-mail-php.php
i wygląda teraz tak:
  1. <?php
  2. function ValidEmail($email) {
  3.  if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)) {
  4. return false;
  5.  }
  6.  return true;
  7. }
  8.  
  9. $mail = $_POST['mail'];
  10.  
  11.  
  12. $mail = HTMLSpecialChars($mail);
  13.  
  14. $wynik =$mail.', ';
  15. $plik ="listamaili.txt";
  16. $fp = fopen($plik, "a");
  17. fwrite ($fp, $wynik);
  18. fclose($fp);
  19.  
  20. if (ValidEmail($email)) echo "Poprawny adres e-mail"; 
  21. else echo "Nie poprawy adres e-mail";
  22.  
  23. ?>

Jest wszystko w porządku? Wybaczcie, ale dopiero raczkuje w php sad.gif
Lonas
Czy jest w porzadku to przecież możesz sam sprawdzic.. smile.gif

ale.. z tego co widze najpierw zapisujesz do pliku a potem sobie robisz walidacje maila.. smile.gif
ojs
Ale mi chodzi o to że zanim dopisze do pliku to ma sprawdzić smile.gif co mi z tego przyjdzie ze zapisze do pliku i wyświetli błąd? smile.gif
Lonas
  1. <?php
  2. function ValidEmail($email) {
  3.  if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email)) {
  4. return false;
  5.  }
  6.  return true;
  7. }
  8.  
  9. $mail = HTMLSpecialChars($_POST['mail']);
  10.  
  11. if (ValidEmail($email))
  12. {
  13. $wynik =$mail.', '; 
  14. $plik ="listamaili.txt";
  15. $fp = fopen($plik, "a");
  16. fwrite ($fp, $wynik);
  17. fclose($fp);
  18. }
  19. else
  20. echo'Nie poprawny email';
  21. ?>
ojs
Lonas, działa (musiałem tylko nazwy zmiennych pozmieniać $email na $mail) smile.gif dziękuję. Mam jeszcze taki problem, co do skryptu dopisać aby sprawdzał czy mail już jest w spisie maili, i jeśli jest to niech wyrzuci odpowiednią informację  smile.gif  maile są odseparowane w ten sposób:
', '
Pozdrawiam smile.gif
Lonas
Musisz dolozyc jeszcze jednego if-a smile.gif

  1. <?php
  2. function ValidEmail($email) 
  3. {
  4. if (!eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$" , $email))
  5. return false;
  6. else
  7. return true;
  8. }
  9.  
  10. $mail = HTMLSpecialChars($_POST['mail']);
  11.  
  12. if (ValidEmail($email))
  13. {
  14. $wynik =$mail.', ';
  15. $plik ="listamaili.txt";
  16. $fp = fopen($plik, "r+");
  17.  
  18. $zaladowany_plik = file_get_contents($plik);
  19. $maile_z_pliku = explode(",",$zaladowany_plik);
  20.  
  21. if(array_search($mail, $maile_z_pliku)
  22. echo'znaleziono mail';
  23. else
  24. fwrite ($fp, $wynik);
  25.  
  26. fclose($fp);
  27. }
  28. else
  29. echo'Nie poprawny email';
  30. ?>
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.