Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [PHP]Formularz kontaktowy
joel-1
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


Witam!
Mam stronę internetową z formularzem PHP, i dowiedziałem się że można w takim formularzu dodatkowo dodać zabezpieczenie żeby podany e-mail miał poprawną formę. Bardzo proszę o pomoc.
Z góry dzięki za odpowiedź!
  1. <?php
  2. // sprawdzamy, czy zmienna $submit jest pusta
  3. if (empty($_POST['submit'])) {
  4. // wyświetlamy formularz
  5. echo "
  6.  
  7. <form method=\"post\">
  8.  
  9. <small>Treść wiadomości<b style=\"color: #FF6600\">*</b>:</small><br />
  10. <textarea name=\"tresc\" class=\"form\" style=\"height: 100px;\"></textarea>
  11. <br /><br />
  12.  
  13. <small>Imię i nazwisko<b style=\"color: #FF6600\">*</b>:</small><br />
  14. <input type=\"text\" name=\"imie\" class=\"form2\">
  15. <br /><br />
  16. <small>Nazwa firmy:</small><br />
  17. <input type=\"text\" name=\"firma\" class=\"form2\">
  18. <br /><br />
  19. <small>Adres e-mail<b style=\"color: #FF6600\">*</b>:</small><br />
  20. <input type=\"text\" name=\"email\" class=\"form2\">
  21. <br /><br />
  22. <small>Numer telefonu:</small><br />
  23. <input type=\"text\" name=\"telefon\" class=\"form2\">
  24. <br /><br />
  25. <small>Miejscowość:</small><br />
  26. <input type=\"text\" name=\"miejscowosc\" class=\"form2\">
  27. <br /><br />
  28. <input type=\"submit\" name=\"submit\" value=\"Wyślij\" class=\"form3\" style=\"width: 50px;\">&nbsp;
  29. <input type=\"reset\" value=\"Wyczyść\" class=\"form3\" style=\"width: 70px;\">
  30.  
  31.  
  32. </td></form>
  33. ";
  34. }
  35. // sprawdzamy, czy zmienne przesłane z formularza nie są puste
  36. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email']) ) {
  37. // jeżeli powyższy warunek jest spełniony tworzona jest wiadomość
  38. // zmienna $message zawiera treść wiadomości
  39. $message = "Treść wiadomości:\n$_POST[tresc]\nImie i Nazwisko: $_POST[imie]\nNazwa firmy: $_POST[firma]\nNumer Telefonu:\ $_POST[telefon]\nMiejscowość: $_POST[miejscowosc]\nAdres e-mail: $_POST[email]";
  40. // zmienna $header zawiera przede wszystkim adres zwrotny
  41. $header = "From: $_POST[imie] <$_POST[email]>";
  42. // funkcja mail() za pomocą której wiadomość zostanie wysłana
  43. @mail("podany e-mail","Wiadomosc ze strony WWW","$message","$header")
  44. or die('Wystąpił błąd! Nie udało się wysłać wiadomości');
  45. // wyświetlenie komunikatu w przypadku powodzenia
  46. echo "<div style=\"color: #595959; text-align: left;\">Dziękujemy!<br /><br /> Wiadomość została wysłana poprawnie. <br /><br />
  47. <a href=\"kontakt.php\" class=\"katalog_wybrane\">Kliknij, aby wysłać kolejną wiadomość</a>
  48.  
  49.  
  50. </div>";
  51. }
  52. // lub w przypadku nie wypełnienia formularza do końca
  53. else echo "
  54. <span style=\"color: #f25a11; text-align: center;\">Aby wiadomość mogła zostać wysłana, prosimy wypełnić wszystkie pola oznaczone gwiazdką.</span><br /><br /><br />
  55.  
  56.  
  57. <form method=\"post\">
  58.  
  59. <small>Treść wiadomości<b style=\"color: #FF6600\">*</b>:</small><br />
  60. <textarea name=\"tresc\" class=\"form\" style=\"height: 200px;\"></textarea>
  61. <br /><br />
  62.  
  63. <small>Imię i nazwisko<b style=\"color: #FF6600\">*</b>:</small><br />
  64. <input type=\"text\" name=\"imie\" class=\"form2\">
  65. <br /><br />
  66. <small>Nazwa firmy:</small><br />
  67. <input type=\"text\" name=\"firma\" class=\"form2\">
  68. <br /><br />
  69. <small>Adres e-mail<b style=\"color: #FF6600\">*</b>:</small><br />
  70. <input type=\"text\" name=\"email\" class=\"form2\">
  71. <br /><br />
  72. <small>Numer telefonu:</small><br />
  73. <input type=\"text\" name=\"telefon\" class=\"form2\">
  74. <br /><br />
  75. <small>Miejscowość:</small><br />
  76. <input type=\"text\" name=\"miejscowosc\" class=\"form2\">
  77. <br /><br />
  78. <input type=\"submit\" name=\"submit\" value=\"Wyślij\" class=\"form3\" style=\"width: 50px;\">&nbsp;
  79. <input type=\"reset\" value=\"Wyczyść\" class=\"form3\" style=\"width: 70px\"></td></form>";?>

Go to the top of the page
+Quote Post
Wicepsik
post
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


http://www.google.pl/search?hl=pl&safe...q=&gs_rfai=
Go to the top of the page
+Quote Post
joel-1
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


Ten kod to znalazłem już wcześniej tylko że nie wiem w którym miejscu w formularzu trzeba go umieścić.
Jakbyś mógł napisać to byłbym wdzięczny.
Go to the top of the page
+Quote Post
bastard13
post
Post #4





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


To jest taka w miarę prosta walidacja, ale do większości celów wystarcza:
  1. preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,7})$/i",podany_email);

Jeżeli chcesz coś lepszego, to tutaj masz naprawdę dobry artykuł:
http://wortal.php.pl/phppl/wortal/artykuly...su_e_mail_w_php

Co do walidacji za pomocą preg_match to nigdy nie jest idealna, ponieważ w rzeczywistości adres mail może być czasami naprawdę przekombinowany. Tutaj masz dokument nt. standardów:
http://www.faqs.org/rfcs/rfc2822.html
Go to the top of the page
+Quote Post
joel-1
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


A mógłbyś to wkleić do formularza tego co dałem, bo ja jestem zupełnie laik pod względem PHP.
Go to the top of the page
+Quote Post
bastard13
post
Post #6





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Preg_match zwraca 1 jeżeli zmienna pasuje do wyrażenia, a 0 jeżeli nie. Wrzuć to do if'a i masz coś takiego:
  1. if(preg_match(wzorzec, zmienna_do_sprawdzenia))
  2. { //instrukcje, które mają być wykonane jeżeli zmienna_do_sprawdzenia jest ok
  3. }
  4. else
  5. echo 'Zmienna jest błędna';
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Witam!
Mam stronę internetową z formularzem PHP, i dowiedziałem się że można w takim formularzu dodatkowo dodać zabezpieczenie żeby podany e-mail miał poprawną formę. Bardzo proszę o pomoc.

filter_var
Go to the top of the page
+Quote Post
joel-1
post
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


Możecie ten kod wkleić do tego formularza co ja dałem bo ja w ogóle nie wiem gdzie trzeba to wkleić.
Proszę (IMG:style_emoticons/default/sadsmiley02.gif)

Ten post edytował joel-1 19.06.2010, 13:45:05
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A zajrzałeś do manuala na stronę funkcji, do której zalinkowałem?
Go to the top of the page
+Quote Post
joel-1
post
Post #10





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


Tak, patrzyłem tylko że nic z niego nie rozumie. Dla Was wszystkich to pewnie jest to oczywiste jak to zrobić, więc bardzo jeszcze raz proszę aby ktoś ten kod PHP co ja dodałem skopiował i dodał w odpowiednim miejscu w nim tą funkcję aby sprawdzał e-mail.
Go to the top of the page
+Quote Post
bastard13
post
Post #11





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Jeżeli piszesz to dla siebie, to naprawdę warto się wysilić, żeby chociaż trochę zrozumieć zagadnienie. Jeśli piszesz to dla kogoś, to tym bardziej powinieneś się trochę z tym zaznajomić. Po trzecie, jeżeli to ty pisałeś kod, który wrzuciłeś na początku, to nie powinieneś mieć problemu z dodaniem if'a, ale żeby było ci prościej:
  1. if($_POST) //jeżeli został wysłany post
  2. { if(//pola $_POST nie puste)
  3. { if(//adres mail dobry)
  4. { if(//wyślij mail i mail wysłany poprawnie)
  5. { echo 'wszystko poszło ok';
  6. }
  7. else //nie wysłano maila
  8. }
  9. else //zły adres
  10. }
  11. else //nie wypełnione pola
  12. }
  13. //jeżeli nie zostały wysłane dane bądź dane niepoprawne
  14. //wyświetl formularz
Go to the top of the page
+Quote Post
joel-1
post
Post #12





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


Ja tego nie pisałem tylko wynająłem informatyka, teraz chce właśnie takie coś dodać. Ale jeszcze raz proszę aby ktoś ten kod dodał na forum, ten mój z dodanym kodem który trzeba zamieścić, i żeby ten kod który trzeba dodać był uzupełniony do końca.
Jeszcze raz proszę!
Go to the top of the page
+Quote Post
bastard13
post
Post #13





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


zamiast:
  1. @mail("podany e-mail","Wiadomosc ze strony WWW","$message","$header")
  2. or die('Wystąpił błąd! Nie udało się wysłać wiadomości');
  3. // wyświetlenie komunikatu w przypadku powodzenia
  4. echo "<div style=\"color: #595959; text-align: left;\">Dziękujemy!<br /><br /> Wiadomość została wysłana poprawnie. <br /><br />
  5. <a href=\"kontakt.php\" class=\"katalog_wybrane\">Kliknij, aby wysłać kolejną wiadomość</a>
  6. </div>";

powinno być:
  1. if(preg_match("/^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,7})$/i","podany_email"))
  2. { @mail("podany e-mail","Wiadomosc ze strony WWW","$message","$header")
  3. or die('Wystąpił błąd! Nie udało się wysłać wiadomości');
  4. // wyświetlenie komunikatu w przypadku powodzenia
  5. echo "<div style=\"color: #595959; text-align: left;\">Dziękujemy!<br /><br /> Wiadomość została wysłana poprawnie. <br /><br />
  6. <a href=\"kontakt.php\" class=\"katalog_wybrane\">Kliknij, aby wysłać kolejną wiadomość</a>
  7. </div>";
  8. }
  9. else echo 'Zły mail.';
Go to the top of the page
+Quote Post
joel-1
post
Post #14





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


Bardzo ci dziękuje. A wiesz jak zrobić tak żeby ten tekst "zła wiadomość" wyświetlał się nad formularzem, tak jak jest w przypadku informacji o nie uzupełnionych polach formularzu? Bo ta wiadomość wyłącza formularz i się pokazuje wtedy ten tekst.
Go to the top of the page
+Quote Post
bastard13
post
Post #15





Grupa: Zarejestrowani
Postów: 664
Pomógł: 169
Dołączył: 8.01.2010
Skąd: Kraków

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


Tak, wiem. Tylko, że pomoc pomocą, a przerabianie skryptu to już "odrobinę" coś innego.
Go to the top of the page
+Quote Post
joel-1
post
Post #16





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 19.06.2010

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


Aha dobrze. I tak bardzo dziękuje za pomoc.
Go to the top of the page
+Quote Post
yevaud
post
Post #17





Grupa: Zarejestrowani
Postów: 471
Pomógł: 89
Dołączył: 29.07.2008
Skąd: Warszawa

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


moze po prostu dogadaj sie z bastardem na przerobienie skryptu za niewielka oplata i po krzyku
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #18





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@joel-1
To jest forum dla programistów. Programista to ktoś, kto widząc problem, stara się znaleźć rozwiązanie. Czasami trwa to krótko, czasami długo. Jak już sobie programista nie radzi, to szuka pomocy w wyszukiwarce internetowej (np. w google), na forum w jego wyszukiwarce i w końcu - wśród innych programistów, którzy być może wcześniej podobny problem rozwiązali. Ty natomiast reprezentujesz ludzi, którzy zamiast zapłacić komuś za rozwiązanie problemu, chcą z forum zrobić darmowy helpdesk.
Zakładam jednak Twoją dobrą wolę, i wierze, że chcesz zostać programistą. Zacznij więc zachowywać się jak programista.

Pozdrawiam.

P.S Zamykam
Powód edycji: [Cysiaczek]:
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 18:09