igrayka

Статус
  • Активный

Последние сообщения igrayka

  • F.A.Q.Cookie • 23 ноября 2009 г. 20:04

    )))))) Парни )) )) помогите, ну правда. только начал разбираться, хочется сделать безопасный логин, а не просто сравнил и погнали ((Спасибо =) я понимаю каэшн это стебно
    )))))) Парни )) )) помогите, ну правда. только начал разбираться, хочется сделать безопасный логин, а не просто сравнил и погнали ((

    Спасибо =) я понимаю каэшн это стебно
  • F.A.Q.Cookie • 23 ноября 2009 г. 19:27

    Уважаемый,adw0rd.Если есть возможность помоги пожалуйста, я делаю авторизацию для своей cms и мне кажется дело в куки.вот код, в результате чего после регистрации, я начинаю проходить авторизацию и меня не пускает Код авторизации<?php// Страница авторизации# Функция для генерации случайной стр...
    Уважаемый,adw0rd.

    Если есть возможность помоги пожалуйста, я делаю авторизацию для своей cms и мне кажется дело в куки.
    вот код, в результате чего после регистрации, я начинаю проходить авторизацию и меня не пускает

    Код авторизации


    <?php
    // Страница авторизации

    # Функция для генерации случайной строки
    function generateCode($length=6) {
       $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHI JKLMNOPRQSTUVWXYZ0123456789";
       $code = "";
       $clen = strlen($chars) - 1;  
       while (strlen($code) < $length) {
               $code .= $chars[mt_rand(0,$clen)];  
       }
       return $code;
    }


    # Соединямся с БД
    include_once "connect_to_mysql.php";

    if(isset($_POST['submit']))
    {
       # Вытаскиваем из БД запись, у которой логин равняеться введенному
       $query = mysql_query("SELECT user_id, user_password FROM users WHERE user_login='".mysql_real_escape_string($_POST['login'])."' LIMIT 1");
       $data = mysql_fetch_assoc($query);
       
       # Сравниваем пароли
       if($data['user_password'] === md5(md5($_POST['password'])))
       {
           # Генерируем случайное число и шифруем его
           $hash = md5(generateCode(10));
               
           if([email protected]$_POST['not_attach_ip'])
           {
               # Если пользователя выбрал привязку к IP
               # Переводим IP в строку
               $insip = ", user_ip=INET_ATON('".$_SERVER['REMOTE_ADDR']."')";
           }
           
           # Записываем в БД новый хеш авторизации и IP
           mysql_query("UPDATE users SET user_hash='".$hash."' ".$insip." WHERE user_id='".$data['user_id']."'");
           
           # Ставим куки
           setcookie("id", $data['user_id'], time()+60*60*24*30);
           setcookie("hash", $hash, time()+60*60*24*30);
           
           # Переадресовываем браузер на страницу проверки нашего скрипта
           header("Location: check.php"); exit();
       }
       else
       {
           print "Вы ввели неправильный логин/пароль";
       }
    }
    ?>
    <form method="POST">
    Логин <input name="login" type="text"><br>
    Пароль <input name="password" type="password"><br>
    Не прикреплять к IP(не безопасно) <input type="checkbox" name="not_attach_ip"><br>
    <input name="submit" type="submit" value="Войти">
    </form>

    Код проверки, который не пускает … пишет - не получилось

    <?php
    // connect to your MySQL database here
    include_once "connect_to_mysql.php";

    // Скрипт проверки

    # Соединямся с БД


    if (isset($_COOKIE['id']) and isset($_COOKIE['hash']))
    {  
       $query = mysql_query("SELECT *,INET_NTOA(user_ip) FROM users WHERE user_id = '".intval($_COOKIE['id'])."' LIMIT 1");
       $userdata = mysql_fetch_assoc($query);

       if(($userdata['user_hash'] !== $_COOKIE['hash']) or ($userdata['user_id'] !== $_COOKIE['id'])
    or (($userdata['user_ip'] !== $_SERVER['REMOTE_ADDR'])  and ($userdata['user_ip'] !== "0")))
       {
           setcookie("id", "", time() - 3600*24*30*12, "/");
           setcookie("hash", "", time() - 3600*24*30*12, "/");
           print "Хм, что-то не получилось";
       }
       else
       {
           print "Привет, ".$userdata['user_login'].". Всё работает!";
       }
    }
    else
    {
       print "Включите куки";
    }
    ?>


    глянь пожалуйста