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 |
#2 · Zasláno: 26. 7. 2011, 16:29:08 · Upravil/a: Taps
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 |
#3 · Zasláno: 26. 7. 2011, 16:46:54
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 |
#4 · Zasláno: 26. 7. 2011, 17:17:39
Lechy:
jasný jsem si říkal, že ten kod se mi nějak divně obarvil :-) |
||
Ben Profil * |
#5 · Zasláno: 26. 7. 2011, 22:28:35
použití konstrukce if-elseif-else je přeci při takovéto konstrukci nepřesná, zkuste si to v praxi
|
||
Taps Profil |
#6 · Zasláno: 27. 7. 2011, 07:07:29
Ben:
tak zcela jistě doporučíš lepší způsob |
||
panther Profil |
#7 · Zasláno: 27. 7. 2011, 07:22:44 · Upravil/a: panther
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'; } } ?> |
||
Ben Profil * |
#8 · Zasláno: 27. 7. 2011, 23:06:18
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 ;) |
||
Časová prodleva: 13 let
|
0