+ Ответить в теме
Страница 1 из 10 1 2 3 4 5 ... ПоследняяПоследняя
Показано с 1 по 10 из 103

Тема: Авторизация на сайте

Комбинированный просмотр

  1. #1

    Авторизация на сайте

    Кто-нибудь знает код, уж не знаю, java или HTML, чтобы создавать регистрацию на сайте? Очень НАДО!!!

  2. #2
    Администратор Webmaster отключил(а) отображение уровня репутации Аватар для Webmaster
    Регистрация
    05.03.2007
    Адрес
    Belarus
    Сообщений
    7,533
    Записей в дневнике
    1
    Цитата Сообщение от Ekgor Посмотреть сообщение
    Кто-нибудь знает код, уж не знаю, java или HTML, чтобы создавать регистрацию на сайте? Очень НАДО!!!
    Авторизацию для сайта можно сделать на JavaScript'e (для детей)
    можно на сервере с использованием .htaccess
    можно в серверных скриптах asp, php, cgi

    но всё это дело не одной строчки, а приличного куска кода
    примеров таких предостаточно, но использовать их не разбираясь в этом не получится

  3. #3
    Webmaster, Возможно Вы можете подсказать какие-то ссылочки, где это демонстрируется или электронные книги, где это написано, хоть что-то!?

  4. #4
    Администратор Webmaster отключил(а) отображение уровня репутации Аватар для Webmaster
    Регистрация
    05.03.2007
    Адрес
    Belarus
    Сообщений
    7,533
    Записей в дневнике
    1

    <?
    session_start();
    header("Content-Type: text/html; charset=cp1251");

    function show_form($message){
    ?>
    <?=$message?><br/>
    <form method="post" name='form' id='form' action='login.php'>
    <B>Имя:</B>
    <input type='text' name='user' />
    <br />
    <B>Пароль:</B>
    <input type='password' name='pass' />
    <input type='submit' value="Вход" name='subm'/>
    </form>
    <?
    die();
    }

    //Проверка нажатия кнопки submit
    if(!isset($_POST['subm'])) show_from('');
    //Проверка на введенные данные
    if(!isset($_POST['user']) OR !isset($_POST['pass']) OR empty($_POST['user']) OR empty($_POST['pass']))
    show_form("Не правильная пара логин-пароль.");
    // подключение к БД - соответственно прописываем свои данные доступа к базе данных
    $connection = mysql_connect("localhost","","") ;
    mysql_select_db('database') ;
    // НЕ смог достучаться до БД
    if (mysql_error()) die();

    $user = mysql_escape_string($_POST['user']);
    $pass = md5($_POST['pass']."ahha");

    // Проверяем есть ли пользователь с таким логином и паролем
    $result = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$user."' AND `pass`='".$pass."'");

    // если есть - впускаем
    if(mysql_num_rows($result)==1)
    $_SESSION['admin']=$adm;

    // Если нет - пишем так.
    else
    show_form("Incorrect login-password.");

    // Далее сообщение которое увидит вошедший пользователь
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
    <meta http-equiv="refresh" content="3; url=index.php" >

    Здравствуйте <?=mysql_escape_string($user);?>!

    SQL

    CREATE TABLE `users` (
    `username` varchar(20) NOT NULL default '',
    `pass` varchar(20) NOT NULL default ''
    ) ENGINE=MyISAM;


  5. #5
    Цитата Сообщение от Webmaster Посмотреть сообщение

    <?
    session_start();
    header("Content-Type: text/html; charset=cp1251");

    function show_form($message){
    ?>
    <?=$message?><br/>
    <form method="post" name='form' id='form' action='login.php'>
    <B>Имя:</B>
    <input type='text' name='user' />
    <br />
    <B>Пароль:</B>
    <input type='password' name='pass' />
    <input type='submit' value="Вход" name='subm'/>
    </form>
    <?
    die();
    }

    //Проверка нажатия кнопки submit
    if(!isset($_POST['subm'])) show_from('');
    //Проверка на введенные данные
    if(!isset($_POST['user']) OR !isset($_POST['pass']) OR empty($_POST['user']) OR empty($_POST['pass']))
    show_form("Не правильная пара логин-пароль.");
    // подключение к БД - соответственно прописываем свои данные доступа к базе данных
    $connection = mysql_connect("localhost","","") ;
    mysql_select_db('database') ;
    // НЕ смог достучаться до БД
    if (mysql_error()) die();

    $user = mysql_escape_string($_POST['user']);
    $pass = md5($_POST['pass']."ahha");

    // Проверяем есть ли пользователь с таким логином и паролем
    $result = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$user."' AND `pass`='".$pass."'");

    // если есть - впускаем
    if(mysql_num_rows($result)==1)
    $_SESSION['admin']=$adm;

    // Если нет - пишем так.
    else
    show_form("Incorrect login-password.");

    // Далее сообщение которое увидит вошедший пользователь
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
    <meta http-equiv="refresh" content="3; url=index.php" >

    Здравствуйте <?=mysql_escape_string($user);?>!
    SQL

    CREATE TABLE `users` (
    `username` varchar(20) NOT NULL default '',
    `pass` varchar(20) NOT NULL default ''
    ) ENGINE=MyISAM;

    А когда я пользователя через Бд добавляю мне как ему пароль ставить ? Цифрами или в md5 ?

  6. #6
    Цитата Сообщение от Webmaster Посмотреть сообщение

    <?
    session_start();
    header("Content-Type: text/html; charset=cp1251");

    function show_form($message){
    ?>
    <?=$message?><br/>
    <form method="post" name='form' id='form' action='login.php'>
    <B>Имя:</B>
    <input type='text' name='user' />
    <br />
    <B>Пароль:</B>
    <input type='password' name='pass' />
    <input type='submit' value="Вход" name='subm'/>
    </form>
    <?
    die();
    }

    //Проверка нажатия кнопки submit
    if(!isset($_POST['subm'])) show_from('');
    //Проверка на введенные данные
    if(!isset($_POST['user']) OR !isset($_POST['pass']) OR empty($_POST['user']) OR empty($_POST['pass']))
    show_form("Не правильная пара логин-пароль.");
    // подключение к БД - соответственно прописываем свои данные доступа к базе данных
    $connection = mysql_connect("localhost","","") ;
    mysql_select_db('database') ;
    // НЕ смог достучаться до БД
    if (mysql_error()) die();

    $user = mysql_escape_string($_POST['user']);
    $pass = md5($_POST['pass']."ahha");

    // Проверяем есть ли пользователь с таким логином и паролем
    $result = mysql_query("SELECT `id` FROM `users` WHERE `login`='".$user."' AND `pass`='".$pass."'");

    // если есть - впускаем
    if(mysql_num_rows($result)==1)
    $_SESSION['admin']=$adm;

    // Если нет - пишем так.
    else
    show_form("Incorrect login-password.");

    // Далее сообщение которое увидит вошедший пользователь
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
    <meta http-equiv="refresh" content="3; url=index.php" >

    Здравствуйте <?=mysql_escape_string($user);?>!
    SQL

    CREATE TABLE `users` (
    `username` varchar(20) NOT NULL default '',
    `pass` varchar(20) NOT NULL default ''
    ) ENGINE=MyISAM;

    У меня вопрос пароль в виде чего создавать ? md5 или как ?

  7. #7
    Webmaster

    Было бы не плохо))


    А в этом коде что не так?? И почему ругается на <?php =$message?>

    <?php
    session_start();
    header("Content-Type: text/html; charset=cp1251");
    function show_form($message)
    {?>
    <?php =$message?>
    <?php include ("virtual/top.incl"); ?>
    <?php //include ("config.incl"); ?>
    <td height=20></td>
    <td bgcolor=#e04f64 width=1></td>
    <td></td>
    <td bgcolor=#f7eeb7></td>
    <td bgcolor=#f7eeb7></td>
    <td bgcolor=#f7eeb7></td>
    <td bgcolor=#e04f64 width=1></td>
    </tr>
    <tr>
    <td height=400 valign=top align=center>
    <br/>

    <form action="order/index.php" method="post" name="test_form">
    <table border="0" cellpadding="0" cellspacing="0">

    <tr>
    <td width="150">Имя :</td>
    </tr>
    <tr>
    <td><input type="text" name="login" maxlength="30" /></td>
    </tr>
    <tr>
    <td width="150">Пароль :</td>
    </tr>
    <tr>
    <td><input type="password" name="pass" maxlength="30" /></td>
    </tr>
    <tr>
    <td colspan="2" align="right">
    <input type="submit" class="button" value="Вход" />
    </td>
    </tr>
    </table>
    </form>
    </td>
    <td bgcolor=#e04f64 width=1></td>
    <td bgcolor=#eee4aa width=1></td>
    <td></td>
    <td>

    <?php

    die();
    }

    //Проверка нажатия кнопки submit
    if(!isset($_POST['subm'])) {show_form('');}
    //Проверка на введенные данные
    if(!isset($_POST['login']) OR !isset($_POST['pass']) OR empty($_POST['login']) OR empty($_POST['pass'])) {
    show_form("Не правильная пара логин-пароль.");
    }
    // подключение к БД - соответственно прописываем свои данные доступа к базе данных

    $hostname = "localhost";
    $username = "root";
    $password = "";
    $dbName = "client_base";

    $table = "client";
    mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение");

    mysql_select_db($dbName) or die (mysql_error());

    $user = mysql_escape_string($_POST['login']);
    $pass = md5($_POST['pass']."ahha");

    // Проверяем есть ли пользователь с таким логином и паролем
    $result = mysql_query("SELECT `id` FROM $table WHERE `login`='".$user."' AND `pass`='".$pass."'");

    // если есть - впускаем
    if(mysql_num_rows($result)==1) {
    $_SESSION['admin']=$user;
    }
    // Если нет - пишем так.
    else{
    show_form(" неверный пароль");
    }
    // Далее сообщение которое увидит вошедший пользователь
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" >
    <meta http-equiv="refresh" content=6; url=order/index.php" >

    Здравствуйте <?php=mysql_escape_string($user);?>!

    </td>
    <td bgcolor=#eee4aa width=1></td>
    <td bgcolor=#e04f64></td>
    </tr>
    <?php include ("virtual/bot.incl"); ?>
    Последний раз редактировалось alokey; 17.03.2010 в 21:11.

  8. #8
    Данный пример не претендует на звание идеального метода защиты, но все же обойти его будет достаточно трудно. Представим следующее: у вас есть закрытый сайт "для своих" и вы не хотите чтобы туда заходили всякие нехорошие личности. В этом нам помогут сессии. Пароли и логины будем хранить в таблице mysql.

    На первой странице index.php делаем форму для ввода данных:
    <form method="post" аction="index2.php">
    <table align="center" cellspacing="2" cellpadding="2" border="0" width="320">
    <tr>
    <td width="100">Имя:</td>
    <td width="200"><input type="text" name="name" /></td>
    </tr>
    <tr>
    <td width="100">Пароль:</td>
    <td width="200"><input type="password" name="pass" /></td>
    </tr>
    <tr>
    <td colspan="2" width="300" align="center">
    <input type="submit" value="Вход" />
    <input type="reset" value="Сбросить" />
    </td>
    </tr>
    </table>
    </form>

    Думаю здесь пояснять ничего не нужно. Идем дальше: Сначала краткое пояснение. Мы создаем функцию проверки пользователя check(). У нас есть база данных my_site, содержащая поля id, name и pass, где name и pass - логин и пароль пользователя соответственно. Функция пропускает только тех, кто указал верный логин и пароль в форме ($name, $pass) на входе, потом эти переменные сохраняются в сессию, следовательно, пока сессия жива пользователь может заходить на ваш сайт без авторизации. Даже указав другой верный логин и пароль, он будет авторизирован под указанным ранее логином.

    Предполагается, что соединение с базой mysql уже произведено и база данных выбрана.
    <?
    function check()
    {
    if (empty($pass)||empty($name))
    error("Не указан логин или пароль");
    $sql = "select * from my_site where login='".$name."'";
    if ($show = mysql_query($sql))
    {
    $a = mysql_fetch_array($show);
    if ($a['pass']!=$pass) {
    error("Не верное сочетание логин - пароль");
    }
    else {
    session_register("name","pass");
    }
    }
    else {
    error("Ошибка запроса к базе данных");
    }
    }
    ?>


    Начнем пояснения с первой строки.
    if (empty($pass)||empty($name))

    проверяем задан ли пароль и логин. Если одно из полей пустое, то
    error("Не указан логин или пароль");

    Здесь error - это любая функция вывода ошибки:
    <?
    function error($er)
    {
    echo $er;
    exit(0);
    }
    ?>

    Если поля не пусты, то скрипт продолжает работу.
    $sql="select pass from mysite where login='".$name."'";

    пишем запрос к базе mysql, который вернет нам значение поля pass, строки, где login=$name.
    if ($show=mysql_query($sql))

    если запрос обработан без ошибок, то
    $a=mysql_fetch_array($show);

    Присваиваем переменной (ассоциативный массив) значение поля pass
    i
    f ($a['pass']!=$pass)
    error("Не верное сочетание логин - пароль");

    Если поле pass не соответствует тому, что ввел пользователь или тому, что хранится в сессии, то мы опять через функцию error выводим ему ошибку.
    else
    session_register("name","pass");

    Иначе записываем переменные $name и $pass в сессию и продолжаем выполнять скрипт.
    }
    else
    error("Ошибка запроса к базе данных");
    }
    ?>

    Если есть ошибка в запросе к базе mysql, то мы опять же выводим ошибку пользователю.

    Итак, вначале каждой страницы, к которой нужно запретить доступ посторонним пишем:
    <?
    session_start();
    /* эта функция открывающая или продолжающая работу с сессиями. Она должна быть задана в самом начале страницы до отправки заголовка страницы. */
    check(); //наша функция проверки.
    ?>


    Теперь проверим логику скрипта. Если человек не заполняет одно из полей и нажимает кнопку "вход", то перейдя на страницу index2.php он получит надпись "Ошибка: Не указан логин или пароль".

    Если он указывает неверный логин или пароль, то ему выпадает "Ошибка: Не верное сочетание логин - пароль".

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

    Возможные проблемы:

    Нельзя заходить на сайт под разными именами.
    Если человек раз зашел на сайт, то с его компьютера можно посещать этот сайт еще в течении некоторого времени (пока жива сессия), что не очень хорошо, если ты работаешь из Интернет салона.

    Автор: неизвестен
    <?=Без труда, не напишешь и "Hello, World!"?>

  9. #9
    если сессию закрыть то можно будет потом зайти под другим логином и паролем?

  10. #10
    vvsh
    Гость Аватар для vvsh
    Да, можно.
    Ну если вы хотите 100% безопасности, то создайте файл .htaccess, и напишите в нем следующее:
    AuthType Basic  
    AuthName "auth"
    AuthUserFile /www/site/.htpasswd
    require valid-user


    Потом создайте файл .htpasswd, и сгененируйте логин и пароль на http://www.htaccesstools.com/htpasswd-generator/

    И все.

+ Ответить в теме
Страница 1 из 10 1 2 3 4 5 ... ПоследняяПоследняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения