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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Авторизация

Сообщения:  [1-10]   [11-17] 

 
 автор: glsv (Дизайнер)   (21.11.2004 в 21:59)   письмо автору
 
   для: LimP   (20.11.2004 в 23:48)
 

Можно использовать авторизацию на php. Но php должен быть запущен как модуль - иначе работать не будет.

 AddType application/x-httpd-php phtml php php3
 LoadModule php5_module c:\php-5.0\php5apache2.dll 


Во все файлы в защищенной директории подключаем файл авторизации - auth.php
<?
  
include "auth.php";
?>


А в файле auth.php проводим инициализацию с проверкой логинов и паролей по базе.
<?
$login 
preg_replace("/[^\\w_-]/","",$_SERVER['PHP_AUTH_USER']);
$query="SELECT * FROM person 
      WHERE login='"
$login"' AND 
      pass='"
md5($_SERVER['PHP_AUTH_PW']). "'";

$result mysql_query($query);
if (@
mysql_num_rows($result)!=1
{
    
header("WWW-Authenticate: Basic realm=\"User area\"");
    
header("HTTP/1.0 401 Unauthorized");
    print(
"Защищенная директория. Введите логин и пароль");
    exit();
};
?>


Таким образом вводим логин и пароль один раз при входе в защищеную директорию и браузер их помнит пока не будет закрыт.

   
 
 автор: LimP   (21.11.2004 в 13:39)   письмо автору
 
   для: LimP   (20.11.2004 в 23:48)
 

;)

   
 
 автор: LimP   (20.11.2004 в 23:48)   письмо автору
 
   для: LimP   (20.11.2004 в 17:19)
 

лан,хрен с куками не получается,тогда пойду более надежным путем...через .htaccess и возникает вопрос может ли .htaccess взаимодействовать с php ?? и как и с базой данных тоже...например пользователь зарегился(его пароль и ник в базу заносятся тут же) и тут же он может пойти по ссылке и зайти в директорию которая защищена от входа и пишет свои логин и пароль...и эти лог и пароль проверяются по базе если все совпадает,то на ту-то страницу,если нет,до свиданья....или как это вообще можно сделать???если не с помощью php?

   
 
 автор: LimP   (20.11.2004 в 17:19)   письмо автору
 
   для: cheops   (18.11.2004 в 16:39)
 


CREATE TABLE auth ( 
  client_id int(10) NOT NULL auto_increment, 
  login text, 
  password tinytext, 
  PRIMARY KEY  (client_id) 
) TYPE=MyISAM; 

вот таблица,я ее уже раньше выше публиковал...

   
 
 автор: cheops   (18.11.2004 в 16:39)   письмо автору
 
   для: LimP   (18.11.2004 в 16:31)
 

Да вроде всё правильно... чтобы воспроизвести ситуацию нужна таблица. Cookie можно все потереть, правда если не боитесь вводить пароли и логины на всех сайтах которые посещаете (на нашем форуме точно придётся осущствить вход, после того как куки будут потёрты). Или ориенитруйтесь на что-то вроде администратор@index.txt, администратор@localhost.txt...

   
 
 автор: LimP   (18.11.2004 в 16:31)   письмо автору
 
   для: cheops   (17.11.2004 в 22:56)
 

у меня там такоая куча файлов,что даже и не разьерусь....а правильно ли я вообще все делаю???

   
 
 автор: cheops   (17.11.2004 в 22:56)   письмо автору
 
   для: LimP   (17.11.2004 в 18:15)
 

В первую очередь попробуйте посмотреть пишутся ли cookies в директорию C:/Documents and Settings/Имя пользователся/Cookies/ - в этой директории должен быть файл в котором будут имена login и passwd.

   
 
 автор: LimP   (17.11.2004 в 18:15)   письмо автору
 
   для: cheops   (11.11.2004 в 22:45)
 

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

<?php
include "config.php";
//------------------------------------
$log $_POST['login'];
$log2 trim($log);
$log1 htmlspecialchars($log2);
$login stripslashes($log1);
//------------------------------------
$pass $_POST['password'];
$pass1 trim($pass);
$pass2 htmlspecialchars($pass1);
$passwd stripslashes($pass2);
$passwd_crypt md5($passwd);
//------------------------------------
$query_check "select * from auth where login='$login';";
$ok mysql_query($query_check);
if(@
mysql_num_rows($ok)>0)
{
 
$query_check1 "select * from auth where password='$passwd_crypt';";
 
$ok1 mysql_query($query_check1);
 if(@
mysql_num_rows($ok1)>0)
 {
  
$query21 "select * from auth where login='$login' and password='$passwd_crypt';";
  
$oka21 mysql_query($query21);
  
$arr mysql_fetch_array($oka21);
  
$client_id $arr['client_id'];
  if(
$client_id != "")
  {
   
//ставим куку------------------------------------
  
if(setcookie("login",$login,time()+3600*24*2) && setcookie("passwd",$passwd_crypt,time()+3600*24*2))
    echo
"<meta http-equiv='refresh' content='0; url=../clients.php?client_id=".$client_id."'>";
  
//ставим куку------------------------------------
  
}
  else  echo 
"<meta http-equiv='refresh' content='0;url=../auth.php?error=server'>";
 }
 else echo 
"<meta http-equiv='refresh' content='0;url=../auth.php?invalid=passwd'>";
}
else echo 
"<meta http-equiv='refresh' content='0;url=../auth.php?invalid=login'>";

?>

   
 
 автор: cheops   (11.11.2004 в 22:45)   письмо автору
 
   для: LimP   (11.11.2004 в 20:24)
 

Попробуйте посмотреть что вообще есть в массиве $_COOKIE:
<?php
  print_r
($_COOKIE);
?>

   
 
 автор: LimP   (11.11.2004 в 20:24)   письмо автору
 
   для: cheops   (11.11.2004 в 17:13)
 

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

if(setcookie("login",$login,time()+3600*24*2) && setcookie("passwd",$passwd_crypt,time()+3600*24*2))
  {
    header("location:../clients.php?client_id=".$client_id."");
  }

и вот так в сккрипте проверяю,работает ли она...

if(!isset($_COOKIE["login"]))
  echo "<meta http-equiv='refresh' content='0; url=auth.php?error=cookie'>";
if(!isset($_COOKIE["passwd"]))
  echo "<meta http-equiv='refresh' content='0; url=auth.php?error=cookie'>";

но нифига,хотя у меня в браузере все установлено и другие куки работают....

   

Сообщения:  [1-10]   [11-17] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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