Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]kod CAPTCHA w formularzu kontaktowym
Forum PHP.pl > Forum > Przedszkole
pomek2
Witam,
do poniższego fragmentu kodu:

  1. info_box("note", _FEEDBACKNOTE);
  2. $form_block = "
  3. <div align=\"center\">
  4. <table border=\"0\" width=\"70%\">
  5. <tr><td nowrap><FORM METHOD=\"post\" ACTION=\"modules.php?name=$module_name\">
  6. <strong>"._YOURNAME.":</strong><br /><INPUT type=\"text\" NAME=\"sender_name\" VALUE=\"$sender_name\" style=\"width:350px;\"></td></tr>
  7. <tr><td nowrap><strong>"._YOUREMAIL.":</strong><br /><INPUT type=\"text\" NAME=\"sender_email\" VALUE=\"$sender_email\" style=\"width:350px;\"></td></tr>
  8. <tr><td><strong>"._MESSAGE.":</strong><br /><TEXTAREA NAME=\"message\" style=\"width:350px; height:100px;\" WRAP=virtual>$message</TEXTAREA><br>
  9. <tr><td><strong>"._CODE.":</strong><br /><br /><img src=\"token/captcha.php\"><br /><br /><input type=\"text\" name=\"tokens\" value=\"\" style=\"width:120px; height:30px;\"></td></tr>
  10. <font class=\"tiny\">"._HTMLNOTALLOWED2."</font></td></tr>
  11. <tr><td>&nbsp;<INPUT type=\"hidden\" name=\"opi\" value=\"ds\">
  12.  
  13. <INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\""._SEND."\">
  14. </FORM></td></tr></table>
  15. </div>";
  16.  
  17.  
  18. if ($_POST['opi'] != "ds") {
  19. echo $form_block;
  20. } else {
  21. if (empty($sender_name)) {
  22. $name_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERNAME."</em></strong></span></div>";
  23. $send = "no";
  24. }
  25. if (empty($sender_email)) {
  26. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTEREMAIL."</em></strong></span></div>";
  27. $send = "no";
  28. }
  29. if (empty($tokens)) {
  30. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERCODE."</em></strong></span></div>";
  31. $send = "no";
  32. }
  33. if (empty($message)) {
  34. $message_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERMESSAGE."</em></span></font></div>";
  35. $send = "no";
  36. }
  37. if ($send != "no") {
  38. $sender_name = removecrlf(filter($sender_name, "nohtml"));
  39. $sender_email = removecrlf(filter($sender_email, "nohtml"));
  40. $message = str_replace("\n", "<br />", $message);
  41. $ip = $_SERVER['REMOTE_ADDR'];
  42. $year = date("Y");
  43. $full_date = date("Y-m-d H:i:s");
  44. $tmpl_file = "modules/Feedback/mail.html";
  45. $thefile = implode("", file($tmpl_file));
  46. $thefile = addslashes($thefile);
  47. $thefile = "\$r_file=\"".$thefile."\";";
  48. eval($thefile);
  49. $msg = $r_file;
  50. /*$msg = "$sitename\n\n";
  51. $msg .= ""._SENDERNAME.": $sender_name\n";
  52. $msg .= ""._SENDEREMAIL.": $sender_email\n";
  53. $msg .= ""._MESSAGE.": $message\n\n";*/
  54. $to = $adminmail;
  55. $mailheaders = 'MIME-Version: 1.0' . "\n";
  56. $mailheaders .= 'Content-type: text/html; charset=iso-8859-2' . "\n";
  57. $mailheaders .= "From: $sender_name <$sender_email>\n";
  58. $mailheaders .= "Reply-To: $sender_email\r\n";
  59. mail($to, $subject, $msg, $mailheaders);
  60. echo "<p><div align=\"center\">"._FBMAILSENT."</div></p>";
  61. echo "<p><div align=\"center\">"._FBTHANKSFORCONTACT."</div></p>";
  62. } elseif ($send == "no") {
  63. OpenTable2();
  64. if (!empty($name_err)) { echo "$name_err"; }
  65. if (!empty($email_err)) {echo "$email_err"; }
  66. if (!empty($message_err)) {echo "$message_err"; }
  67. CloseTable2();
  68. echo "";
  69. echo $form_block;
  70. }
  71. }


próbuje dodać kod CAPTCHA, wszystko działa ok, kod się wyświetla prawidłowo. lecz nie wiem
jak zrobić żeby kod był sprawdzany, bo teraz w pole pod obrazkiem można wpisać byle co i można wysłać wiadomość,
za sprawdzenie odpowiada poniższy plik: "sprawdz.php"

  1.  
  2. <?
  3.  
  4. if($_POST['captcha'] != $_SESSION['captcha']){
  5.  
  6. echo '<span style="color: #ff0000;">Błędny kod. Spróbuj jeszcze raz.</span> <a href="index.php" title="Powrót">Powrót</a>';
  7.  
  8. }else{
  9.  
  10. echo '<span style="color: #008000;">Kod poprawny.</span>';
  11.  
  12. }
  13. ?>


lecz nie mam pojęcia jak się do niego odwołać , dziękuję za wszystkie rady.
bleblok
A ten sprawdz.php includujesz jakoś w powyższym fragmencie kodu?

Wystarczy coś takiego:
  1. if($_POST['captcha'] != $_SESSION['captcha']){
  2. $send = "no";
  3. echo '<span style="color: #ff0000;">Błędny kod. Spróbuj jeszcze raz.</span> <a href="index.php" title="Powrót">Powrót</a>';
  4. }
pomek2
bardzo dziękuję za wskazówkę,
wstawiłem kod jednak nawet gdy wpiszę poprawnie kod to wyskakuje błąd: wpisano błędny kod

poniżej zamieszczam pełny kod, może coś jeszcze należy dodać

  1.  
  2.  
  3.  
  4. <?php
  5.  
  6. if (!defined('MODULE_FILE')) {
  7. die ("You can't access this file directly...");
  8. }
  9.  
  10. require_once("mainfile.php");
  11. $module_name = basename(dirname(__FILE__));
  12. get_lang($module_name);
  13.  
  14. #define('INDEX_FILE', true);
  15. $pagetitle = "- Kontakt";
  16. $subject = $sitename." "._FEEDBACK;
  17. define('NO_EDITOR', true);
  18.  
  19. include("header.php");
  20.  
  21. if (!isset($opi) OR ($opi != "ds")) {
  22. $intcookie = intval($cookie[0]);
  23. if (!empty($cookie[1])) {
  24. $sql = "SELECT name, username, user_email FROM ".$user_prefix."_users WHERE user_id='".$intcookie."'";
  25. $result = $db->sql_query($sql);
  26. $row = $db->sql_fetchrow($result);
  27. $db->sql_freeresult($result);
  28. if (!empty($row['name'])) {
  29. $sender_name = filter(str_replace(",", " ", $row['name']), "nohtml");
  30. } else {
  31. $sender_name = filter(str_replace(",", " ", $row['username']), "nohtml");
  32. }
  33. $sender_email = filter($row['user_email'], "nohtml");
  34. } else {
  35. $sender_email = "";
  36. $sender_name = "";
  37. }
  38. }
  39.  
  40. if (!isset($message)) { $message = ""; }
  41. if (!isset($opi)) { $opi = ""; }
  42. if (!isset($send)) { $send = ""; }
  43. OpenTableMain();
  44. echo "<br />";
  45. info_box("note", _FEEDBACKNOTE);
  46. $form_block = "
  47. <div align=\"center\">
  48. <table border=\"0\" width=\"70%\">
  49. <tr><td nowrap><FORM METHOD=\"post\" ACTION=\"modules.php?name=$module_name\">
  50. <strong>"._YOURNAME.":</strong><br /><INPUT type=\"text\" NAME=\"sender_name\" VALUE=\"$sender_name\" style=\"width:350px;\"></td></tr>
  51. <tr><td nowrap><strong>"._YOUREMAIL.":</strong><br /><INPUT type=\"text\" NAME=\"sender_email\" VALUE=\"$sender_email\" style=\"width:350px;\"></td></tr>
  52. <tr><td><strong>"._MESSAGE.":</strong><br /><TEXTAREA NAME=\"message\" style=\"width:350px; height:100px;\" WRAP=virtual>$message</TEXTAREA><br>
  53. <tr><td><strong>"._CODE.":</strong><br /><br /><img src=\"token/captcha.php\"><br /><br /><input type=\"text\" name=\"tokens\" value=\"\" style=\"width:120px; height:30px;\"></td></tr>
  54. <font class=\"tiny\">"._HTMLNOTALLOWED2."</font></td></tr>
  55. <tr><td>&nbsp;<INPUT type=\"hidden\" name=\"opi\" value=\"ds\">
  56.  
  57. <INPUT TYPE=\"submit\" NAME=\"submit\" VALUE=\""._SEND."\">
  58. </FORM></td></tr></table>
  59. </div>";
  60.  
  61.  
  62. if ($_POST['opi'] != "ds") {
  63. echo $form_block;
  64. } else {
  65. if (empty($sender_name)) {
  66. $name_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERNAME."</em></strong></span></div>";
  67. $send = "no";
  68. }
  69. if (empty($sender_email)) {
  70. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTEREMAIL."</em></strong></span></div>";
  71. $send = "no";
  72. }
  73. if (empty($tokens)) {
  74. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERCODE."</em></strong></span></div>";
  75. $send = "no";
  76. }
  77. if ($_POST['captcha'] != $_SESSION['captcha']){
  78. $email_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._WRONGCODE."</em></strong></span></div>";
  79. $send = "no";
  80. }
  81. if (empty($message)) {
  82. $message_err = "<div align=\"center\"><span class=\"option\"><strong><em>"._FBENTERMESSAGE."</em></span></font></div>";
  83. $send = "no";
  84. }
  85. if ($send != "no") {
  86. $sender_name = removecrlf(filter($sender_name, "nohtml"));
  87. $sender_email = removecrlf(filter($sender_email, "nohtml"));
  88. $message = str_replace("\n", "<br />", $message);
  89. $ip = $_SERVER['REMOTE_ADDR'];
  90. $year = date("Y");
  91. $full_date = date("Y-m-d H:i:s");
  92. $tmpl_file = "modules/Feedback/mail.html";
  93. $thefile = implode("", file($tmpl_file));
  94. $thefile = addslashes($thefile);
  95. $thefile = "\$r_file=\"".$thefile."\";";
  96. eval($thefile);
  97. $msg = $r_file;
  98. /*$msg = "$sitename\n\n";
  99. $msg .= ""._SENDERNAME.": $sender_name\n";
  100. $msg .= ""._SENDEREMAIL.": $sender_email\n";
  101. $msg .= ""._MESSAGE.": $message\n\n";*/
  102. $to = $adminmail;
  103. $mailheaders = 'MIME-Version: 1.0' . "\n";
  104. $mailheaders .= 'Content-type: text/html; charset=iso-8859-2' . "\n";
  105. $mailheaders .= "From: $sender_name <$sender_email>\n";
  106. $mailheaders .= "Reply-To: $sender_email\r\n";
  107. mail($to, $subject, $msg, $mailheaders);
  108. echo "<p><div align=\"center\">"._FBMAILSENT."</div></p>";
  109. echo "<p><div align=\"center\">"._FBTHANKSFORCONTACT."</div></p>";
  110. } elseif ($send == "no") {
  111. OpenTable2();
  112. if (!empty($name_err)) { echo "$name_err"; }
  113. if (!empty($email_err)) {echo "$email_err"; }
  114. if (!empty($message_err)) {echo "$message_err"; }
  115. CloseTable2();
  116. echo "";
  117. echo $form_block;
  118. }
  119. }
  120.  
  121. CloseTableMain();
  122. include("footer.php");
  123.  
  124. ?>
  125.  
  126.  


ok już działa, dziękuję za pomoc. zamykam temat
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.