| Autor | Zpráva | ||
|---|---|---|---|
| kesaj Profil |
#1 · Zasláno: 10. 3. 2011, 10:29:42 · Upravil/a: kesaj
Zdravím, mám vytvorený mailový formulár :
PHP : <?php
$jmeno = $_POST['jmeno'];/*takto proměnné přidělíme to co bylo odesláno ve formuláři metodou POST s atributem name="jmeno"*/
$telefon = $_POST['telefon'];
$mail = $_POST['mail'];
$predmet = $_POST['predmet'];
$schodzka = isset($_POST['schodzka']) ? 'Zákazník má záujem o prezentačnú schôdzku.' : '';
$spam = $_POST['spam'];
$text = $_POST['text'];
$sprava ="Meno : $jmeno\r\n Telefon: $telefon\r\n Text: $text\r\n Schodzka: $schodzka\r\n";
$prijemce = "abra@abitec.sk";
/*vyplníte mail, na který se má formulář odesílat*/
$zahlavi = "From: " . $mail . "\r\n"
. "Content-Type: text/plain; charset=UTF-8; format=flowed\n"
. "MIME-Version: 1.0\n"
. "Content-Transfer-Encoding: 8bit\n"
. "X-Mailer: PHP\n";
/*zobrazuje pak v mailu jako kdyby vám mail přišel přímo z tohoto mailu, můžete pak tedy rovnou odpovídat na mail, který uživatel uvedl*/
/*takto zajistíme, aby se mail neodeslal, pokud nejsou všechna pole vyplněna*/
if ( !empty($jmeno) and !empty($mail) and !empty($predmet) and !empty($text) and $spam=="2") {
mail($prijemce, $predmet, $sprava, $zahlavi);
echo "<script>alert('Ďakujeme. Vaša správa bola úspešne odoslaná. V krátkom čase Vás budeme kontaktovať.');</script>";
echo "<script type=\"text/javascript\">
setTimeout(\"self.location.replace('http://www.abitec.sk')\", 1*1000)
</script>";
/*toto se vypíše do dokumentu, pokud se mail odešle*/
} else {
echo "<script>alert('Prosíme Vás, aby ste vyplnili všetky údaje, prípadne správne zadali výsledok 1+1 a správu odoslali znova. Ďakujeme.');</script>"; /*toto se vypíše pokud nebudou vyplněna všechna pole, mail se neodešle*/
echo "<script type=\"text/javascript\">
setTimeout(\"self.location.replace('index.php?page=abra_objednavka')\", 1*100)
</script>";
}
?>HTML : <tr> <td class="kontakt"><strong>Vypočítaj: 1 + 1 = ? </strong> </td> <td><input name="spam" size="3" type="text"/> (ochrana proti spamu)</td> </tr> Mám jednoduchú ochranu proti spamu, výpočet príkladu. Chcem to trošku zdokonaliť tým, že by sa po refreshe stránky sa zobrazil iný príklad, teda mal by som vytvorených 5 príkladov, ktoré by sa menili...ako to spraviť ? Ďakujem. |
||
| YoSarin Profil |
#2 · Zasláno: 10. 3. 2011, 11:55:53 · Upravil/a: YoSarin
1) vygeneruj si dvě náhodná čísla $a a $b (pomocí rand())
2) proveď s nimi požadovanou aritmetickou operaci (sčítání, odčítání, dělení, násobení, whatever) a výsledek ulož do session ($_SESSION['captcha']['code'] = $a + $b;) 3) uživateli zobraz odpovídající dotaz (echo $a . ' ' . $operator . ' ' . $b . ' = ';) 4) po odeslání formuláře zkontroluj jestli zaslaná hodnota odpovídá tomu co je uloženo v session ($_SESSION['captcha']['code'] == $spam;) 5) proti sofistikovaným robotům to moc nepomůže, protože může umět aritmetiku bez problémů :( |
||
| rad Profil * |
#3 · Zasláno: 10. 3. 2011, 12:05:51
me funguje tohle - uplne jednoduse proste misto dat vlozim obrazek a ten pak overuji - zatim zadny spam ...
|
||
|
Časová prodleva: 15 let
|
|||
0