Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> PHP zapis emaila
jakub333
post 22.09.2011, 18:40:47
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.09.2011

Ostrzeżenie: (0%)
-----


więc tak mam takie coś
  1. <?php
  2. print '<table border="1" width="100%" align="center">';
  3. print '<tr>';
  4. print '<td bgcolor="teal">';
  5. print '<p align="center">PODAJ SWOJ E-MAIL</p>';
  6. print '</td>';
  7. print '<td bgcolor="gold" align="center">';
  8. function walidacja_email($email)
  9.  
  10. {
  11. if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
  12. {
  13. echo '<font color="red"> wprowadzony adres email jest niepoprawny</font>';
  14. }
  15. else echo '<font color="green">wprowadziłeś poprawny adres email</font>';
  16. }
  17.  
  18.  
  19. $email = $_POST ["email"];
  20. echo <<<KOD
  21.  
  22. <form name="formularz" action="index.php" method="post">
  23.   <input type"text" name="email" value="$email" />
  24.   <input type="submit" value="Zapisz" />
  25. </form>
  26. KOD;
  27. if ($email) walidacja_email($email);
  28.  
  29. {
  30. $plik = fopen ("email.txt","a");
  31. fputs ($plik, "$email ").'';
  32. fclose ($plik);
  33. }
  34. print '</td>';
  35. print '</tr>';
  36. print '</table>';
  37. print '</form>';
  38. ?>

i tu moja pośba skrypt ma zapisywać tylko kiedy email jest poprawny a zapisuje nawet jak nie jest co mam z tym zrobić ? z góry dziękuje

Ten post edytował jakub333 22.09.2011, 18:45:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
Ziem
post 22.09.2011, 18:48:57
Post #2





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


Cytat(jakub333 @ 22.09.2011, 19:40:47 ) *
  1. if ($email) walidacja_email($email);

Zwracaj z funkcji walidacja_email true (w przypadku poprawnego maila) i false (w przeciwnym wypadku) i wtedy robisz tak:
  1. if(walidacja_email($email))
  2. ...
Go to the top of the page
+Quote Post
jakub333
post 22.09.2011, 18:57:26
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.09.2011

Ostrzeżenie: (0%)
-----


nie wiem czy robię coś źle bo dalej nie działa tak jak powinno
Go to the top of the page
+Quote Post
Ziem
post 22.09.2011, 19:02:46
Post #4





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. print '<table border="1" width="100%" align="center">';
  3. print '<tr>';
  4. print '<td bgcolor="teal">';
  5. print '<p align="center">PODAJ SWOJ E-MAIL</p>';
  6. print '</td>';
  7. print '<td bgcolor="gold" align="center">';
  8. function walidacja_email($email)
  9. {
  10. if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
  11. {
  12. return false;
  13.  
  14. }
  15. else return true;
  16. }
  17.  
  18.  
  19. $email = $_POST ["email"];
  20. echo <<<KOD
  21.  
  22. <form name="formularz" action="index.php" method="post">
  23.   <input type"text" name="email" value="$email" />
  24.   <input type="submit" value="Zapisz" />
  25. </form>
  26. KOD;
  27. if (walidacja_email($email))
  28. {
  29. echo '<font color="green">wprowadziłeś poprawny adres email</font>';
  30. $plik = fopen ("email.txt","a");
  31. fputs ($plik, "$email ").'';
  32. fclose ($plik);
  33. }
  34. else
  35. {
  36. echo '<font color="red"> wprowadzony adres email jest niepoprawny</font>';
  37. }
  38. print '</td>';
  39. print '</tr>';
  40. print '</table>';
  41. print '</form>';
  42. ?>

Powinno działać.
Go to the top of the page
+Quote Post
jakub333
post 22.09.2011, 19:05:30
Post #5





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 22.09.2011

Ostrzeżenie: (0%)
-----


niestety nie "Parse error: syntax error, unexpected $end in D:\httpd\index.php on line 44"
Go to the top of the page
+Quote Post
Ziem
post 22.09.2011, 19:32:26
Post #6





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 29.10.2008

Ostrzeżenie: (0%)
-----


  1. <?php
  2. print '<table border="1" width="100%" align="center">';
  3. print '<tr>';
  4. print '<td bgcolor="teal">';
  5. print '<p align="center">PODAJ SWOJ E-MAIL</p>';
  6. print '</td>';
  7. print '<td bgcolor="gold" align="center">';
  8. function walidacja_email($email)
  9. {
  10. if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$", $email))
  11. {
  12. return false;
  13.  
  14. }
  15. else return true;
  16. }
  17.  
  18.  
  19. $email = $_POST ["email"];
  20. echo '<form name="formularz" action="test2.php" method="post">
  21. <input type"text" name="email" value="$email" />
  22. <input type="submit" value="Zapisz" />
  23. </form>';
  24. if (walidacja_email($email))
  25. {
  26. echo '<font color="green">wprowadziłeś poprawny adres email</font>';
  27. $plik = fopen ("email.txt","a");
  28. fputs ($plik, "$email ").'';
  29. fclose ($plik);
  30. }
  31. else
  32. {
  33. echo '<font color="red"> wprowadzony adres email jest niepoprawny</font>';
  34. }
  35. print '</td>';
  36. print '</tr>';
  37. print '</table>';
  38. print '</form>';
  39. ?>
Go to the top of the page
+Quote Post
klocu
post 22.09.2011, 19:33:33
Post #7





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


No to dziwne bo u mnie działa.

Ale do rzeczy, zawsze jak widzę taki sajgon to strasznie się złoszczę.
Uporządkuj to, mimo że to kod strukturalny. Wszystkie funkcje w jedno miejsce, reszta w drugie.

Co do kodu:
Sprawdzaj czy otrzymujesz jakiekolwiek dane od użytkownika - bo przepisujesz na ślepo dane z POST'a do zmiennej, potem te dane walidujesz. Ale po co jak nic w takiej zmiennej może nie być.
Po drugie czytamy dokumentację - eregi jest funkcją zdeprecjonowaną - używamy do tego preg_match. (zakładając, że mówimy o testach na najnowszej wersji parsera)

I w HTMLu znaczniki zamykamy od najpóźniej występującego, a nie jak nam się podoba. wink.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:43