[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: дайте рабочий скрипт авторизации
Front
за**ался уже с неделю ковыряюсь не могу найти рабочего скрипта..




Спустя 2 часа, 39 минут, 59 секунд (3.01.2009 - 19:23) Grazor написал(а):
а что тут сложного? для начала, опиши: где хранятся пользователи, как ты хочешь их авторизировать.
классический вариант: пользователи в MySQL
1. просишь пользователя ввести логин-пароль
2. выбираешь из базы пользователей с таким логином и hex от пароля
3. если такие нашлись, запускаешь сессию, сохраняешь туда логин пользователя, может ещё что-нибудь, что потребуется
4. на страницах проверяешь, если в сессии лежит логин, то, например, показываешь страницу, иначе - шлёшь авторизироваться

я так себе это представляю

Спустя 4 часа, 57 минут, 18 секунд (4.01.2009 - 00:21) sergeiss написал(а):
Grazor правильно ответил, только автор вопроса подразумевал, что ему не алгоритм надо, а уже готовый скрипт. Я так понял.
Хотя реально проще будет самому сделать. Мне так кажется smile.gif Или четко сказать "готов заплатить, сделайте мне такой скрипт".

Спустя 32 минуты, 37 секунд (4.01.2009 - 00:53) Grazor написал(а):
sergeiss, да, скорее автор просит скрипт.

Спустя 8 часов, 5 минут, 34 секунды (4.01.2009 - 08:59) Front написал(а):
да скрипт нужен, я не могу найти работающего скрипта..
Grazor можеш показать работающий пример такого алгоритма

вот например такой скрипт, он работает на половину, тоесть при вводе правльного пароля не ругается а при вводе не верного ругается, по идее все должно работать на как бы не так,

PHP
<?
include(
'db.inc.php');
if (isset(
$_POST['login']) && isset($_POST['password']))
{
    
$login mysql_real_escape_string($_POST['login']);
    
$password = ($_POST['password']);

    
$lnk mysql_connect($db_config['server'], $db_config['user'], $db_config['pass'])
            or die(
'Not connected : '.mysql_error());
          
mysql_select_db($db_config['database'], $lnk);
          
    
$query "SELECT `id`
            FROM `user`
            WHERE `username`='{$login}' AND `password`='{$password}'
            LIMIT 1"
;
    
$sql mysql_query($query) or die(mysql_error());


    if (
mysql_num_rows($sql) == 1) {


        
$row mysql_fetch_assoc($sql);
        
$_SESSION['user_id'] = $row['id'];
        
header ("location: index2.php");
     
    }
    else {
        die(
'Login error');
    }

}
     
mysql_close();
?>

<form action="login.php" method="post">
    <table>
        <tr>
            <td>Login:</td>
            <td><input type="text" name="login" /></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" name="password" /></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Войти" /></td>
        </tr>
  &


в страницу с инфой скрытой от гостей вставляю код

PHP
<?
session_start();
if (isset(
$_SESSION['user_id'])) {
   echo(
"Привет ".$_SESSION['user_id']."!<br />\n");
   echo(
"Все работает");
}else {
   echo(
'Не работает');
}


Помогите найти ошибку, плиз

Спустя 4 часа, 4 минуты, 46 секунд (4.01.2009 - 13:04) sergeiss написал(а):
Цитата (Front @ 4.01.2009 - 08:59)
вот например такой скрипт, он работает на половину, тоесть при вводе правльного пароля не ругается а при вводе не верного ругается, по идее все должно работать на как бы не так,

Давай начнем с логики, т.е. с того, что ты хочешь получить.
Я не понял, что ты хочешь (см. твою же цитату). В приведенном примере всё, вроде бы, нормально должно работать. Ввел правильный пароль - переходишь на страницу index2.php. Ввел неправильный пароль - скрипт "ругается" и выключается.

Что ты хочешь получить при вводе правильного пароля, и что - при вводе неправильного пароля?

Примечание. Лучше хранить в БД не пароль, а его "образ" закодированный. Например, функцией md5().

Спустя 2 часа, 42 минуты, 31 секунда (4.01.2009 - 15:46) Front написал(а):
при вводе прального на странице с инфой которая только для зареганных
echo("Привет ".$_SESSION['user_id']."!<br />\n");
echo("Все работает");

при вводе неправильного
echo('Не работает');

да про мд5 знаю, но в данном случае этого не нужно

Спустя 6 часов, 22 минуты, 29 секунд (4.01.2009 - 22:09) Front написал(а):
народ, помогите пожалуйста

Спустя 2 часа, 14 минут, 25 секунд (5.01.2009 - 00:23) sergeiss написал(а):
Так что же ты хочешь-то? Или, иными словами, что не работает/не нравится? Судя по твоим же словам, при вводе правильного пароля пользователь получает подтверждение этого, при вводе неправильного пароля - отказ.
Тебе это поведение скрипта почему-то не нравится.
А вот почему - я не понял как раз. Вроде бы, именно это и должно быть?

Спустя 8 часов, 32 минуты, 54 секунды (5.01.2009 - 08:56) Front написал(а):
при заходе на страницу index2.php отображается инфа которая должна отображаться для тех кто не ввел логин и пароль, тоесть не работают сессии как я понимаю.

Спустя 3 часа, 46 минут, 5 секунд (5.01.2009 - 12:42) Grazor написал(а):
Цитата
при заходе на страницу index2.php отображается инфа которая должна отображаться для тех кто не ввел логин и пароль, тоесть не работают сессии как я понимаю.


конечно, сессию-то надо сначала запустить(в login.php), а только потом записывать в неё $_SESSION['user_id']
а в index2 session_start() стоит убрать - и всё будет работать
PHP
if (mysql_num_rows($sql) == 1) {


        $row = mysql_fetch_assoc($sql);
        session_start(); //сначала запускаем сессию!!!
        $_SESSION['user_id'] = $row['id'];
        header ("location: index2.php");
     
    
}

Спустя 2 часа, 29 минут, 37 секунд (5.01.2009 - 15:12) Front написал(а):
ОО пасиба мэн, и как я не заметил =))
тему можно удалять

Спустя 1 день, 1 час, 33 минуты, 58 секунд (6.01.2009 - 16:46) apc написал(а):
PHP
<?
session_start();
if (isset(
$_SESSION['user_id'])) {
   echo(
"Привет ".$_SESSION['user_id']."!<br />\n");
   echo(
"Все работает");
}else {
   echo(
'Не работает');
тут
}

не забудь про exit
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.