pracuję nad prostym systemem komentarzy. Zastosowałem sexy captcha, zgodnie z opisem na stronie: http://blog.lukeblackamore.com/2009/10/sex...op-captcha.html
moja stronka: http://trzezwymokiem.ovh.org/drudle/comment.php
Mechanizm działa, ale połowicznie. Tzn rzeczywiście jeśli zostanie wskazany zły element to dodanie komentarza nie zadziała, jednak jeśli nie zostanie wskazany żadny element, dodanie przechodzi gładko. Błąd jest jak przypuszczam gdzieś w zmiennych w sesji. Oto kody
comment.php:
<?php session_start(); ?> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" /> <link rel="stylesheet" href="styl.css" type="text/css"> <link rel="stylesheet" type="text/css" media="all" href="css/sexy-captcha/styles.css" /> <script type="text/javascript" > $(function() { $(".submit").click(function() { var name = $("#name").val(); var comment = $("#comment").val(); var dataString = 'name='+ name + '&comment=' + comment; if(name=='' || comment=='') { alert('Wpisz nick oraz treść komentarza'); } else { $("#flash").show(); $("#flash").fadeIn(400).html('<img src="ajax-loader.gif" />Loading Comment...'); $.ajax({ type: "POST", url: "commentajax.php", data: dataString, cache: false, success: function(html){ $("ol#update").append(html); $("ol#update li:last").fadeIn("slow"); $("#flash").hide(); } }); }return false; }); }); $(document).ready(function() { $('.myCaptcha').sexyCaptcha('captcha.process.php'); }); </script> </head> <body> <div id="srodek"> <div> <form action="#" method="post" id="formularz"> <ol id="update" class="timeline"> </ol> </div> </div> </body> </html>
commentajax.php:
<?php header('Content-Type: text/html; charset=ISO-8859-2'); function znaki_pl($string) { $przed= array('%u0105','%u0107','%u0119','%u0142','%u0144','%F3','%u015B','%u017A','%u017C', '%u0104','%u0106','%u0118','%u0141','%u0143','%D3','%u015A','%u0179','%u017B'); $po= array("ą","ć","ę","ł","ń","ó","ś","ź","ż", "Ą","Ć","Ę","Ł","Ń","Ó","Ś","Ź","Ż"); $string = str_replace($przed, $po, $string); return $string; } session_start(); $requestVars = isset($_REQUEST) ? $_REQUEST : array(); echo $_SESSION['captchaCodes'][$_SESSION['captchaAnswer']]; if (substr($requestVars['captcha'], 10) != $_SESSION['captchaCodes'][$_SESSION['captchaAnswer']]) { if($_POST) { $name=$_POST['name']; $email=$_POST['email']; $comment=$_POST['comment']; $lowercase = strtolower($email); $image = md5( $lowercase ); require('ustawienia.php'); connection(); $q="INSERT into drudle_comment (name, comment, drudle_id) values ('$name', '$comment', '1')"; mysql_query($q); } else { } ?> <li class="box"> <br /> <?php echo $comment; ?> </li> <? } else { } ?>