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
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


A skąd bierzesz te zmienne?
  1. global $nick;
  2. global $mail;
  3. global $tresc;
Go to the top of the page
+Quote Post
Volume
post
Post #3





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

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


Cytat(vokiel @ 7.11.2009, 22:09:22 ) *
A skąd bierzesz te zmienne?
  1. global $nick;
  2. global $mail;
  3. global $tresc;

wartosci parametrow name="..." w formularzu - masz na mysli ze ta zmienna np. $nick nie jest tym samym co $_POST['nick']?

Cytat
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 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 20 plików srodek(kolejny_numer_począwszy_od_1).php i w każdym na nowo definiowana ta sama funkcja Do tego samego zmierzasz? Takie serwisy robili ludzie nie rozumiejący php jakieś 5 lat temu na tabelkach. Nie idź ich śladem.

Uzywam 2x tej funkcji EmAil(); Wlasnie zrobilem to po to by nie pisac 2x tego samego kodu, najpierw uzywam ta funkcje gdy pole z mailem jest puste a potem drugi raz jak nie jest puste - wtedy dodatkowo jest sprawdzanie czy email ma poprawny format zapisu. Chyba ze masz co innego na mysli, ja nie wpadlem na lepszy pomysl choc zapewne jest inne rozwiazanie ale ciagle poczatkuje w php, nie mam zbyt duzo czasu na jego scisle studiowanie a szczerze powiem ze by mi sie przydalo :/

Ten post edytował Volume 8.11.2009, 13:30:30
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 - 00:47