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
sessions, cookies, get, post.... jinak to snad už ani nejde.
ONdra28
Profil *
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 *
Vyřešeno... už mi to šlape
Aichi
Profil *
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 *
kapca.php?code= ahoj sem dal uplne pryc... neda se to ze zdrojaku vycist pouze z obrazku

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: