Autor | Zpráva | ||
---|---|---|---|
Jitka Šoltysová Profil |
#1 · Zasláno: 9. 11. 2014, 00:31:34
Potřebuji poradit a pokud to tu už je omlouvám se, já to nenašla.
Chci aby se vyplněná data zobrazily a po potvrzení uživatelem odeslaly. Zde je zdroj http://uzameckehoparku.cz/php/zkouska/mail.html Mě nic neodchází. Díky moc |
||
juriad Profil |
#2 · Zasláno: 9. 11. 2014, 01:39:03
Jitka Šoltysová:
Jak vypadají skripty potvrdte.php a zkouska.php? Nejspíš se ti ztratí proměnné odeslané skriptu zkouska.php. Měla bys je uložit do SESSION. |
||
Jitka Šoltysová Profil |
#3 · Zasláno: 9. 11. 2014, 07:31:24
tady je zkouska.php
<body> <div id="strana"> <h1>Odesílání emailu</h1> Tady něco vypíšu<br> <? $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; echo "<p>predmet: "; echo $predmet; echo "<br>"; echo "email: "; echo $email; echo "<br>"; echo "zprava: "; echo $zprava; echo "<p>"; ?> <p>Pokud jsou vaše data v pořádku, odešlete mail</p> <form action="potvrdte.php" method="post"> <input type="submit" value="Potvrďte"> </form> <br> <a href="javascript: history.go(-1)">Zpět</a> </div> </body> A tady potvrdte.php <? $predmet = $_POST['predmet']; $email = $_POST['email']; $spam = $_POST['spam']; $zprava = $_POST['zprava']; if ($predmet!="" and $email!="" and $zprava!="") { Mail("j.solty@seznam.cz", $predmet, $zprava, "From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje.</p>"; } ?> |
||
juriad Profil |
#4 · Zasláno: 9. 11. 2014, 07:47:55
Jitka Šoltysová:
Problém je v tom, že první formulář hodnoty odešle, ty se zobrazí, ale druhý formulář obsahuje jen tlačítko, žádná data. Přidej na začátek zkouska.php (na první řádek, před vše ostatní - nesmí před tím být ani mezera): <?php # toto zahájí session - úložiště pro uživatele v PHP # každému uživateli bude patřit kopie pole $_SESSION session_start(); ?> A pak za 9. řádek přidej: # uloží data $_SESSION['predmet'] = $predmet; $_SESSION['email'] = $email; $_SESSION['spam'] = $spam; $_SESSION['zprava'] = $zprava; A v potvrdte.php nahraď řáďky 2-5 za: # obnoví data $predmet = $_SESSION['predmet']; $email = $_SESSION['email']; $spam = $_SESSION['spam']; $zprava = $_SESSION['zprava']; |
||
Jitka Šoltysová Profil |
#5 · Zasláno: 9. 11. 2014, 19:43:04
Moc díky za pomoc, ale nic mi stále neodchází, napíše mi to "Váš e-mail se nepodařilo odeslat pravděpodobně jste nevyplnili všechny údaje."
Zde je opraveny potvrdte.php <body> <div id="strana"> <h1>Odesílání emailu</h1> <? # obnoví data $predmet = $_SESSION['predmet']; $email = $_SESSION['email']; $spam = $_SESSION['spam']; $zprava = $_SESSION['zprava']; if ($predmet!="" and $email!="" and $zprava!="") { Mail("j.solty@seznam.cz", $predmet, $zprava, "From: " . $email); echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>"; } else { echo "<p>Váš e-mail se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje.</p>"; } ?> <br> <a href="javascript: history.go(-1)">Zpět</a> </div> </body> |
||
juriad Profil |
#6 · Zasláno: 10. 11. 2014, 06:05:12
Omlouvám se, zapomněl jsem napsat, že je nutné přidat i
session_start(); do toho souboru potvrdte.php (musí být ve všech souborech, které používají SESSION).
Pro kontrolu si můžeš někam přidat: var_dump($_SESSION); |
||
Časová prodleva: 9 let
|
0