ugrás a tartalomhoz

Egyszerű kérdés PHP/HTML

LolkaBolka · 2008. Már. 20. (Cs), 10.24
Sziasztok!

Kezdő vagyok még, ezért nem is igazán használom a PHP-t, de most muszáj.
Amit sikerült megvalósítanom az az, hogy tovább tudom küldeni egy contact.php segítségével a html oldalban kitöltött formot a küldés gombra kattintva a megadott email címre, azonban a contact php.ban megadott, pl. ok.html .re való irányítás, miután valaki sikeresen kitöltötte a formot, nem működik :S
A levél, illetve form megérkezik a címre, de az átirányítás nem müködik...nektek ez biztosan semmiség, azonban nekem fontos lenne! Kérlek segítsetek!
A contact.php tartalma a következő:
  1.    
  2. $EmailTo = "sajat##kukac##emailcimem.hu";  
  3. $Subject = "Információkérő e-mail";  
  4. $Nev = Trim(stripslashes($_POST['name']));   
  5. $Email = Trim(stripslashes($_POST['email']));  
  6. $Szoveg = Trim(stripslashes($_POST['message']));  
  7.   
  8. // prepare email body text  
  9. $Body = "";  
  10. $Body .= "Név: ";  
  11. $Body .= $Nev;  
  12. $Body .= "\n";  
  13. $Body .= "Email: ";  
  14. $Body .= $Email;  
  15. $Body .= "\n";  
  16. $Body .= "Üzenet szövege: ";  
  17. $Body .= $Szoveg;  
  18. $Body .= "\n";  
  19.   
  20. // send email   
  21. $success = mail($EmailTo$Subject$Body"From: <$EmailFrom>");  
  22.   
  23. // redirect to success page   
  24. if ($success){  
  25.   print "<meta http-equiv=\"refresh\" content=\&quot;0;URL=ok.html/&quot;>";  
  26. }  
  27. else{  
  28.   print "<meta http-equiv=\"refresh\" content=\&quot;0;URL=error.html/&quot;>";  
  29. }  
Előre is köszi! LB
 
1

header()

s_volenszki · 2008. Már. 20. (Cs), 10.44
2

Bővebben

zila · 2008. Már. 20. (Cs), 11.00
  1. header("Location: ok.html");  
  2. exit();  
3

ez így csak BODY tartalom

Gixx · 2008. Már. 20. (Cs), 12.02
amit az előttem levők szűkszavúan közölni akartak, az az, hogy php-ból átírányítni a header() függvénnyel lehet (persze mindenféle output kiírása előtt, print, echo, die, var_dump stb).

A te módszereddel az a baj, hogy ha csak simán ennyi a contact.php, akkor az outputra csak a <meta> fog kerülni, amit a quirks mód miatt a böngészők a <body> tartalmaként próbálnak értelmezni, ami meg nem fog menni.

A te módszereddel (ha ahhoz ragaszkodsz), a következőt kell megadni:
  1. print '<html>  
  2. <head><meta http-equiv="refresh" content="0;URL=ok.html" /></head>  
  3. <body>Loading...</body>  
  4. </html>';  
Ezt csak azért, hogy megértsd, mi a hiba a te verziódban :) De én is inkább a header-t javaslom.
4

vagy javascript beszúrással

griphons · 2008. Már. 20. (Cs), 12.24
pölö így:
  1. print "<script>self.location=\"ok.html\";</script>";  
a lehetőségek száma szinte végtelen ;)
5

Köszönöm Gixx!

LolkaBolka · 2008. Már. 20. (Cs), 13.11
Hibátlanul működik :)
6

js

bsh · 2008. Már. 20. (Cs), 19.20
echo ("<script type=\"text/javascript\">window.location=('ok.html');</script>");
7

Kiegészítő kérdés

simkob · 2008. Május. 16. (P), 19.54
Nekem is lenne egy hasonló problémám.
Ugyanígy működik nekem is egy php file és a végén szintén egy visszaigazolás kellene betöltenie.
Nekem annyiban kellene másképp működnie, hogy a visszaigazolást (ami egy html file) nem új ablakban töltse be, hanem egy iframe-be, amiben maga a form is van. Lehetséges ez? Milyen átalakítást kellene alkalmaznom?
8

target

zila · 2008. Május. 17. (Szo), 08.44
A html-ben az űrlapnak adj egy target attribútumot. Így valahogy:
  1. <form action="akarmi.php" method="POST" target="iframe_neve">  
  2. ...  
  3. </form>  
  4. <iframe name="iframe_neve" ...>