Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Użycie setTimeout + location w php
Forum PHP.pl > Forum > PHP
Less
Napisałem formularz i plik odbierający dane... ale chciałem, aby po pewnym czasie odwiedzający wrócił do poprzedniej strony, ponieważ PHP nie ma funkcji z opóźnionym czasem działania, chciałem wykorzystać JS, ale to poniższe rozwiązanie nie działa... Nie wiem dlaczego...


  1. <?php
  2.  
  3. $mailTo1 = 'ktos@gdzies.pl';
  4. $mailReferer = $_POST['Referer'];
  5. $mailSubject = $_POST['Temat'];
  6.  
  7. $mailBody = "E-mail od: n".$_POST['Imie']." ".$_POST['Nazwisko']."n"
  8. $mailBody += .$_POST['Email']."nn".$_POST['Uwagi'];
  9.  
  10. $mailHeaders = 'From: '.$POST_['Email']."rn";
  11. $mailHeaders += 'Replay-to: '.$POST_['Email']."rn";
  12.  
  13.  
  14. $wyslana = @mail($mailTo1, $mailSubject, $mailBody, $mailHeaders);
  15.  
  16. if($wyslana==true){
  17. print('<HTML><HEAD><script><!--n');
  18. print('function skok(){n');
  19. print('window.location="'.$mailReferer.'";n');
  20. print('}n');
  21. print('//--></script>n');
  22. print('</HEAD>n');
  23. print('<BODY ONLOAD="setTimeout('skok()',10000);">n');
  24. print('<CENTER>n');
  25. print('<p>Wiadomość wysłana poprawnie. Dziękujemy<br><br>n');
  26. //print('<span onClick="history.back();" style="cursor: hand; 
  27. //color: red;">powrót</span>n');
  28. print('</p></CENTER></BODY></HTML>');
  29.  
  30. }
  31. else{...}
  32.  
  33. ?>




Bardzo proszę o pomoc
Less
domis86
po pierwsze:
nie rob tyle printow/echów na raz jak wyswietlasz tylko html
rob tak:

  1. <?
  2. ...........
  3. if ($wyslana)
  4. {
  5. ?>
  6.  
  7. <html>
  8. <head>
  9. <script>
  10. <!--
  11. function skok()
  12.  window.location="<? echo $mailReferer; ?>";
  13. }
  14. -->
  15.  </script>
  16. </head>
  17. <body>
  18. .....
  19. </body>
  20. </html>
  21.  
  22. <?
  23. }
  24. else
  25. {
  26. ....
  27. }
  28. ?>


tak jest duuuuuuuuuuuuzo proscie i duuuuuuuuuuuuuzo czytelniej aarambo.gif
Less
OKi

ale chodzi o to, że w przypadku wysłania generuje się takie ciało strony, a w przypadku niepowodzenia - drugie...
domis86
dobra
ale stosuj zasade: php w html
a nie: html w php

a co do problemu z settimeout to w onload tagu body daj : zrob_skok()
zrob_skok() <- zrob taka funkcje tam gdzie masz skok() i wladuj do niej tego settimeouta i powinno dzialac
Less
przepraszam... to nie ma nic do rzeczy... późno jest... ;-)

Wielkie dzięki... Działa !

guitar.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.