![]() |
![]() |
![]()
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 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ć:
Jeśli w miejsce "?" wstawię "przekierowanie.php", to po submicie przeglądarka idzie na przekierowanie.php. Na niej jest wyłącznie ten kod:
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 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Hey, a jakie zadajesz pytanie?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 467 Pomógł: 39 Dołączył: 7.11.2010 Skąd: Raz tu, raz tam Ostrzeżenie: (30%) ![]() ![]() |
Markonix:D
Fakt, sam nie wiem o co chodzi, czasem lepiej napisac krotko ale tak, zeby kazdy zrozumial bo to nie lektura i nawet do konca nie chce mi sie tego czytac |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Rozumiem, ze masz problem z tym, że po dodaniu header('location: ...'); mail się nie wysyła, tak?
Może pokombinuj z dodaniem takiego czegoś w miejscu gdzie wyświetla się podziękowanie: Powinno załatwić sprawę, a mail powinien dochodzić bez problemów ^^ Pozdrawiam! Ten post edytował modern-web 26.01.2011, 08:36:29 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 5 Dołączył: 12.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Z tego co napisałeś to ja zrozumiałem ze masz 2 storny. Pierwsza z kodem html i skryptem wysylającym email oraz header do strony drugiej, no a na drugiej masz cos w rodzaju "Dziekuje za wysłanie formularza".
Jeżeli tak to musisz to poprawić, np: Utworz plik index.html a w nim stwórz ten swoj formularz i daj go w <form action"wysylanie.php"> Utworz plik wysylanie.php i w nim usmieść skrypt na wysyłanie emaila i dodaj do niego header do podziekowanie.html Utworz podziekowanie.html i w nim podziekuj za wyslanie maila. |
|
|
![]()
Post
#6
|
|
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:
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 13:03 |