Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jquery formularz kontaktowy?
Forum PHP.pl > Forum > XML, AJAX
arti89
Witam na forum jestem nowy i chciałem prosić was o pomoc, dokładnie opisze wszystko od początku. Zaczynam się uczyć tworzenia stron w HTML i PHP więc nie jestem profesjonalistą więc proszę o wyrozumiałość jeśli nie będę czegoś pojmował za szybko. smile.gif przejdę może do sprawy ma stronkę internetową do poprawy i do dokończenia, w podstronie KONTAKT mam dane firmy i napisany formularz kontaktowy który po wypełnieniu pól wysyła informacje na Email do mnie i teraz potrzebuje wstawić JQuera żeby sprawdzał np. czy wpisany email jest poprawny jeśli nie to żeby wyświetlał komunikat że "podany email jest niepoprawny" czytałem sporu już o JQuery javascript ale nie mogę sobie dać rady. Wiem że jeszcze nie do końca opanowałem język php i html ale najlepiej się uczyć metodą prób i błędów. Poniżej wstawię mój formularz kontaktowy który mam w podstronie "kontakt"

  1. <div style="clear: both;">
  2.  
  3. <h3>Formularz kontaktowy</h3>
  4. <?php
  5.  
  6. if (empty($_POST['submit'])) {
  7.  
  8. echo "<table border=\"0\"><form method=\"post\">
  9. <tr>
  10. <td>Imię i nazwisko*</td>
  11. <td><input type=\"text\" name=\"imie\" style=\"width: 250px\"></td>
  12. </tr>
  13. <tr>
  14. <td>Firma</td>
  15. <td><input type=\"text\" name=\"firma\" style=\"width: 250px\"></td>
  16. </tr>
  17. <tr>
  18. <td>Ulica</td>
  19. <td><input type=\"text\" name=\"ulica\" style=\"width: 250px\"></td>
  20. </tr>
  21. <tr>
  22. <td>Kod pocztowy</td>
  23. <td><input type=\"text\" name=\"kod pocztowy\" style=\"width: 250px\"></td>
  24. </tr>
  25. <tr>
  26. <td>Miejscowść</td>
  27. <td><input type=\"text\" name=\"miejscowość\" style=\"width: 250px\"></td>
  28. </tr>
  29. <tr>
  30. <td>Telefon</td>
  31. <td><input type=\"text\" name=\"telefon\" style=\"width: 250px\"></td>
  32. </tr>
  33. <tr>
  34. <td>E-mail*</td>
  35. <td><input type=\"text\" name=\"email\" style=\"width: 250px\"></td>
  36. </tr>
  37. <tr>
  38. <td>Zapytanie*</td>
  39. <td><textarea name=\"tresc\" style=\"width: 450px; height: 200px\"></textarea></td>
  40. </tr>
  41. <tr>
  42. <td>&nbsp;</td>
  43. <td><input type=\"submit\" name=\"submit\" value=\"Wyślij\">&nbsp;
  44. <input type=\"reset\" value=\"Od nowa\"></td></form>
  45. </tr>
  46. </table>";
  47. }
  48.  
  49. elseif (!empty($_POST['tresc']) && !empty($_POST['imie']) && !empty($_POST['email'])) {
  50.  
  51. $message = "Zapytanie*:\n$_POST[tresc]\nWyslal: $_POST[imie]\ne-mail: $_POST[email]";
  52. $header = "From: $_POST[imie] <$_POST[email]>";
  53. @mail("artur.szefler@agrolok.com.pl","Wiadomosc ze strony www.agrolok.pl","$message","$header")
  54.  
  55. or die('Nie udało się wysłać wiadomości');
  56. echo "<div align=\"center\"><strong>Wiadomość została wysłana poprawnie!</strong></div>";
  57. }
  58. else echo "<span style=\"color: #FF0000; text-align: center;\">Wypełnij wszystkie pola formularza!</span>";
  59.  
  60. ?>
  61.  
  62.  
Sephirus
Skoro jesteś początkujący to poznaj 2 ważne zasady:

1. Walidacja po stronie przeglądarki (JS) jest miłym dodatkiem ograniczającym liczbę żądań do serwera ale nic ponadto.
2. Po stronie serwera zawsze musi być walidacji nie zależnie od tego czy istnieje ona po stronie przeglądarki czy nie.

Wynika z tego to, że Twoja walidacja adresu e-mail w jQuery albo "nie ma sensu" albo jest tylko bajerem. Musisz i tak zrobić walidację po stronie PHP bo JS bardzo łatwo oszukać a jeśli walidujesz wszystko tylko w JS to skrypt PHP łyknie każdy rodzaj ataku.

najszybsza metoda walidacji adresu e-mail jaką znam to przykładowo w PHP:

  1. if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) die('E-mail not valid');


W JS możesz użyć wyrażeń regularnych do sprawdzenia czy e-mail wydaję się być prawidłowy - jQuery to ułatwi.

Inne sugestie:

- nie ustawiaj nagłówka FROM na adres podany w formularzu - szybko trafisz na spam listy
- wysyłając mail zabezpiecz się przed XSS (wstrzykiwaniem kodu) - użyj przynajmniej htmlspecialchars lub strip_tags w PHP
arti89
Witam odnawiam temat teraz uporządkowałem formularz kontaktowy który wysyła przez program pocztowy, czy ktoś mógłby poratować i napisać prosty skrypt php do tego formularza żeby wysyłał formularz bez użycia programu pocztowego? Kombinuje z PHP ale mi nie wychodzi bo nie chce zadziałać. Dopiero się szkole podstaw PHP i nie mam jeszcze zbyt dobrze opanowanego.

Kod:
  1. <form id="formularz" action="mailto:wzór@wzór?subject=wzór"method="post" enctype="text/plain" />
  2.  
  3. <tr>
  4. <td>Imię i nazwisko</td>
  5. <td><input type='text' id='imie' name="Imie i Nazwisko" style="width: 250px" required/></td>
  6. </tr>
  7. <tr>
  8. <td>Firma</td>
  9. <td><input type='text' id='firma' name="Firma" style="width: 250px"></td>
  10. </tr>
  11. <tr>
  12. <td>Ulica</td>
  13. <td><input type="ulica" id='ulica' name="Ulica" style="width: 250px"></td>
  14. </tr>
  15. <tr>
  16. <td>Kod pocztowy</td>
  17. <td><input type='text' id='kod pocztowy' name="Kod Pocztowy" style="width: 250px"></td>
  18. </tr>
  19. <tr>
  20. <td>Miejscowść</td>
  21. <td><input type='text' id='miejscowość' name="Miejscowosc" style="width: 250px"></td>
  22. </tr>
  23. <tr>
  24. <td>Telefon</td>
  25. <td><input type='telefon' id='telefon' name="Telefon" style="width: 250px"></td>
  26. </tr>
  27. <tr>
  28. <td>E-mail</td>
  29. <td><input type="email" id='email' name="email" style="width: 250px" required/></td>
  30. </tr>
  31. <tr>
  32. <td>Zapytanie</td>
  33. <td><textarea id='tresc' name="Zapytanie" style="width: 450px; height: 200px" required/></textarea></td>
  34. </tr>
  35. <tr>
  36. <td>&nbsp;</td>
  37. <td>
  38. <input type="submit" id="wyslij" value="Wyślij"/>
  39.  
  40. </tr>
  41. </div>
  42. </form>
usb2.0
no bez jaj nie,
nikt za Ciebie skyptu gotowego nie napisze,

wez gotowca jak sie meczysz
http://swiftmailer.org/
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.