Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Formularz kontaktowy - funkcja mail i chyba problemy z przekazywanie zmiennych
Volume
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 11
Dołączył: 11.10.2004
Skąd: 3c

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


napisalem sobie taki kod:
  1. if(empty($_POST['wyslij']))
  2. {
  3. <form method="post">
  4. <fieldset>
  5. <legend>Formularz kontaktowy</legend>
  6. <label for="nick">Imie Nazwisko (*)</label>
  7. <br />
  8. <input onfocus="this.style.backgroundColor=\'#fff\'" onblur="this.style.backgroundColor=\'#dfdfdf\'" name="nick" type="text" />
  9. <br />
  10. <label for="mail">Mail</label>
  11. <br />
  12. <input onfocus="this.style.backgroundColor=\'#fff\'" onblur="this.style.backgroundColor=\'#dfdfdf\'" name="mail" type="text" />
  13. <br />
  14. <label for="tresc">Treść (*)</label>
  15. <br />
  16. <textarea onfocus="this.style.backgroundColor=\'#fff\'" onblur="this.style.backgroundColor=\'#dfdfdf\'" name="tresc" cols="63" rows="10"></textarea>
  17. <br />
  18. <input id="submit" name="wyslij" type="submit" value=" Wyślij " />
  19. </fieldset>
  20. </form>
  21. <p>Przypisy:</br>* - pola obowiązkowe</p><p>W przypadku braku podania maila prosimy w treści wiadomości podać inną formę kontaktu.</p>
  22. ';
  23. }
  24. else if(!empty($_POST['nick']) && !empty($_POST['tresc']))
  25. {
  26. function EmAil()
  27. {
  28. global $nick;
  29. global $mail;
  30. global $tresc;
  31. $tresc_cal="Widamosc od: ".$nick." (mail - ".$mail.")\n\nTreść:\n".$tresc;
  32. @mail('s1518@tlen.pl','Wiadomość ze strony zooter.pl',$tresc_cal)or die('<p>Nie udalo się wysłać wiadomości.</p>');
  33. echo '<p class="kontakt">Wiadomość wysłano - <a href="index.php?s=kontakt">Powrót do formularza.</a></p>';
  34. }
  35. if(empty($_POST['mail']))
  36. {
  37. echo EmAil();
  38. }
  39. else if(!empty($_POST['mail']) && preg_match('/^([a-z0-9]{1})([^\s\t\.@]*)((\.[^\s\t\.@]+)*)@([a-z0-9]{1})((([a-z0-9-]*[-]{2})|([a-z0-9])*|([a-z0-9-]*[-]{1}[a-z0-9]+))*)((\.[a-z0-9](([a-z0-9-]*[-]{2})|([a-z0-9]*)|([a-z0-9-]*[-]{1}[a-z0-9]+))+)*)\.([a-z0-9]{2,6})([.]?)$/Diu', $_POST['mail']))
  40. {
  41. echo EmAil();
  42. }
  43. else echo '<p class="kontakt"><strong>UWAGA! - adres email musi mieć poprawny format</strong> - <a href="java script:history.back();">Cofaj</a>.</p>';
  44. }
  45. else
  46. {
  47. echo '<p class="kontakt"><strong>UWAGA! - wymagane jest wypełnienie pól z imieniem/nazwiskiem oraz treścią</strong> - <a href="java script:history.back();">Cofaj</a>.</p>';
  48. }
  49.  
  50. ?>
Na jednym serwerze dziala bez problemu - chociaz tez byly problem ale global dla zmiennych pomoglo, natomaist a na drugim serwerze na ktorym formularz ma byc nawet to nie pomoglo... Co jeszcze moze byc nie tak z tymi zmiennymi ze nie chca sie przekazywac. Funkcja mail na tym serwerze dziala bo wysyla bez problemu wszystkie dane jak wpisze bezposrednio bez zmiennych do funkcji mail(...) do tego wszystko co jest poza zmiennymi sie wysyla, wiec problem chyba musi byc w tych zmeinnych....


edit: ok prodzailem sobie - wszystkie zmienne przekazywane dalem w postacie $_POST['']

Ten post edytował Volume 7.11.2009, 20:15:58
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Ludzie sobie niepotrzebnie tak utrudniają... Mail jest użyty tylko raz to po kiego grzyba robisz z tego osobną funkcję? W ten sposób nie musisz się grzebać w żadna srale-globale (IMG:style_emoticons/default/winksmiley.jpg) Tylko walidujesz odpowiednie pola POST i ładujesz we właściwe miejsce w kodzie. Takie wariactwa z pisaniem funkcji, które wykonują się raz to ja też widziałem i przekopać się przez kod tego typu to tragedia. Albo piszesz całość porządnie, albo robisz osobne pliki (jeszcze lepiej po prostu jeden) z używanymi funkcjami i je includujesz w razie potrzeby. Niestety z takimi serwisami miałem do czynienia i nadal mam (IMG:style_emoticons/default/sad.gif) 20 plików srodek(kolejny_numer_począwszy_od_1).php i w każdym na nowo definiowana ta sama funkcja (IMG:style_emoticons/default/sciana.gif) Do tego samego zmierzasz? Takie serwisy robili ludzie nie rozumiejący php jakieś 5 lat temu na tabelkach. Nie idź ich śladem.

Ten post edytował thek 7.11.2009, 22:30:15
Go to the top of the page
+Quote Post

Posty w temacie


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: 6.10.2025 - 16:29