| 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: 17 let
|
|||
0