Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Авторизация на PHP
 
 автор: Sajmon_root   (19.11.2007 в 12:43)   письмо автору
 
 

прошу помощи у специалистов.
говорю сразу я в этом несилен я вобщето сисадмин, просто директор поставил вопрос рубо или делаю я ему сайт на пхп или буду искать новую работу.

Суть проблемы такова!

нужно написать стартовую страницу авторизации "login.php"
я нашол код прошу мне помочь в нем разобраться.

вот он сам:
<?php
@session_start();
session_register("usermame");
session_register("password");
session_register ("secure");
if (isset($susername) and (!isset($clearsecure))
{
$username=$susername;
$password=$spassword;
}
else
{
$secure="";
$password = md5($password);
}

if (!isset($username))
die("Необходимо войти в систему;");

$username=check_param($usernaine);
$secure=check_param($secure);

if ($secure!="")
{

$query=DBQuery("SELECT * FROM UsersTable WHERE (user_naine='Susername')";
$users=mysql_num_rows ($query);
if (!$users)
die("Ошибка авторизации");
$user_data = mysql_fetch_array($query);
if (($password == $user_data [password_field])($secure == $user_data[secure_field]))
{

$secure = md5 (rand(l, 1000000));
DBQuery("UPDATE UsersTable SET secure_field = '$s&#229;cure' WHERE user_name = '$username'");
setcookie("ssecure", $secure, mktime(O,0,0,1,1,2010));
}
else
{


setcookie("spassword", "", 0) ;
setcookie("ssecure", "", 0);
}
}


if (($username) and ($s&#229;cure==""))
{
$query = DBQuery ("SELECT * FROM UsersTable WHERE (user_name = '$username'");
$users = mysql_num_rows($query) ;
if (!$users)
die("Ошибка авторизации");
$user_data = mysql_fetch_array($guery);
if ($password = $userd[password_field]))
{
$secure = md5(rand(l, 1000000));
DBQuery("UPDATE UsersTable SET secure_field = '$secure' WHERE user_name = '$username'") ;
setcookie("susername", $usematne, mktime(0, 0, 0,1,1,2010)) ; setcookie("spassword", $password, mktime(0,0,0,1,1,2010)); setcookie("ssecure", $secure, mktime(0,0,0,1,1,2010)); print("Добро пожаловать $ldata[0]");
}
else
{
print("Ошибка входа");

}

}

?>

<form action="index.php" method="post">
<b> Вход в систему</b>
Имя: <input name="username" size="2D">
Пароль: <input type="&#240;&#224;&#231;sword" name="password" size="20"><br/>
<input type="hidden" name="clearsecure" value="l">
<input type="submit" value="Вход"> </form>


какую мне нужно создать базу данных с какими полями и где хранится пороль с логином?

   
 
 автор: cheops   (19.11.2007 в 12:46)   письмо автору
 
   для: Sajmon_root   (19.11.2007 в 12:43)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=80 (там покрайней мере имеется дамп базы данных).

   
 
 автор: Sajmon_root   (19.11.2007 в 16:05)   письмо автору
 
   для: cheops   (19.11.2007 в 12:46)
 

А вы мне можите сказать что такое cookies и session и зачем они нужны

   
 
 автор: Indrikozver   (19.11.2007 в 17:18)   письмо автору
 
   для: Sajmon_root   (19.11.2007 в 16:05)
 

cookies и session, если грубо... это механизм идентификации компьютера пользовотеля.
cookies это фактически файл на компьютере пользовотеля, который устанавливается скриптом (должна быть включена опция принимать cookies на компьютере пользовотеля). session работает, часто, тоже через cookies, но если cookies невозможно установить, то используется альтернативный способ хранения данных. Файл располагается на сервере и хранит в себе параметры браузера и прочую фигню, включая переменные сесси.
@session_start(); // запускает сессию, нужно делать на каждой странице, где используются переменные сессии
session_register("usermame"); // устанавливает в сессию переменную username... есть массив сессий лучше использовать его... тогда будет так $_SESSION['username'] = null;
session_register("password"); // аналогично
session_register ("secure");

все эти переменные сессии являются глобальными тоесть теперь можно писать $username для обращения к сессии, но для определенности рекомендую через массив $_SESSION

   
 
 автор: bronenos   (19.11.2007 в 17:45)   письмо автору
 
   для: Indrikozver   (19.11.2007 в 17:18)
 

все эти переменные сессии являются глобальными тоесть теперь можно писать $username для обращения к сессии, но для определенности рекомендую через массив $_SESSION
register globals on, что не рекомендуется

   
 
 автор: cheops   (20.11.2007 в 11:31)   письмо автору
 
   для: Sajmon_root   (19.11.2007 в 16:05)
 

Эти механизмы предназначены для того, чтобы сервер "помнил" посетителя - изначально протокол HTTP этого не поддерживал и каждое обращение к серверу воспринималось как обращение нового посетителя. Механиз сессий и cookie был введён, чтобы исправить ситуацию. Cookie - это небольшие файлы, которые хранятся на жёстком диске (или в оперативной памяти) посетителя. Сессии - те же файлы, только хранятся они на сервере.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования