Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: formularz HELP
Forum PHP.pl > Forum > Gotowe rozwiązania
DjKermit
Witam
Mam następujący problem:
z samym formularzem jest wszystko OK ale po wysłaniu meila przez owy formularz wyskakuje stronka z treścią "wysłano... itd" , na tej stronce umieściełem link "wstecz" java script:history.back().
I byłoby wszystko pięknie gdyby nie głupi IE, który nie dopisuje tego do historii i "wstecz" nie działa. W mozilli, operze, netscape'ie wszystko jest OK.
Może jest jakiś sposób na zmuszenie IE do dodawania komunikatów do historii.
Albo może jakiś inny sposób na przeniesienie użytkownika wstecz bez gubienia danych z formularza.dry.gif
Będę wdzięczny za pomoc.

to końcówka kodu:
  1. <?php
  2. if ($_SERVER['REQUEST_METHOD'] == &#092;"POST\") {
  3. //sprawdza czy zawartość pola e-mail jest OK
  4. if (!emailOK($email)) {
  5. $status = &#092;"<B>BŁĄD</B><BR>Nieprawidłowy adres e-mail<BR>Nie mogę wysłać wiadomości\";
  6. die(&#092;"<center>$status<br><a href='javascript:history.back()' class='wstecz'>wstecz</a></center>\");
  7. }//End if
  8.  
  9. #wysłanie potwierdzenia do nadawcy
  10.  mail(&#092;"$email\", \"potwierdzenie wysłania wiadomości ($subject)\", \"$msg3\", \"From: $adminemail[$who] nReply-To: $adminemail[$who]\");
  11. #wysłanie wiadomości właściwej
  12.  mail(&#092;"$adminemail[$who]\", \"$subjectheader $subject\", \"$msg2\", \"From: $emailnReply-To: $email\");
  13.  
  14.  if ($redirecturl != &#092;"\") {
  15. header(&#092;"Location: $redirecturl\");
  16.  } else {
  17. echo &#092;"<br><center>$finishedtext<br><a href='javascript:history.back()'class='wstecz'>wstecz</a></center><br>\";
  18.  }
  19.  
  20. } else {
  21.  
  22.  include('contactform.php');
  23.  
  24. }
  25. ?>
strife
Witam,

Może jakoś tak... przez REFERER zrobić linka, ale osobiście wole tak =>
  1. <?php
  2.  
  3. // .. po wyslaniu
  4. echo 'Wyslano poprawnie, przekierowanie na poprzednia strone nastapi za 5 sec.';
  5. header(&#092;"Refresh: 5; URL=\" . $_SERVER['HTTP_REFERER'] . \" \");
  6.  
  7. ?>


Pozdrawiam!
DjKermit
Dzięki
wszystko fajnie, też się przyda
ale ta metoda gubi dane, a zależy mi żeby użytkownik po wpisaniu błędnych danych mógł do nich wrócić i nie musiał wpisywać ich jeszcze raz
  1. <?php
  2. //sprawdza czy zawartość pola e-mail jest OK
  3. if (!emailOK($email)) {
  4. $status = &#092;"<B>BŁĄD</B><BR>Nieprawidłowy adres e-mail<BR>Nie mogę wysłać wiadomości\";
  5. die(&#092;"<center>$status<br><a href='javascript:history.back()' class='wstecz'>wstecz</a></center>\");
  6. }
  7.  
  8. ?>


A może dałoby się wysłać alert (nie wiem czy php to potrafi) albo za pomocą javascript. Umiałby ktoś zrobić takie cudo?
Widmo
a nie mozesz przeniesc usera na poprzednia strone i przez GET'a wsadzic spowrotem dane do formularza ( w html dajesz VALUE="<? echo $email; ?>" )
yavaho
Kazdy sie przed tym zabezpiecza aby user nie wracal spowrotem do formularza lub aby nie odswierzal takiej strony a tobie na tym zalezy?? Zupelnie cie nie rozumiem albo nie znasz konsekwencji w przpadku takiego poruszania sie po formularzach.

1 Tworzysz formularz
2 Wysylasz formularz metoda post
3 Sprawdzasz czy dane sa poprawne. Jezeli nie. Wracasz do punktu 1 a pola formularza wypelniasz danymi ktore podal user:
<input type="text" name="imie" value="<?php echo($_POST['imie']); ?>" />
4 Jezeli OK zapisujesz dane z formularza i przekierowujesz usera na inna strona
header('Location: OK.php');
na ktorej dopiero otrzyma komunikat OK. A przekierowujesz go po to aby przypadkiem nie odswierzyl strony lub nie przyszlo mu na mysl zastosowac Undo jak w wordzie.
DjKermit
Cytat
Kazdy sie przed tym zabezpiecza aby user nie wracal spowrotem do formularza lub aby nie odswierzal takiej strony a tobie na tym zalezy?? Zupelnie cie nie rozumiem albo nie znasz konsekwencji w przpadku takiego poruszania sie po formularzach.

No to mi dało trochę do myślenia.
Widocznie nie znam "konsekwncji takiej nawigacji" bo nie przychodzi mi do głowy co user może namieszać w takim przypadku. Jakoś nie widzę nic złego (może w mojej naiwności) żeby user po wpisaniu błędnych danych mógł je poprawić bez ponownego wpisywania.
Chodzi głównie o to że pole "e-mail" jest dokładnie sprawdzane (małpa, niedozwolone znaki, conajmniej 1 kropka) i w przypadku błędu skrypt nie wysyła danych, osobiście bym się mocno wkurzył gdybym musiał wszystko wpisywać od 0 po jednym małym błędzie.
Ale może jestem w błędzie, jeśli tak to, proszę, uświadomcie mnie lub odeślijcie do literatury na ten temat.
Tak na marginesie to najmilej widziany byłby alert o błędzie formatu adresu e.
Z góry dzięki za pomoc.
yavaho
Sprawdz do czego sluzy parametr [value] stosowany w formularzach w tagu <input> a zrozumiesz ze user nie utraci danych juz raz wpisanych, bo przy pomocy php bedziesz mogl wypelnic pola formularza wlasnie tymi jego wczesniej wklepanymi danymi.
DjKermit
OK poszło dzięki za pomoc smile.gif
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.