Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Пример самой простой Авторизации


Автор: helflip 2.10.2006, 08:56
Народ можите привести пример самой простой авторизации с ипользованием базы MsSQL! smile 
А то блин, везде все через-чур сложно для новичка в ПХП smile 
И везде МуСКЛ smile 
На форуме почитал темы, подредактировал коды, попробовал ни че не работает, море ошибок smile 
Или ссылочку киньте какую нибудь!
ПЛЗ!! smile 

Автор: sOckets 2.10.2006, 09:17
http://forum.vingrad.ru/index.php?showtopic=111879&st=0&#entry855172 + используй http://forum.vingrad.ru/index.php?act=Search

Автор: helflip 2.10.2006, 09:30
sOckets, 

Дык,блин, этож моя тема и есть мне так ни кто и не помог все послали: читай мануал, поиском пользуйся,
я так ни чего и не понял smile 
Да и еще репу -1 дали smile 

Автор: sOckets 2.10.2006, 09:35
гы smile Не заметил что это ты , сам понимаешь понедельник smile
Так щяс будем терзать гугл.

Автор: helflip 2.10.2006, 09:37
Создайте закрепленную тему, блин с самым назойливым вопросом - АВТОРИЗАЦИЕЙ, самой простой, какой только можно! Чтобы любой новичек понял и людям поможите и себя освободите! Вам это сделать максимум 5 минут от вашей жизни, зато миллион благодарностей сразу!! smile 
  smile 

Автор: sOckets 2.10.2006, 09:43
http://www.php.com.ua/forum/viewtopic.php?t=6346 тут пока посмотри , только о безопастности думаю тебя учить не надо.

Автор: helflip 2.10.2006, 10:13
Вот посмотри пожалуста мой код как я понял вроде того:
Код

<html>
<head>
<title> -=Identification=-</title>
</head>
<body>
<?php
session_start();
// полечение данных из формы
if (isset($_POST['login']) and $_POST['login'] == 'Login')
{
    if (isset($_POST['userid']))
    {
        $login=$_POST['userid'];
    }
    if (isset($_POST['userpsw']));
    {
        $password=$_POST['userpsw']? md5($_POST['userpsw']) : '';
    }

    $msconnect=mssql_connect("ххх","ххх","");
    $msdb=mssql_select_db('[sample_db]',$msconnect);
    // получение пароля и логина из базы
    $zapros1 = "SELECT * FROM [user] 
             WHERE userid='".$login."' 
             AND userpassword='".$password."'";
    $rezylt1 = mssql_query($zapros1);
     if($rezylt1=0){
     echo "Неправильный Логин или пароль";
    }
   else {
    $_SESSION['auth']=1;
   }
    
    // переходим на страничку админа
   header("Location: http://ims/kickflip/ats/1.php");
}?>

<table border="5" align="center" bgcolor="Gray">
    <tr >
     <form action="" method="POST">
    <td>Id:</td><td><input type="text" name="userid"></td> 
    </tr>
    <tr>
    <td>PSW:</td><td><input type="password" name="userpsw"></td>
    </tr>
    <tr>
    <td><input type="submit" name="login" value="Login"></td>
    <td><input type="submit" name="cancel" value="Cancel"></td>
    </tr>
    </form>
    
</body>    
</html>


и Вот страничка куда переходит:
Код

<html>
<head>
<body>
<?php
//стартуем сессию, и проверяем на прохождение авторизации
session_start();
if(!isset($_SESSION['auth'])) {
    die('Access...');
}
$title="--=Список всех пользователей=--";
$text=$msconnect=mssql_connect("ххх","ххх","");
$msdb=mssql_select_db('[sample_db]',$msconnect); 
$msquery0 = "SELECT * FROM [user]";
$msresults0 = mssql_query($msquery0);

?>
  <table  width="30%"align="left" bgcolor="Gray" border="5">
   <tr bgcolor="Navy">
    <td align="center"><B><font color="Silver" size="3">Имя пользователя</td></font>
<?php
while ($row1= mssql_fetch_array($msresults0))
 {
    
    ?> <tr><td  width="10%" ><a href="3.php?id_user=<?=$row1['N']?>"><?php echo "<b>". $row1['userid']."</b>"."</td>";
        
 }

//шаблон
include_once"template.php";
?>
</a>
</table>
</body>
</head>
</html>



Добавлено @ 10:17 
А блин не работает, он полюбому входит, что с паролем, что без него smile 
ПОНЕДЕЛЬНИК smile [censored 5] smile 

Автор: sOckets 2.10.2006, 10:23
Извини у меня сейчас нету под рукой PHP , и MSSQL тем более , ты что сам не можешь проверить ?
Так давай я тебе хотябы распишу смысл "авторизации" , значит тебе понадобяться 2 файла , допустим это auth_check.php и login.php , файл login.php имеет 2 функции :
1) Показывает форму авторизации
2) Проверяет посланные данные с формы.

В форме авторизации должно быть 2 поля , это LOGIN и PASSWORD.

Алгоритм работы login.php

Код

if ((isset($_POST['login']) and (isset($_POST['password']))
{
     // Тут ты принемаешь данные с формы и работаеш с ними , то есть идёт коннект к базе и сверка данных + работаешь с куками.
} else {
     // Если не были посланы данные с формы показываем форму
}


Алгоритм работы auth_check.php

Код

// Проверяешь есть ли куки , если есть то сверяешь с базой (см выше) если нету то шлёшь на авторизацию в [B]login.php[/B] если есть продлеваешь время.


Прости просто нету MSSQL и PHP чтоб проверить и написать , а так этот код пишешься в 10 минут. 

Автор: helflip 2.10.2006, 10:29
Цитата

// Тут ты принемаешь данные с формы и работаеш с ними , то есть идёт коннект к базе и сверка данных + работаешь с куками.

А вот насчет РАБОТАЕШ С КУКАМИ, это тоесть занести логин и пароль в куки, Правильно японял

Автор: helflip 2.10.2006, 11:15
да и еще че там за проблемма с пробелами в базе, я гдето читал про какуюто функцию addslshes, чего она делает? Похоже у меня как раз такая трабла, у меня записи в базе с пробелами после самой записи.

Автор: sOckets 2.10.2006, 11:57
учи мат часть. Извини нету времени тебе весь язык обьяснять.

Автор: helflip 2.10.2006, 12:45
Ааа, блин, снова самому разбиратья smile  smile 

Автор: sOckets 2.10.2006, 15:47
А ты что думал smile Что я тут за тебя код писать буду ? smile Читай правила форума.

Автор: helflip 3.10.2006, 09:26
Все, я как всегда разобрался сам smile 

Вот пример самой простой авторизации, без защиты, без всего через сессии.

У меня есть 2 файла auth2.php (Форма получение данных из формы их сравнение с записями в БД)
И 1.php (Страничка администратора с выводом информации о пользователях)

Файл auth2.php:

Код

<html>
<head>
<title> -=Identification=-</title>
</head>
<body>
<?php
//Конект к базе
$text=$msconnect=mssql_connect("xxx","xxx","");
$msdb=mssql_select_db('[sample_db]',$msconnect); 
//Старт сессии
session_start();
// полечение данных из формы
if (isset($_POST['login']) and $_POST['login'] == 'Login')
{
    if (isset($_POST['userid']))
    {
        $login=$_POST['userid'];
    }
    if (isset($_POST['userpsw']));
    {
        $password=$_POST['userpsw'];
    }

    // получение пароля и логина из базы и сравнение с данными из формы
    $zapros1 = "SELECT login,pass FROM [auth] 
             WHERE login = '".$login."' 
             AND pass = '".$password."'";
    $rezylt1 = mssql_query($zapros1); //Выполнение запроса
    
    $count=mssql_num_rows($rezylt1);//Если запись найдена count = 1(Тоько одна запись и должна быть)
    if($count == 1) {                //Если count = 1 тогда
        
    }
    while($row=mssql_fetch_array($rezylt1))//
    {
     if($row['login']==$login and $row['pass']==$password){//Сравниваем логи и пароль на совпадение с записью в базе
     $_SESSION['auth']=1;//Заносим в массив сесии auth значение = 1 и потом проверяем на страничке админа на это
    header("Location: 1.php");//Если все совпало переходим а страничку админа
     }else {
     
     echo "Неправильный Логин или пароль...";//Если не совпало
     }
     }
   }
  //Дальше идет форма   
    ?>


<table border="5" align="center" bgcolor="Gray">
    <tr >
     <form action="" method="POST">
    <td>Id:</td><td><input type="text" name="userid"></td> 
    </tr>
    <tr>
    <td>PSW:</td><td><input type="password" name="userpsw"></td>
    </tr>
    <tr>
    <td><input type="submit" name="login" value="Login"></td>
    <td><input type="submit" name="cancel" value="Cancel"></td>
    </tr>
    </form>
    
</body>    
</html>
 

И файл 1.php (Админка) 

Код

<html>
<head>
<body>
<?php
session_start();//Старт сессии
if(!isset($_SESSION['auth'])) { //ПРоверяем на то значение, которое присваивали Сессии в auth.php
    die('Access...');//По другому не зайти
}
//Опять коннект к базе
$title="--=Список всех пользователей=--";
$text=$msconnect=mssql_connect("ххх","ххх","");
$msdb=mssql_select_db('[sample_db]',$msconnect); 
//Выбираем данные, сортируем и т.п.
$msquery0 = "SELECT     userid AS Expr1, [user].*
             FROM         [user]
             ORDER BY userid";
$msresults0 = mssql_query($msquery0);
//Табличка для вывода
?>
  <table  width="30%"align="left" bgcolor="Gray" border="5">
   <tr bgcolor="Navy">
    <td align="center"><B><font color="Silver" size="3">№</td></font>
    <td align="center"><B><font color="Silver" size="3">Имя пользователя</td></font>
<?php
while ($row1= mssql_fetch_array($msresults0))
 {
    
    ?> <tr><td width="2%"><?php echo $row1['N']?></td><td  width="10%" ><a href="3.php?id_user=<?=$row1['N']?>"><?php echo "<b>". $row1['userid']."</b>"."</td>";
        
 }

//шаблон
include_once"template.php";//Ну и все
?>
</a>
</table>
</body>
</head>
</html>



Помойму для новичка в ПХП неплохо, особенно разобраться. А потом идут всякие дополнения! smile

Добавлено @ 09:32 
sOckets.

Спасибо за настовление и помощь, было бы 100 постов, дал бы репу smile 




Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)