Autor | Zpráva | ||
---|---|---|---|
Pavel.Prochy Profil * |
#1 · Zasláno: 7. 2. 2009, 20:35:42
Co je špatně na tomto zápisu podmínek?
if($komu=="" || $odesilatel=="" || $adresaOdesilatele=="" || $predmet=="" || $textMailu==""){ echo "Pravděpodobně jste nevyplnili všechny údaje</br><img src=./images/no.gif alt=NO />"; } elseif(($kontrola!="8UY3") || ($kontrola!="O6SP") || ($kontrola!="E97M") || ($kontrola!="GW9A")){ echo "Špatně jste opsal/a ověřovací kód"; } elseif($adresaOdesilatele!="@"){ echo "Zapoměl/a jste na @"; } else{ echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele."> \r\n".$hlavicky); } |
||
dRaGen Profil |
#2 · Zasláno: 7. 2. 2009, 20:38:09
elseif(($kontrola!="8UY3") || ($kontrola!="O6SP") || ($kontrola!="E97M") || ($kontrola!="GW9A")){ tady by měl bejt operátor and ... && místo || ... |
||
Alphard Profil |
#3 · Zasláno: 7. 2. 2009, 20:41:49 · Upravil/a: Alphard
Pavel.Prochy
když se ptáte co je špatně, bylo by vhodné napsat, co nefunguje „elseif($adresaOdesilatele!="@"){“ jestli nemá být $adresaOdesilatele ve tvaru @ (a nic víc), tak tohle fungovat nebude raději if (mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele."> \r\n".$hlavicky)) echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; nebo $kon = mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele."> \r\n".$hlavicky); if ($kon) echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; |
||
Pavel.Prochy Profil * |
#4 · Zasláno: 7. 2. 2009, 20:51:13
dRaGen
|| je snad NEBO zatím co && je operátor A ZÁROVEŇ, z čehož plyne že v tomto případě musí být použito || Alphard díky za upozornění hledal jsem řetězec místo znaku :-D, ale i tak to nefunguje if($komu=="" || $odesilatel=="" || $adresaOdesilatele=="" || $predmet=="" || $textMailu==""){ echo "Pravděpodobně jste nevyplnili všechny údaje</br><img src=./images/no.gif alt=NO />"; } elseif(($kontrola!="8UY3") || ($kontrola!="O6SP") || ($kontrola!="E97M") || ($kontrola!="GW9A")){ echo "Špatně jste opsal/a ověřovací kód"; } elseif($adresaOdesilatele!='@'){ echo "Zapoměl/a jste na @"; } else{ echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele."> \r\n".$hlavicky); } |
||
AM_ Profil |
#5 · Zasláno: 7. 2. 2009, 20:58:42
dRaGen má pravdu, má tam být &&. Aby tvoje podmínka nebyla splněná, musela by se $kontrola rovnat všem čtyřem hodnotám. To, co jsi napsal, se dá zjednodušeně slovy říct: $a není 'a' nebo $a není 'b' nebo $a není 'c' nebo $a není 'd'. Aby to nebylo splněno (když to zneguješ), muselo by platit $a=='a' && $a=='b' && $a=='c' && $a=='d'. Hloupost, že?
|
||
Alphard Profil |
#6 · Zasláno: 7. 2. 2009, 20:58:42
„elseif($adresaOdesilatele!='@'){“
tohle stejně nebude fungovat, v apostrofech mohou být i řetězce a PHP se znaky nijak výjimečně nezachází, použijte strpos() a stále jste ne nepoučil, co vám nefunguje? neodešle se email? Vypíše to něco? nějaká chyba? co to dělá? co to nedělá? nejsme věštci |
||
Pavel.Prochy Profil * |
#7 · Zasláno: 7. 2. 2009, 21:11:40
OK opravil jsem & ALE pořád nic
Vyplňuji formulář a když vyplnim všechny pole kromě toho s promenou $kontrola a dam odeslat tak mi to vyhodí chybu správně (Špatně jste opsal/a ověřovací kód) pokud ale vyplním celý formulář včetně @ a spravne opsaneho overovaciho kodu tak mi vyhodi chybu (Zapoměl/a jste na @). VIZ.: http://www.proucetnictvi.cz/kontakt.html |
||
Alphard Profil |
#8 · Zasláno: 7. 2. 2009, 21:17:33
„Zapoměl/a jste na @“
použil jste strpos() |
||
Alphard Profil |
#9 · Zasláno: 7. 2. 2009, 21:23:22
($kontrola!="8UY3") || ($kontrola!="O6SP") || ($kontrola!="E97M") || ($kontrola!="GW9A")
dejte tam in_array() a je to |
||
Pavel.Prochy Profil * |
#10 · Zasláno: 7. 2. 2009, 21:32:10
$zavinac = strpos($adresaOdesilatele,'@'); if($komu=="" || $odesilatel=="" || $adresaOdesilatele=="" || $predmet=="" || $textMailu==""){ echo "Pravděpodobně jste nevyplnili všechny údaje</br><img src=./images/no.gif alt=NO />"; } elseif(($kontrola!="8UY3") && ($kontrola!="O6SP") && ($kontrola!="E97M") && ($kontrola!="GW9A")){ echo "Špatně jste opsal/a ověřovací kód"; } elseif($adresaOdesilatele == FALSE){ echo "Zapoměl/a jste na @"; } else{ mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele."> \r\n".$hlavicky); echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; } ?> Pořád správné fungování |
||
Nat Profil * |
#11 · Zasláno: 7. 2. 2009, 22:53:03
IMHO zkus tohle
$kontrola_pole = array ('8UY3', 'O6SP', 'E97M', 'GW9A'); $kontrola_ok = in_array ($kontrola, $kontrola_pole); $zavinac = strpos($adresaOdesilatele,'@'); if ($komu=="" || $odesilatel=="" || $adresaOdesilatele=="" || $predmet=="" || $textMailu=="" || $kontrola==""){ echo "Pravděpodobně jste nevyplnili všechny údaje</br><img src=./images/no.gif alt=NO />"; } elseif ($kontrola_ok == FALSE){ echo "Špatně jste opsal/a ověřovací kód"; } elseif ($zavinac == FALSE){ echo "Zapoměl/a jste na @"; } else{ mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele); echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; } |
||
Alphard Profil |
#12 · Zasláno: 7. 2. 2009, 23:00:03
já bych to stavěl spíš takhle, jde o to, aby jste nevypisoval chyby po jednom, ale upozornil na všechny najednou
za syntaktickou chybu neručím, upravovat to v tomhle formu není zrovna moc přehledné <?php $chyba = ""; if($komu=="" || $odesilatel=="" || $adresaOdesilatele=="" || $predmet=="" || $textMailu=="") $chyba .= "Pravděpodobně jste nevyplnili všechny údaje</ br>"; if(in_array ($kontrola, array ("8UY3", "O6SP", "E97M", "GW9A"))) $chyba .= "Špatně jste opsal/a ověřovací kód</ br>"; if(strpos ($adresaOdesilatele,'@') === false) $chyba .= "Zapoměl/a jste na @</ br>"; if (empty ($chyba)){ if (mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele."> \r\n".$hlavicky)) echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; } else echo $chyba."<img src=./images/no.gif alt=NO />"; ?> |
||
Pavel.Prochy Profil * |
#13 · Zasláno: 7. 2. 2009, 23:45:00
Super díky moc, nejlépe funkční je kód od NATa:
$kontrola_pole = array ('8UY3', 'O6SP', 'E97M', 'GW9A'); $kontrola_ok = in_array ($kontrola, $kontrola_pole); $zavinac = strpos($adresaOdesilatele,'@'); if ($komu=="" || $odesilatel=="" || $adresaOdesilatele=="" || $predmet=="" || $textMailu=="" || $kontrola==""){ echo "Pravděpodobně jste nevyplnili všechny údaje</br><img src=./images/no.gif alt=NO />"; } elseif ($kontrola_ok == FALSE){ echo "Špatně jste opsal/a ověřovací kód"; } elseif ($zavinac == FALSE){ echo "Zapoměl/a jste na @"; } else{ mail ($komu, "=?UTF-8?B?".base64_encode($predmet)."?=", $textMailu, "From: =?UTF-8?B?".base64_encode($odesilatel)."?=<".$adresaOdesilatele); echo "Odeslání e-mailu bylo úspěšné</br><img src=./images/ok.gif alt=OK />"; } |
||
Tomasds Profil |
#14 · Zasláno: 7. 2. 2009, 23:47:06
<ot>zapomněl</ot>
|
||
Časová prodleva: 15 let
|
0