Potreboval bych poradit ohledne nasledujici skriptu.
V podstate jde o online objednani nejakeho zbozi. Tento proces se zklada ze 3 casti. Nejdrive vlastni objednani, tj. prevedeni zaznamu v DB, pote sestaveni a odeslani objednavky a nakonec odeslani potrvzeni o objednavce uzivateli (zakaznikovi). Pri testovani ale vzdy narazim na ten samy problem.
Pri kazdem prvnim pokusu mi selze odeslani toho potvrzeni a vubec nevim proc. Prechozi 2 kroky ale probehnou uspesne. Pritom kdyz to zkusim vzapeti znovu, vse jiz funguje v poradku. Nevite nekdo, cim by to mohlo byt zpusobene?
zde je cast toho skriptu:
function Odeslani_potvrzeni($connection,$id_objednavky,$id_uzivatele)
{
list ($jmeno,$prijmeni,$email,$ulice,$psc,$mesto,$kontakttel,$firma,$ico,$dic,$telefon,$mobil,$fax,$cisadr) = InformaceOZakaznikovi($connection,$id_uzivatele);
$email_jmeno = $jmeno;
$email_prijmeni = $prijmeni;
$email_email = $email;
$obsah = " ...sestaveni zahlavi zpravy z dat v DB... ";
$obsah2 = " ...sestaveni objednavky z dat v DB... ";
$obsah .= $obsah2;
// ODESLANI MAILU
/* recipients */
$recipient .= "=?iso-8859-2?Q?".imap_8bit("$email_jmeno $email_prijmeni")."?="." <$email_email>" . ", " ;
/* subject */
$subject = "=?iso-8859-2?Q?".imap_8bit("Potvrzení Vaší online objednávky z XXX")."?=";
/* message */
$message .= $obsah;
/* dodateèné hlavicky pro chyby, From, cc, bcc, atd */
$headers .= "From: =?iso-8859-2?Q?".imap_8bit("XXX")."?="." <xxx@xxx.cz>\n";
$headers .= "X-Priority: 3\n"; // priorita
$headers .= "Return-Path: <xxx@xxx.cz>\n"; // Návratová cesta pro chyby
$headers .= "MIME-Version: 1.0\n".
"Content-Type: text/plain; charset=\"iso-8859-2\"\n";
/* ODESLANI */
if (mail($recipient,$subject,$message,$headers))
{
return true;
exit;
}
else
{
return false;
exit;
}
}
// VLASTNI SKRIPT
...
if (!empty($HTTP_POST_VARS["order"]) OR $action == 3)
{
session_register("message");
$objednani = false;
$odeslani_objednavky = false;
$odeslani_potvrzeni = false;
// prevedeni voziku na objednavku
$objednani = Objednej($connection,$id_objednavky,$id_uzivatele);
if ($objednani == true) // prevedeni na objednavku bylo uspesne
{
// odeslani objednavky
$odeslani_objednavky = Odeslani_objednavky($connection,$id_objednavky,$id_uzivatele);
if ($odeslani_objednavky == true)
{
$odeslani_potvrzeni = Odeslani_potvrzeni($connection,$id_objednavky,$id_uzivatele);
if ($odeslani_potvrzeni == true)
{
$message = "Vaše objednávka byla odeslána! Dìkujeme.<br>
Na Váš e-mail bylo odesláno potvrzení objednávky.";
header("location:../../index.php?cat=8&action=5&orderID=$id_objednavky"); // presmerovani na zobrazeni objednavky
exit;
}
else
{
$message = "Vaše objednávka byla odeslána ke zpracování. <br>
Odeslání potvrzení objednávky na Váš e-mail však selhalo!";
header("location:../../index.php?cat=8"); // presmerovani na uvodni stranku voziku
exit;
}
}
else
{
$message = "Odeslání Vaší objednávky selhalo! Prosím, kontaktujte nás. Dìkujeme.";
header("location:../../index.php?cat=8"); // presmerovani na uvodni stranku voziku
exit;
}
// odeslani potvrzeni
// zobrazeni objednavky
}
elseif ($objednani == false) // prevedeni na objednavku selhalo
{
$message = "Proces pøevedení Vašeho nákupního vozíku selhal!";
header("location:../../index.php?cat=8"); // presmerovani na uvodni stranu nakupniho kosiku
exit;
}
exit;
}
...
Predem dekuji za vsechny vase rady!