Což o to, původně to mám takhle řešeno ovšem problém byl ( ještě na aktuálních stránkách pobočky je ) v tom, že pokud nesedí nějaký údaj, zejména mi jde o e-mail tak se smazal celý vyplněný formulář.
V podstatě nejsem schopný do tohoto, což funguje bez chyb ( i když souhlasím, že lepší je vypisování na stránku než do vyskakovacího okna ) :
<?php
function checkmail($mail){
$mail = trim($mail);
if(!preg_match("/^[a-z0-9_-]{1,20}+(\.){0,20}+([a-z0-9_-]){0,20}@(([a-z0-9-]+\.)+(com|net|org|mil|".
"edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
"9]{1,3}\.[0-9]{1,3})$/is",$mail))
return 0;
return $mail;
}
if(isset($_POST['go']) || ($_POST['go'] == 'Odeslat'))
{
$_ERR='';
$_print='';
$name = htmlspecialchars(strip_tags(trim($_POST['jmeno'])));
$prijmeni = htmlspecialchars(strip_tags(trim($_POST['prijmeni'])));
$email = htmlspecialchars(strip_tags($_POST['email']));
$pass = htmlspecialchars(strip_tags(trim($_POST['pass'])));
$text = htmlspecialchars(strip_tags(trim($_POST['text'])));
if(!isset($name) OR $name == '')
{
$_ERR.='<span style="color:red">Chyba: Nezadal jste jméno!</span>';
}
elseif(!isset($prijmeni) OR $prijmeni == '')
{
$_ERR.='<span style="color:red">Chyba: Nezadal jste příjmeni!</span>';
}
elseif(checkmail($email) === 0)
{
$_ERR.='<span style="color:red">Chyba: Nezadal jste email nebo byl zadán špatně!</span>';
}
elseif(!isset($pass) OR $pass == '')
{
$_ERR.='<span style="color:red">Chyba: Zadejte heslo!</span>';
}
elseif(empty($text))
{
$_ERR.='<span style="color:red">Chyba: Napište zpravu!</span>';
}
/*------NOVE----------*/
if($_ERR != '')
{
$_print = $_ERR;
}
else
{
echo'
<script>
alert("Data jsou odeslána")
</script>
';
}
/*-------KONEC--------*/
}
?>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="generator" content="PSPad editor,
www.pspad.com">
<title></title>
</head>
<body>
<?php
echo $_print;
?>
<form action="" method="POST">
<table style="250px; border:3px solid black;">
<tr><td style="width:100px;">Jméno:</td>
<td style="width:150px;"> <input type="text"
name="jmeno" value="<?php echo $name;?>"></td></tr>
<tr><td style="width:100px;">Príjmení:</td>
<td style="width:150px;"> <input type="text"
name="prijmeni" value="<?php echo $prijmeni;?>"></td></tr>
<tr><td style="width:100px;">E-mail:</td>
<td style="width:150px;"> <input type="text"
name="email" value="<?php echo $email;?>"></td></tr>
<tr><td style="width:100px;">heslo:</td>
<td style="width:150px;"> <input type="password"
name="pass"></td></tr>
<tr><td style="width:100px;">Zprava:</td>
<td style="width:150px;"><textarea rows="5" cols="25" wrap="soft"
name="text"><?php echo $text;?></textarea></td></tr>
<tr><td colspan="2" style="width:250px; text-align:right;">
<input type="submit" name="go" value="Odeslat"></td></tr>
</table>
</form>
</body>
</html>
Nacpat ( integrovat ) něco v tomto duchu :
'.$message;
// $to - příjemce emailu
$to = '
tpilar@atlas.cz,tomasvesec@seznam.cz';
// $from - odesílatel
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
$headers .= 'From: tpilar.cz<
tpilar@atlas.cz>'. "\r\n";
if(mail($to, $title, $mess, $headers)){ // TOHLE ZŘEJMĚ NEBUDE JIŽ VŮBEC POTŘEBA
echo 'E-mail byl odeslán. Děkujeme.'; // TOHLE ZŘEJMĚ TAKÉ NE JE TO ŘEŠENO TÍM VYSKAKOVACÍM OKNEM
Nejsem si jist ani hlavičkou, ani proměnnými zda nemusí být ještě jinde definovány.
Další věc jenž se pokouším vyřešit je to heslo. Aby tam bylo konkrétní heslo typu, zvíře žijící v lese s parohy jelen.
Tam mám problém s tím, zda to řešit samostatnou funkcí nebo jen někde zde :
}
// TEDY ZDA MOHU MÍT ZDE if $pass == 'jelen'
elseif(!isset($pass) OR $pass == '') // nebo zde žádné OR ale jen $pass <> 'jelen' přičemž obojí tam zřejmě být nemůže
{
$_ERR.='<span style="color:red">Chyba: Zadejte heslo!</span>';