За последние 24 часа нас посетили 64273 программиста и 1753 робота. Сейчас ищут 1794 программиста ...

kcaptcha

Тема в разделе "Вопросы от блондинок", создана пользователем Fant0M, 12 дек 2006.

  1. Fant0M

    Fant0M Активный пользователь

    С нами с:
    5 дек 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Миасс
    подскажите пожалуйста как пользоваться этой штукой?
    скачал отсюда http://captcha.ru

    поместил код себе на страницу, выводит ошибку:
     
  2. Fant0M

    Fant0M Активный пользователь

    С нами с:
    5 дек 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Миасс
    оть, нашел
    убрал вот это:
    PHP:
    1.  
    2. <?
    3.         if(function_exists("imagejpeg")){
    4.             header("Content-Type: image/jpeg");
    5.             imagejpeg($img2, null, $jpeg_quality);
    6.         }else if(function_exists("imagegif")){
    7.             header("Content-Type: image/gif");
    8.             imagegif($img2);
    9.         }else if(function_exists("imagepng")){
    10.             header("Content-Type: image/x-png");
    11.             imagepng($img2);
    12.         }
    13. ?>
    14.  
    ошибка пропала... но капча усе равно не работает, пишет:

    Notice: Undefined index: PHPSESSID in z:\***\index.php on line 15
    Notice: Undefined variable: _SESSION in z:\***\index.php on line 36
    Вот индекс:
    PHP:
    1.  
    2. <html>
    3. <body>
    4. <?php
    5.  
    6.  
    7. include('kcaptcha.php');
    8.  
    9. if(isset($_REQUEST[session_name()])){
    10.     session_start();
    11. }
    12.  
    13. $captcha = new KCAPTCHA();
    14.  
    15. if($_REQUEST[session_name()]){
    16.     $_SESSION['captcha_keystring'] = $captcha->getKeyString();
    17. }
    18.  
    19. ?>
    20.  
    21.  
    22.     <form action="./" method="post">
    23.     <p>Enter text shown below:</p>
    24.     <p><img src="PATH-TO-THIS-SCRIPT?<?php echo session_name()?>=<?php echo session_id()?>"></p>
    25.     <p><input type="text" name="keystring"></p>
    26.     <p><input type="submit" value="проверить"></p>
    27.     </form>
    28.     <?php
    29.     if(count($_POST)>0){
    30.         if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring']){
    31.             echo "Correct";
    32.         }else{
    33.             echo "Wrong";
    34.         }
    35.     }
    36.     unset($_SESSION['captcha_keystring']);
    37.     ?>
    38. </body></html>
    39.  
     
  3. Anonymous

    Anonymous Guest

    Fant0M, это убирать не надо.
    1.еще раз прочитай статью по ссылке. это раз.
    2.не надо непеределанные примеры использовать. это два.
     
  4. Fant0M

    Fant0M Активный пользователь

    С нами с:
    5 дек 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Миасс
    да прочитал, если это убирать не надо, тогда получается что
    Код (Text):
    1. [html][body][/body][/html]
    были лишними... но если их убрать, то отображается только сама картинка (((

    Вот вообще оригинал:
    PHP:
    1. <?php
    2.  
    3.  
    4. /* Using:
    5.  
    6.     <?php
    7.     session_start();
    8.     ?>
    9.     <form action="./" method="post">
    10.     <p>Enter text shown below:</p>
    11.     <p><img src="PATH-TO-THIS-SCRIPT?<?php echo session_name()?>=<?php echo session_id()?>"></p>
    12.     <p><input type="text" name="keystring"></p>
    13.     <p><input type="submit" value="Check"></p>
    14.     </form>
    15.     <?php
    16.     if(count($_POST)>0){
    17.         if(isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] ==  $_POST['keystring']){
    18.             echo "Correct";
    19.         }else{
    20.             echo "Wrong";
    21.         }
    22.     }
    23.     unset($_SESSION['captcha_keystring']);
    24.     ?>
    25.  
    26. */
    27.  
    28. include('kcaptcha.php');
    29.  
    30. if(isset($_REQUEST[session_name()])){
    31.     session_start();
    32. }
    33.  
    34. $captcha = new KCAPTCHA();
    35.  
    36. if($_REQUEST[session_name()]){
    37.     $_SESSION['captcha_keystring'] = $captcha->getKeyString();
    38. }
    39.  
    40. ?>
    подскажите пожалуйста как сделать? А то я, как истинный блондин, вообще чет сообразить не могу ((( :roll:
     
  5. Fant0M

    Fant0M Активный пользователь

    С нами с:
    5 дек 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Миасс
    не понял фразы вообще.... что значит "непеределанные примеры"?
     
  6. Anonymous

    Anonymous Guest

    не надо. Надо перенести ниже, чем запуск сессии.
     
  7. Fant0M

    Fant0M Активный пользователь

    С нами с:
    5 дек 2006
    Сообщения:
    37
    Симпатии:
    0
    Адрес:
    Миасс
    перенес, та же ошибка...
    PHP:
    1. <?php
    2.  
    3. if(isset($_REQUEST[session_name()])){
    4.     session_start();
    5. }
    6.  
    7. include('kcaptcha.php');
    8. ?>
    9. <html><body>
    10. <?
    11. .....
    12. ?>
    упс, не заметил, исправлю...
     
  8. mzwm77

    mzwm77 Активный пользователь

    С нами с:
    30 июл 2010
    Сообщения:
    2
    Симпатии:
    0
    Помогите скрестить форму логининга и kcaptcha

    Помогите,пожалуйста,скрестить страницу логининга(код приведен ниже) и kcaptcha(http://www.captcha.ru/kcaptcha/)
    PHP:
    1.  
    2. <?php
    3.  
    4. if(eregi("opera",$HTTP_USER_AGENT))
    5.  
    6. {
    7.  
    8. echo '<p align="center"><font face="Arial"><b><font color="#800000">
    9.  
    10. Система обнаружила, что вы используете браузер &quot;Opera&quot;.
    11.  
    12. </font></b><b><font color="#800000"><br></font></b>
    13.  
    14. <font color="#008000">В магазине с панелью управления необходимо
    15.  
    16. работать с браузера отличным от &quot;</font><font color="#008000">Opera&quot;. <a href="javascript:history.go(-1)">Назад</a></font></font></p>';
    17.  
    18.  
    19. }
    20.  
    21.  
    22.  
    23.  
    24. include ('mysql.php');
    25.  
    26.  
    27.  
    28. if (isset($_GET['logout']))
    29.  
    30. {
    31.  
    32.     if (isset($_SESSION['user_id']))
    33.  
    34.         unset($_SESSION['user_id']);
    35.  
    36.        
    37.  
    38.     setcookie('login', '', 0, "/");
    39.  
    40.     setcookie('password', '', 0, "/");
    41.  
    42.     // и переносим его на главную
    43.  
    44.     header('Location: login.php');
    45.  
    46.     exit;
    47.  
    48. }
    49.  
    50.  
    51.  
    52. if (isset($_SESSION['user_id']))
    53.  
    54. {
    55.  
    56.     // юзер уже залогинен, перекидываем его отсюда на закрытую страницу
    57.  
    58.    
    59.  
    60.     header('Location: index1.php');
    61.  
    62.     exit;
    63.  
    64.  
    65.  
    66. }
    67.  
    68.  
    69.  
    70.  
    71.  
    72.  
    73.  
    74. if (!empty($_POST))
    75.  
    76. {
    77.  
    78.     $login = (isset($_POST['login'])) ? mysql_real_escape_string($_POST['login']) : '';
    79.  
    80.    
    81.  
    82.     $query = "SELECT `salt`
    83.  
    84.                 FROM `users`
    85.  
    86.                 WHERE `login`='{$login}'
    87.  
    88.                 LIMIT 1";
    89.  
    90.     $sql = mysql_query($query) or die(mysql_error());
    91.  
    92.    
    93.  
    94.     if (mysql_num_rows($sql) == 1)
    95.  
    96.     {
    97.  
    98.         $row = mysql_fetch_assoc($sql);
    99.  
    100.        
    101.  
    102.         // итак, вот она соль, соответствующая этому логину:
    103.  
    104.         $salt = $row['salt'];
    105.  
    106.        
    107.  
    108.         // теперь хешируем введенный пароль как надо и повторям шаги, которые были описаны выше:
    109.  
    110.         $password = md5(md5($_POST['password']) . $salt);
    111.  
    112.        
    113.  
    114.         // и пошло поехало...
    115.  
    116.  
    117.  
    118.         // делаем запрос к БД
    119.  
    120.         // и ищем юзера с таким логином и паролем
    121.  
    122.  
    123.  
    124.         $query = "SELECT `id`
    125.  
    126.                     FROM `users`
    127.  
    128.                     WHERE `login`='{$login}' AND `password`='{$password}'
    129.  
    130.                     LIMIT 1";
    131.  
    132.         $sql = mysql_query($query) or die(mysql_error());
    133.  
    134.  
    135.  
    136.         // если такой пользователь нашелся
    137.  
    138.         if (mysql_num_rows($sql) == 1)
    139.  
    140.         {
    141.  
    142.             // то мы ставим об этом метку в сессии (допустим мы будем ставить ID пользователя)
    143.  
    144.  
    145.  
    146.             $row = mysql_fetch_assoc($sql);
    147.  
    148.             $_SESSION['user_id'] = $row['id'];
    149.  
    150.            
    151.  
    152.            
    153.  
    154.             // если пользователь решил "запомнить себя"
    155.  
    156.             // то ставим ему в куку логин с хешем пароля
    157.  
    158.            
    159.  
    160.             $time = 86400; // ставим куку на 24 часа
    161.  
    162.            
    163.  
    164.             if (isset($_POST['remember']))
    165.  
    166.             {
    167.  
    168.                 setcookie('login', $login, time()+$time, "/");
    169.  
    170.                 setcookie('password', $password, time()+$time, "/");
    171.  
    172.             }
    173.  
    174.            
    175.  
    176.             // и перекидываем его на закрытую страницу
    177.  
    178.             header('Location: index1.php');
    179.  
    180.             exit;
    181.  
    182.  
    183.  
    184.             // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
    185.  
    186.         }
    187.  
    188.         else
    189.  
    190.         {
    191.  
    192.             die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию. — <a href="login.php">Авторизоваться</a>');
    193.  
    194.         }
    195.  
    196.     }
    197.  
    198.     else
    199.  
    200.     {
    201.  
    202.         die('пользователь с таким логином не найден, даём ссылку на повторную авторизацию. — <a href="login.php">Авторизоваться</a>');
    203.  
    204.     }
    205.  
    206. }
    207.  
    208.  
    209.  
    210. print '
    211.  
    212. <html>
    213.  
    214. <head>
    215.  
    216. <title>Авторизация</title>
    217.  
    218. <style>
    219.  
    220. .editstyle
    221.  
    222. {
    223.  
    224. font-family: Tahoma;
    225.  
    226. font-size: 8pt;
    227.  
    228. border: 1px solid #C0C0C0;
    229.  
    230. }
    231.  
    232.  
    233.  
    234. .btstyle
    235.  
    236. {
    237.  
    238. font-family: Tahoma;
    239.  
    240. font-size: 8pt;
    241.  
    242. border: 1px solid #C0C0C0;
    243.  
    244. cursor: pointer;
    245.  
    246. }
    247.  
    248.  
    249.  
    250. .tablemy
    251.  
    252. {
    253.  
    254. font-family: tahoma;
    255.  
    256. font-size: 8pt;
    257.  
    258. color: #3C3C3C;
    259.  
    260. }
    261.  
    262.  
    263.  
    264. </style>
    265.  
    266. <script type="text/javascript" src="keyboard.js" charset="UTF-8"></script>
    267.  
    268. <link rel="stylesheet" type="text/css" href="keyboard.css">
    269.  
    270. </head>
    271.  
    272. <body topmargin="50" bgcolor="#F9F7F8">
    273.  
    274. <form action="login.php" method="post"><div align="center">
    275.  
    276. <table border="1" style="border-collapse: collapse" width="292" height="157" bgcolor="#FFFFFF" bordercolor="#3C3C3C">
    277.  
    278.     <tr>
    279.  
    280.         <td><div align="center"><table class="tablemy">
    281.  
    282.         <tr>
    283.  
    284.             <td>Логин:</td>
    285.  
    286.             <td><input type="text" name="login" class="keyboardInput" /></td>
    287.  
    288.         </tr>
    289.  
    290.         <tr>
    291.  
    292.             <td>Пароль:</td>
    293.  
    294.             <td><input type="password" name="password" class="keyboardInput" /></td>
    295.  
    296.         </tr>
    297.  
    298.         <tr>
    299.  
    300.             <td>Запомнить:</td>
    301.  
    302.             <td><input type="checkbox" name="remember" /></td>
    303.  
    304.         </tr>
    305.  
    306.         <tr>
    307.  
    308.             <td></td>
    309.  
    310.             <td><input type="submit" value="Авторизоваться" class="btstyle" /></td>
    311.  
    312.         </tr>
    313.  
    314.     </table></div></td>
    315.  
    316.     </tr>
    317.  
    318. </table></div>
    319.  
    320.  
    321.  
    322. </form>
    323.  
    324. ';
    325.  
    326. ?>
    327.  
    328.  
    329.  
    330.  
    331.  
    332. </body>
    333.  
    334. </html>
    335.  
    Пробовал уже многими путями.Ничего не получается!Заранее спасибо![/url]
     
  9. Костян

    Костян Активный пользователь

    С нами с:
    12 ноя 2009
    Сообщения:
    1.724
    Симпатии:
    1
    Адрес:
    адуктО
    47 хромосому местами поменяй у себя
     
  10. mzwm77

    mzwm77 Активный пользователь

    С нами с:
    30 июл 2010
    Сообщения:
    2
    Симпатии:
    0
    Нет.Сама страница логининга работает правильно.Нужно лишь добавить к ней картинку капчи и её проверку,т.е. правильно совместить мой код с кодом из kcaptcha(http://www.captcha.ru/kcaptcha/)