Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> walidacja adresu email w php
piotrino
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 10.12.2012

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


Witam, mam utworzony formularz w php. Wszystko ładnie chodzi, oprócz sprawdzania walidacji poprawnego wpisywania adresu email...Podaję kod php mojego formularza:
  1. <?php
  2.  
  3. if (count($_POST)) {
  4.  
  5. ////////// USTAWIENIA //////////
  6. $email = 'test@gmail.com'; // Adres e-mail adresata
  7. $subject = 'temat'; // Temat listu
  8. $charset = 'utf-8'; // Strona kodowa
  9. //////////////////////////////
  10.  
  11. $head =
  12. "MIME-Version: 1.0\r\n" .
  13. "Content-Type: text/plain; charset=$charset\r\n" .
  14. "Content-Transfer-Encoding: 8bit";
  15.  
  16.  
  17. $body = '';
  18.  
  19. foreach ($_POST as $name => $value) {
  20. if (is_array($value)) {
  21. for ($i = 0; $i < count($value); $i++) {
  22. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value[$i]) : $value[$i]) . "\r\n";
  23. }
  24. }
  25. else
  26. $body .= "$name=" . (get_magic_quotes_gpc() ? stripslashes($value) : $value) . "\r\n";
  27. }
  28.  
  29. if (mail($email, "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head)) {
  30. $message = 'Wiadomość wysłana pomyślnie';
  31. } else {
  32. $error = 'Błąd wysyłania wiadomości';
  33. }
  34. }
  35.  
  36.  
  37. ?>
  38.  
  39.  
  40. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  41. <html xmlns="http://www.w3.org/1999/xhtml">
  42. <html>
  43. <head>
  44. <meta charset="utf-8" />
  45.  
  46. <!-- Always force latest IE rendering engine (even in intranet) & Chrome Frame
  47. Remove this if you use the .htaccess -->
  48. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
  49.  
  50. <title>strona glowna</title>
  51. <link rel="stylesheet" type="text/css" href="style.css" />
  52. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  53. <script type="text/javascript" src="script.js"></script>
  54.  
  55. </head>
  56.  
  57. <body>
  58. <?php
  59. if (isset($message)) {
  60. echo '<div class="info">' . $message . '</div>';
  61. } else if (isset($error)) {
  62. echo '<div class="error">' . $error. '</div>';
  63. }
  64.  
  65. ?>
  66.  
  67. <div id="runda">
  68. <img src="img/top_bg.gif" alt="top" /><div id="main" class="container">
  69. <h1>Pracownia Projektowa</h1>
  70. <h2>bromboszcz-architekci.pl</h2>
  71.  
  72. <ul id="navigation">
  73. <li><a href="index.html">O firmie</a></li>
  74. <li><a href="oferta.html">Oferta</a></li>
  75. <li><a href="gallery3/index.php">Projekty</a></li>
  76. <li><a href="mapa.html">Dojazd</a></li>
  77. <li><a href="kontakt.php">Kontakt</a></li>
  78. <li><img id="loading" src="img/ajax_load.gif" alt="loading" /></li>
  79. </ul>
  80.  
  81. <div class="clear"></div>
  82.  
  83. <div id="zawartoscstrony"><p class="text">W celu skontaktowania się z nami można także uzupełnic poniższy formularz, skontaktujemy się z państwem najszybciej jak to będzie możliwe. </p>
  84. <br/>
  85.  
  86.  
  87.  
  88. <form id="formularz" action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
  89. <fieldset>
  90. <legend>Formularz</legend>
  91. <label for="imie">Imię i nazwisko:</label>
  92. <div><input type="text" min="3" maxlength="25" required/></div>
  93. <div class="height_10"> </div>
  94.  
  95. <label for="email">Adres e-mail:</label>
  96. <div><input id="email" name="email" type="text" required="required"/></div>
  97. <div class="height_10"> </div>
  98.  
  99. <label for="content">Treść wiadomości:</label>
  100. <div><textarea id="content" cols="20" name="content" rows="5" > </textarea> </div>
  101. <div class="height_10"> </div>
  102.  
  103. <input class="submit" type="submit" value="Wyślij"/>
  104. </fieldset>
  105. </div>
  106.  
  107. </div>
  108. <div class="clear"></div>
  109. <img src="img/bottom_bg.gif" alt="bottom" /></div>
  110.  
  111.  
  112. </div>
  113. </div>
  114. <div align="center" class="stopka">
  115. Copyright by: <a href="http://bromboszcz-architekci.pl" target="_blank">dombroszcz-architekci.pl</a> Pracownia Projektowa</div>
  116. </body>
  117. </html>

W jaki sposób można dodać walidację adresu email do tego formularza php. ? Czy trzeba od nowa przebudować cały plik .php Pozdrawiam serdecznie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Ale Ty kombinujesz, przecież dostałeś wyżej rozwiązanie.


  1. if ( !filter_var($zmienna_z_adresem_email, FILTER_VALIDATE_EMAIL) )
  2. {
  3. die('adres email: '.$zmienna_z_adresem_email.' jest niepoprawny!');
  4. }


dodajesz to do swojego kodu i z glowy, popraw tylko na poprawna zmienną bo nie patrzyłem nawet w kod, więc nie wiem jak u Ciebie się ona zwie.
Go to the top of the page
+Quote Post
piotrino
post
Post #3





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 10.12.2012

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


Cytat(Michael2318 @ 18.03.2013, 22:59:38 ) *
Ale Ty kombinujesz, przecież dostałeś wyżej rozwiązanie.


  1. if ( !filter_var($zmienna_z_adresem_email, FILTER_VALIDATE_EMAIL) )
  2. {
  3. die('adres email: '.$zmienna_z_adresem_email.' jest niepoprawny!');
  4. }


dodajesz to do swojego kodu i z glowy, popraw tylko na poprawna zmienną bo nie patrzyłem nawet w kod, więc nie wiem jak u Ciebie się ona zwie.

Chyba za dużo kombinuję...Hm.. dodałem ten kod do .kontakt.php:
  1. <?php
  2.  
  3.  
  4. if (count($_POST)) {
  5.  
  6. ////////// USTAWIENIA //////////
  7. $email = 'sieciowiec74@gmail.com'; // Adres e-mail adresata
  8. $subject = 'temat'; // Temat listu
  9. $charset = 'utf-8'; // Strona kodowa
  10. //////////////////////////////
  11.  
  12. if ( !filter_var($email, FILTER_VALIDATE_EMAIL) )
  13. {
  14. die('adres email: '.$email.' jest niepoprawny!');
  15. }
  16. $head =
  17. "MIME-Version: 1.0\r\n" .
  18. "Content-Type: text/plain; charset=$charset\r\n" .
  19. "Content-Transfer-Encoding: 8bit";
  20.  

I kod nie działa mi. Po wpisaniu jakiegoś tekstu w pole email, wysyła mi go...Chodzi mi żeby po wpisaniu adresu email w złym formacie, czy bez małpy obok pokazywało się ostrzeżenie że błędny adres mail jest wpisany coś w tym rodzaju..
Jeszcze oprócza kodu w php próbuję w js jak wyżej opisałem....Pozdrawiam serdecznie

P.S Nie wiem czy w dobrym miejscu dodałem ten kod...

Ten post edytował piotrino 18.03.2013, 23:19:34
Go to the top of the page
+Quote Post
sowiq
post
Post #4





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

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


Cytat(piotrino @ 18.03.2013, 23:16:49 ) *
I kod nie działa mi. Po wpisaniu jakiegoś tekstu w pole email, wysyła mi go...

Kolego, ten kod działa idealnie. Problemem tutaj jest programista (IMG:style_emoticons/default/wink.gif) Zwróć uwagę, że kod nie waliduje adresu email wpisanego przez użytkownika, tylko adres podany kilka linijek wyżej, który jest poprawny:
  1. $email = 'sieciowiec74@gmail.com'; // Adres e-mail adresata
  2. // ....
  3. if ( !filter_var($email, FILTER_VALIDATE_EMAIL) )

Go to the top of the page
+Quote Post
piotrino
post
Post #5





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 10.12.2012

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


Cytat(sowiq @ 18.03.2013, 23:43:10 ) *
Kolego, ten kod działa idealnie. Problemem tutaj jest programista (IMG:style_emoticons/default/wink.gif) Zwróć uwagę, że kod nie waliduje adresu email wpisanego przez użytkownika, tylko adres podany kilka linijek wyżej, który jest poprawny:
  1. $email = 'sieciowiec74@gmail.com'; // Adres e-mail adresata
  2. // ....
  3. if ( !filter_var($email, FILTER_VALIDATE_EMAIL) )

Woops , sorki nie zauważyłem, nie zwróciłem uwagi. Masz rację, nie o to mi chodziło, chodzi mi o walidację adresu email wpisywanego przez użytkownika, w razie wpisania złego formatu adresu email, oprócz ostrzeżenia o tym, ale także nie wysyłało mi maila z formularza. Dopiero po poprawnym wpisaniu adresu email może zostać wysłana wiadomość(IMG:style_emoticons/default/exclamation.gif) !

P.S Jednak jak znajdę czas to muszę o wiele wiecej poświęcić czas na naukę php... Niby umiem korygować błędy w kodzie php, ale sam bym nie napisał od początku np. kodu walidującego adres mail...Pozdrawiam

P.S Znalazłem ten oto kod, :
Cytat
if(filter_var('login@example.com', FILTER_VALIDATE_EMAIL))
{
echo 'Adres e-mail poprawny';
}
else
{
echo 'Adres e-mail niepoprawny';
}

Po wpisaniu tego kodu w kontakt.php:
  1. <?php
  2.  
  3. if(filter_var('login@example.com', FILTER_VALIDATE_EMAIL))
  4. {
  5. echo 'Adres e-mail poprawny';
  6. }
  7. else
  8. {
  9. echo 'Adres e-mail niepoprawny';
  10. }
  11.  
  12. if (count($_POST)) {
  13.  
  14. ////////// USTAWIENIA //////////
  15. $email = 'sieciowiec74@gmail.com'; // Adres e-mail adresata
  16. $subject = 'temat'; // Temat listu
  17. $charset = 'utf-8'; // Strona kodowa
  18. //////////////////////////////
  19.  
  20. $head =
  21. "MIME-Version: 1.0\r\n" .
  22. "Content-Type: text/plain; chars
i probie wysłania wiadomości ze złym formatem emaila dostaję komunikat
Cytat
adres mail poprawny // wiadomość została wysłana
Ręce mi opadają. Kombinuję na wszystkie sposoby... Chodzi mi zeby mi nie wysyłało wiadomości z nie poprawnym adresem mailowym, po uprzednim pokazaniu komunikatu o "niepoprawnym addresie mailowym"....Ok , na dziś dam sobie spokój, od jutra walka na nowo...

Ten post edytował piotrino 19.03.2013, 02:27:26
Go to the top of the page
+Quote Post

Posty w temacie
- piotrino   walidacja adresu email w php   18.03.2013, 12:33:02
- - Gligamesh   [PHP] pobierz, plaintext preg_match('/^([...   18.03.2013, 13:04:41
- - viking   Kod{2,6} jak już. Najlepiej poszukaj gotowej klas ...   18.03.2013, 13:31:41
- - !*!   @up jaka końcówka ma 6 znaków? Pomijając to że wyr...   18.03.2013, 13:33:30
|- - sazian   Cytat(!*! @ 18.03.2013, 13:33...   18.03.2013, 18:07:32
|- - sowiq   Cytat(!*! @ 18.03.2013, 13:33...   18.03.2013, 19:40:20
||- - piotrino   Więc tak, znalazłem rozwiązanie walidacji przez ja...   18.03.2013, 22:55:31
|- - Gligamesh   CytatTo include .museum, you could use ^[A-Z0-9._%...   18.03.2013, 23:24:23
- - Greg0   Jest jeszcze taka funkcja [PHP] pobierz, plaintext...   18.03.2013, 17:38:07
|- - piotrino   Cytat(Greg0 @ 18.03.2013, 17:38:07 ) ...   18.03.2013, 19:34:08
- - adamantd   [PHP] pobierz, plaintext preg_match("/^[w...   18.03.2013, 17:41:19
- - Michael2318   Ale Ty kombinujesz, przecież dostałeś wyżej rozwią...   18.03.2013, 22:59:38
|- - piotrino   Cytat(Michael2318 @ 18.03.2013, 22:59...   18.03.2013, 23:16:49
|- - sowiq   Cytat(piotrino @ 18.03.2013, 23:16:49...   18.03.2013, 23:43:10
|- - piotrino   Cytat(sowiq @ 18.03.2013, 23:43:10 ) ...   19.03.2013, 00:17:59
- - adamantd   Najprostszy z możliwych sposobów wytłumaczenia Ci ...   18.03.2013, 23:32:53
- - sowiq   Kolego, cieszę się, że próbujesz mimo wszystko. Ta...   19.03.2013, 10:18:48
|- - piotrino   Cytat(sowiq @ 19.03.2013, 10:18:48 ) ...   19.03.2013, 19:31:02
- - Greg0   Jeśli masz funkcję sprawdzającą e-mail to musisz d...   19.03.2013, 18:59:35
- - Greg0   Zapoznaj się z działaniem POSTa i podstawową obsłu...   19.03.2013, 19:43:24
|- - piotrino   Cytat(Greg0 @ 19.03.2013, 19:43:24 ) ...   19.03.2013, 20:19:34
- - sowiq   To może jeszcze raz, po kolei i wolniej. Zwróć uwa...   20.03.2013, 01:02:49
|- - piotrino   Cytat(sowiq @ 20.03.2013, 01:02:49 ) ...   20.03.2013, 20:57:31
- - sowiq   CytatI tu jako email nadawcy wpisuje identyfikator...   20.03.2013, 23:16:21
- - piotrino   Cytat(sowiq @ 20.03.2013, 23:16:21 ) ...   20.03.2013, 23:39:15


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

 



RSS Aktualny czas: 9.10.2025 - 16:19