Autor Zpráva
Pavel.Prochy
Profil *
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
elseif(($kontrola!="8UY3") || ($kontrola!="O6SP") || ($kontrola!="E97M") || ($kontrola!="GW9A")){

tady by měl bejt operátor and ... && místo || ...
Alphard
Profil
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 *
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
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
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 *
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
Zapoměl/a jste na @
použil jste strpos()
Alphard
Profil
($kontrola!="8UY3") || ($kontrola!="O6SP") || ($kontrola!="E97M") || ($kontrola!="GW9A")

dejte tam in_array() a je to
Pavel.Prochy
Profil *
$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 *
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
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 *
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
<ot>zapomněl</ot>

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: