| Autor | Zpráva | ||
|---|---|---|---|
| ONdra28 Profil * |
Zdravím,
napsal jsem si návštěvní knihu a eště než s odešle příspěvěk tak samozřejmně ochrana typu opište kód z obrázku blablabla... No takže návštěvní knihu mám napsanou, captchu taky s náhodným řetězcem a vás se ptám jak ten náhodný řetězec nějak "uchovat" aby zůstal stejný i po odeslání formuláře, protože při psaní vzkazu se nějaký vygeneruje...a při odeslání s e vygeneruje jiný tak je nemůžu kontrolovat... Jak to řešíte vy ? Díky za odpovědi. |
||
| Radek9 Profil |
#2 · Zasláno: 4. 8. 2009, 09:54:09
sessions, cookies, get, post.... jinak to snad už ani nejde.
|
||
| ONdra28 Profil * |
#3 · Zasláno: 4. 8. 2009, 10:09:47
Já to přes SESSION zkoušel ale stejně to nešlo :(
Kod:
<?php
session_start();
include("fces.php");
$znaky ="abcdefghijklmnopqrstuvwxyz";
$textik = "";
for($i=0;$i<=7;$i++) {
$textik .= $znaky[rand(0,strlen($znaky) - 1)];
$_SESSION["code"] = $textik;
if(isset($_POST["submit"])) {
mysql_connect("localhost","root","") or Die("Could not connect to DB");
mysql_select_db("developer") or Die("Could not select DB");
//Tahani promennych z formu, casem si na to udelam funkci :D
$nick = $_POST["nick"];
$mail = $_POST["mail"];
$text = $_POST["text"];
$ip = $_SERVER["REMOTE_ADDR"];
$code = $_POST["code"];
if($nick=="" or $mail=="" or $text=="" or $code=="") {
$error = "Vsechna pole musite vyplnit";
}
if(!strpos("@",$mail)) {
$error = "Policko E-mail je nespravne vyplnene !";
}
if($code!=$_SESSION["code"]) {
$error = "Text z obrazku je spatne vyplneny !";
}
$text = Over($text);
if(!$error) {
$dotaz = mysql_query("INSERT INTO guestbook (jmeno,mail,text,ip) VALUES('". $nick ."','". $mail ."','". $text ."','". $ip ."')") ? "Pøidání záznamu bylo úspìšné !" : "Nìco selhalo !";
echo $dotaz . mysql_error();
} else {
echo $error;
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta name="generator" content="PSPad editor, www.pspad.com">
<title></title>
</head>
<body>
<form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="post">
<label>Jméno</label><input type="text" name="nick" /> <br />
<label>E-mail</label><input type="text" name="mail" /> <br />
<label>Text zprávy</label> <br />
<textarea cols="40" rows="4" name="text"></textarea> <br />
<img src="kapca.php?code=<?php echo $_SESSION["code"] ;?>" alt="Security code" /> <br />
<label>Opište text z obrázku</label><input type="text" name="code" /> <br />
<input type="submit" name="submit" value="Odešli pøíspìvek" />
</form>
</body>
</html>
|
||
| ONdra28 Profil * |
#4 · Zasláno: 4. 8. 2009, 11:00:11
Vyřešeno... už mi to šlape
|
||
| Aichi Profil * |
#5 · Zasláno: 4. 8. 2009, 13:15:35
jestli do toho src obrázku strkáš např. kapca.php?code=ahoj a člověk má opsat "ahoj" tak to není moc neprůstřelný, takže doufám, že ten code je nějaký jedinečný identifikátor, třeba osolená md5() toho opisovaného výrazu
|
||
| ONdra28 Profil * |
#6 · Zasláno: 4. 8. 2009, 14:09:12
kapca.php?code= ahoj sem dal uplne pryc... neda se to ze zdrojaku vycist pouze z obrazku
|
||
|
Časová prodleva: 17 let
|
|||
0