Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Mail się nie wysyla
Malone
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 25.01.2011

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


Witam wszystkich!

Widzę, że admin przeniósł mój post jak się zdaje z tematu, gdzie omawiano dublowanie się wysyłanych formularzy. Mam nadzieję, że w ten sposób nie pozbawił mnie kontekstu, w jakim pytam.

Przeczytałem temat o ponownym niechcianym wysyłaniu maili poprzez odświeżenie strony z formularzem i wreszcie, po dosłownie kilku tygodniach załapałem, jak wykorzystać funkcję header (jakoś wszędzie wszyscy opisywali to w skrócie i nie umiałem tego dostosować do swojego formularza). Ale nie do końca jeszcze wszystko działa...

Oto jak wygląda sprawa:

Jest strona z umieszczonym w niej poza HTML/CSS kodem PHP, który wysyła do mnie maila, a w tym mailu znajdują się:

Imię
Nazwisko
email
Kolejne linijki z wypełnionymi polami testu.

Imię, nazwisko, email oraz testy (na bazie wysuwanych pól do wyboru) są w <formie>, który jest już poza kodem PHP.

Form ma taką postać:

  1. <form action="?" method="post" name="cos_tam">



Jeśli w miejsce "?" wstawię "przekierowanie.php", to po submicie przeglądarka idzie na przekierowanie.php. Na niej jest wyłącznie ten kod:

  1. <?
  2. header("Location: wyslano.php")
  3. ?>


Przekierowuje on natychmiastowo na podaną w nim stronę wyslano.php z podziękowaniem za wysłanie testu.

Czyli w praktyce klikamy w submit i mamy natychmiast stronkę z podziękowaniem.

Działa? Działa. Wreszcie! Nie ma problemu z wciskaniem F5 przez nieświadomych lub złośliwych userów! Łał!

Ale maile przestały dochodzić... Idzie się załamać!

Jako że dotąd dziabałem strony w CSS/HTML, a PHP dostosowuję sobie sam w miarę rozrastających się potrzeb metodą prób i błędów, godzinami czytając fora, to ręce mi już opadają. Nic nie znajduję w tej kwestii.

Wszelkie odpowiedzi na temat wysyłania headerów były już dla mnie niejasne, póki na tym forum be2K nie podał tego w 2 częściach i załapałem, że do tego potrzeba mi jeszcze 2 plików, poza samą stroną z testem. Dzięki, człowieku!

No, ale jakoś nigdzie nie widzę, aby ktokolwiek miał problem z dochodzeniem maili, gdy brakuje "?" w <formie>... Próbowałem już rozmaitych dzikich kombinacji - nic. Leżę na łopatkach.

Albo mam maile wysyłane, ale bez przekierowania na stronę wyslano.php, bo musi być "?" zamiast "przekierowanie.php", albo mam przekierowanie, ale maile nie dochodzą, bo "action" zamiast wysyłać, kieruje na stronę przekierowania.

Proszę o pomoc, jeśli ktokolwiek jest w stanie pojąć moje kulawe noob-owe rozumowanie!

Pozdrawiam!

Ten post edytował Malone 25.01.2011, 16:04:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
modern-web
post
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

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


@up
A nie pomyślałeś, że można zrobić to wszystko w 1 pliku?
Dajmy na to... masz plik mail.php
Na początku (lub w kodzie html) zapisujesz skrypt, później korzystasz normalnie z znaczników HTML tj. <html><head></head><body>#</body></html> - tak jakbyś pisał normalną stronę bez jakichkolwiek skryptów. W miejsce # wstawiasz np. formularz. Przyciskowi `submit` nadajesz nazwę. Następnie dodajesz do skryptu coś a la to:
  1. if ( isset ( $_POST['nazwa_przycisku_submit'] ) ) {
  2. // tutaj skrypt mail...
  3. } else {
  4. // komunikat jeśli coś pójdzie nie tak.
  5. }

co pozwoli na wysłanie formularza TYLKO wtedy gdy zostanie naciśnięty dany button.
Potem wystarczy dać w skrypcie kolejną instrukcję warunkową, która wyświetli za pomocą echo podziękowanie za wiadomość.
I koniec... radzę poczytać trochę o zastosowaniu PHP, bo widzę, że zrobiłbyś to dookoła (a po co sobie utrudniać) (IMG:style_emoticons/default/winksmiley.jpg)

Pozdrawiam.

Ten post edytował modern-web 27.01.2011, 15:34:39
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: 25.12.2025 - 15:58