Autor Zpráva
Tanaris
Profil
Našel jsem si captcha formulář, protože php prakticky neumím. Když ho, ale testuju jsou tam věci, které mi nevyhovují a nevím jak je opravit. Když nevyplním ve správném tvaru email tak mě to upozorní. Ale nic takového není u toho když opíšu text z obrázku špatně nebo dám odeslat prázdný formulář. Vím, že jsou na to php příkazy, které se musí napsat do formuláře. Mohli byste mi ukázat jak to má být správně ošetřené?

http://testwebtanaris.czweb.org/kontakty.php#informace_kontakt

tady je php kód

<?php
session_start();
if (!empty($_REQUEST['captcha'])) 
{
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) 
    {
        $oznameni= 'Opište prosím správně text z obrázku';
    } 
    else 
    {
    if($_SERVER["REQUEST_METHOD"] == "POST")
{
// promenne
$jmeno = $_POST["jmeno"];
$email = $_POST["email"];
$txt = $_POST["txt"];
$moje_adresa = "tanaristano@centrum.cz"; // zmente na svoji adresu
$predmet = "Dotaz"; // zde nastavite co bude uvedeno v predmetu
$zprava = ("Jméno: " . $jmeno . "\n\n" . "Text: \n" . $txt . "\n\nOdesílatel: " . $email);
// odeslani emailu
mail($moje_adresa,$predmet,$zprava);

$oznameni= 'Zpráva byla odeslána';
}
    }
    unset($_SESSION['captcha']);
}
?>
Lorem
Profil *
if($_REQUEST['submit']) {
  if(!$_REQUEST['captcha'] || !$_REQUEST['email'] || !$_REQUEST['jmeno'] || !$_REQUEST['txt']) {
   $oznameni= 'Nevyplnili jste všechny povinné údaje';
  }
  elseif(!preg_match("/^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6}+$/", $_REQUEST['email']) {
   $oznameni='Email je zadán ve špatném formátu';
  }
  elseif($_REQUEST['captcha']!=$_SESSION['captcha']) {
   $oznameni='Kontrolní kód nesouhlasí';
  }
  else {
   // ....script pro odeslání formuláře
  }
}
Pro příště doporučuji přečíst základy php...bylo to narychlo, omlouvám se za případné chyby.
Tanaris
Profil
Takhle asi ne co? Háže mi to chybu. Zatím se učím zvládat html a css. Na php jsem se ještě nedíval, tak nemám o jeho funkcích moc velkou představu.

<?php
session_start();
if($_REQUEST['submit']) {
  if(!$_REQUEST['captcha'] || !$_REQUEST['email'] || !$_REQUEST['jmeno'] || !$_REQUEST['txt']) {
   $oznameni= 'Nevyplnili jste všechny povinné údaje';
  }
  elseif(!preg_match("/^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,6}+$/", $_REQUEST['email']) {
   $oznameni='Email je zadán ve špatném formátu';
  }
  elseif($_REQUEST['captcha']!=$_SESSION['captcha']) {
   $oznameni='Kontrolní kód nesouhlasí';
  }
  else {
   if (!empty($_REQUEST['captcha'])) 
{
    if (empty($_SESSION['captcha']) || trim(strtolower($_REQUEST['captcha'])) != $_SESSION['captcha']) 
    {
        $oznameni= 'Opište prosím správně text z obrázku';
    } 
    else 
    {
    if($_SERVER["REQUEST_METHOD"] == "POST")
{
// promenne
$jmeno = $_POST["jmeno"];
$email = $_POST["email"];
$txt = $_POST["txt"];
$moje_adresa = "tanaristano@centrum.cz"; // zmente na svoji adresu
$predmet = "Dotaz"; // zde nastavite co bude uvedeno v predmetu
$zprava = ("Jméno: " . $jmeno . "\n\n" . "Text: \n" . $txt . "\n\nOdesílatel: " . $email);
// odeslani emailu
mail($moje_adresa,$predmet,$zprava);
 
$oznameni= 'Zpráva byla odeslána';
}
    }
    unset($_SESSION['captcha']);
}
  }
}
?>

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: