Autor Zpráva
Jitka Šoltysová
Profil
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
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
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
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
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
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);

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: