Autor Zpráva
screpyKOKO
Profil *
ahoj,upravil jsem si stáhnutý script na odesílání emailu...
mám tam if pro hlášky o uspěšné nebo neuspěšné funkce,já bych chtěl skusit udělat aby to ukazovalo chybovou hlášku při každé té kolonky,
prostě mám třeba jméno a primeni
a ten if je nastavenej pro celou form,já bych potřeboval aby když nezadá třeba jen jméno,tak aby to napsalo hlášku nezadal jsi jmeno...
<?
$text_zpravy = "
    Jméno: ".$_POST["jmeno"]."
    objednávka:
    ".$_POST["zprava"]."
    ";                         

$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$primeni = $_POST['primeni'];


if (
$jmeno!="" and 
$primeni!="" and 
)
{
Mail("email@email.cz", Objednavka, $text_zpravy, "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>";
echo '<a href="JavaScript:history.back()">Vrátit se zpět</a>';
} 
?>

zkoušel jsem to že jsem if přiřadil každé proměnné,ale to nešlo...
pak jsem zkoušel jeden způsob,ale to radši ani psát nebudu jelikož to je kravina že se až stydím :D:D

PS: prominte, ale možná to nepochopíte,nevěděl jsem jak to popsat:D:D

Moderátor Majkl578: Titulek „if mail“ nevystihuje podstatu dotazu. Příště zkus prosím vymyslet lepší.
Taps
Profil
screpyKOKO:
<?
$text_zpravy = "
    Jméno: ".$_POST["jmeno"]."
    objednávka:
    ".$_POST["zprava"]."
    ";                         

$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$primeni = $_POST['primeni'];


if ($jmeno==""){
echo "nebylo vyplněno jméno";
}
elseif($prijmeni=="") {
echo "nebylo vyplněno přijmení";
)
else
{
Mail("email@email.cz", Objednavka, $text_zpravy, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}

?>
Lechy
Profil
Taps:
<?
$text_zpravy = "
    Jméno: ".$_POST["jmeno"]."
    objednávka:
    ".$_POST["zprava"]."
    ";                         

$jmeno = $_POST['jmeno'];
$email = $_POST['email'];
$primeni = $_POST['primeni'];


if ($jmeno==""){
echo "nebylo vyplněno jméno";
}
elseif($prijmeni=="") {
echo "nebylo vyplněno přijmení";
)
else
{
Mail("email@email.cz", Objednavka, $text_zpravy, "From: " . $email);
echo "<p><strong>Váš e-mail byl úspěšně odeslán</strong>.</p>";
}

?>


jen sem doplnil chybějící uvozovku :)
Taps
Profil
Lechy:
jasný jsem si říkal, že ten kod se mi nějak divně obarvil :-)
Ben
Profil *
použití konstrukce if-elseif-else je přeci při takovéto konstrukci nepřesná, zkuste si to v praxi
Taps
Profil
Ben:
tak zcela jistě doporučíš lepší způsob
panther
Profil
Taps:
pokud jde o ty podmínky, je lépe nebrat mezeru/bílé znaky jako hodnotu a zároveň vypsat všechny chybějící údaje, ne jen první, na který narazíme.

screpyKOKO:
pokud je vše vyplněno, odešleš mail, jinak (else větev) udělej pro každý input podmínku.

<?php
if (!empty($_POST['jmeno']) && !empty($_POST['prijmeni']) && filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {
    mail (...)
} else {
    $mes = array();

    if (empty($_POST['jmeno'])) {
        $mes[] = 'neni jmeno';
    }
    if (empty($_POST['prijemni'])) {
        $mes[] = 'neni prijmeni';
    }
    if (empty($_POST['mail'])) {
        $mes[] = 'neni mail';
    } elseif (!filter_var($_POST['mail'], FILTER_VALIDATE_EMAIL)) {
        $mes[] = 'neni spravny mail';
    }
}
?>
Vytvoříš si pole chybových hlášek, které pak můžeš vypsat tam, kde potřebuješ.
Ben
Profil *
panther:
Děkuju za uveřejnění funkce filter_var(); ani jsem netušil, že už něco takového existuje ;) Alespoň už se to nemusí dělat přes reguláry.

Taps a screpyKOKO
Naučte se dělat věci pořádně, promyslete dopředu všechny možnosti, napište si třeba vývojový diagram a pokud to nechcete dělat pořádně, tak to nedělejte vůbec ;)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0