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

Форум MySQL

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

 

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

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

тема: _LG_, продолжение темы про авторизацию
 
 автор: cheops   (31.12.2004 в 21:16)   письмо автору
 
 

Это продолжение темы http://www.softtime.ru/forum/answer.php?id_forum=1&id_theme=1347. Изменить имя можно следующим образом
<?php 
  $dbhost 
"localhost"
  
$db_name "test"
  
$dbuser "root"
  
$dbpassword "kfvth275"
  
$dbcnx = @mysql_connect($dbhost,$dbuser,$dbpasswd); 
  
$dbname "$PHP_AUTH_USER"
  if (!
$dbcnx
  { 
    exit(
"В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно."); 
  } 
  if (!@
mysql_select_db($db_name,$dbcnx)) 
  { 
    exit(
"В настоящий момент база данных недоступна, поэтому коректное отображение страницы невозможно."); 
  } 
  if(!isset(
$PHP_AUTH_USER)) 
  { 
    
Header("WWW-Authenticate: Basic realm=\"Access denied\""); 
    
Header("HTTP/1.0 401 Unauthorized"); 
    exit(); 
  } 
  else 
  { 
        
$password "$PHP_AUTH_PW"
        
//$link = mysql_connect($dbhost, $dbuser, $dbpassword); 
        //mysql_select_db($dbname); 
        
$result=mysql_query("SELECT password FROM auth WHERE name=\"$PHP_AUTH_USER\""); 
        if(!
$result) exit(mysql_error()); 
            
$row=mysql_fetch_array($result); 
        if (
$row==NULL
        { 
          
Header("WWW-Authenticate: Basic realm=\"Admin Center\""); 
          
Header("HTTP/1.0 401 Unauthorized"); 
          exit(); 
        } 
        else 
        { 
          
$real_password="$row[password]"
          if (
$real_password!=$password
          { 
            
Header("WWW-Authenticate: Basic realm= 
                                \"Access denied\""
); 
            
Header("HTTP/1.0 401 Unauthorized"); 
            exit(); 
          } 
       } 
  } 
?>

   
 
 автор: _LG_   (31.12.2004 в 21:21)   письмо автору
 
   для: cheops   (31.12.2004 в 21:16)
 

Теперь пхп ругается на скобку в 11 строчке
Parse error: syntax error, unexpected '}' in D:\server\auth.php on line 11

   
 
 автор: cheops   (31.12.2004 в 21:32)   письмо автору
 
   для: _LG_   (31.12.2004 в 21:21)
 

Ага, есть такое дело - поправил.

   
 
 автор: _LG_   (31.12.2004 в 21:35)   письмо автору
 
   для: cheops   (31.12.2004 в 21:32)
 

А код вставишь поправленный?
И к стати у тебя есть ICQ и какой нибудь мессенджер?

   
 
 автор: cheops   (31.12.2004 в 21:53)   письмо автору
 
   для: _LG_   (31.12.2004 в 21:35)
 

>А код вставишь поправленный?
Я исправил, тот который двумя постами выше.
>И к стати у тебя есть ICQ и какой нибудь мессенджер?
Я стараюсь не пользоваться ими, так как удачные решения будут недоступны другим, а в форуме это всегда можно почитать, кроме того, вопящая аська не располагает к размышлению... да и аська представляет очень удобный маркер, если при соединении по модему, каждый раз назначается новый IP-адрес, то номер аськи остаётся постоянной и можно легко находить взломанную машину...

   
 
 автор: _LG_   (01.01.2005 в 21:29)   письмо автору
 
   для: cheops   (31.12.2004 в 21:53)
 

cheops блин, я уже не знаю что делать, опять сообщение выдалось В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.

Может у меня программы какие нибудь глючные, в коде вроде сейчас всё нормально. Чё ей ещё надо?

   
 
 автор: cheops   (01.01.2005 в 23:00)   письмо автору
 
   для: _LG_   (01.01.2005 в 21:29)
 

Хм... поробуйте убрать блок
<?php
if (!$dbcnx
  { 
    exit(
"В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно."); 
  } 
?>

   
 
 автор: _LG_   (02.01.2005 в 01:53)   письмо автору
 
   для: cheops   (01.01.2005 в 23:00)
 

Я вообще всю строчку вырезал с проверкой

if (!$dbcnx)
{
exit("В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.");
}
if (!@mysql_select_db($db_name,$dbcnx))
{
exit("В настоящий момент база данных недоступна, поэтому коректное отображение страницы невозможно.");
}

Получается что проверка портит работоспособность или как объяснить такую странную работу скрипта, и куда следует писать код который будет выполняться после правильного ввода пароля.

   
 
 автор: cheops   (02.01.2005 в 12:46)   письмо автору
 
   для: _LG_   (02.01.2005 в 01:53)
 

Нет строка
mysql_select_db($db_name,$dbcnx)

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

   
 
 автор: _LG_   (02.01.2005 в 17:33)   письмо автору
 
   для: cheops   (31.12.2004 в 21:16)
 

Чёт я ничё не понял что ты хотел мне сказать

   
 
 автор: cheops   (02.01.2005 в 19:36)   письмо автору
 
   для: _LG_   (02.01.2005 в 17:33)
 

Я имее ввиду вот такой вариант:
<?php 
  $dbhost 
"localhost"
  
$db_name "test"
  
$dbuser "root"
  
$dbpassword "kfvth275"
  
$dbcnx = @mysql_connect($dbhost,$dbuser,$dbpasswd); 
  
$dbname "$PHP_AUTH_USER"
  if (!@
mysql_select_db($db_name,$dbcnx)) 
  { 
    exit(
"В настоящий момент база данных недоступна, поэтому коректное отображение страницы невозможно."); 
  } 
  if(!isset(
$PHP_AUTH_USER)) 
  { 
    
Header("WWW-Authenticate: Basic realm=\"Access denied\""); 
    
Header("HTTP/1.0 401 Unauthorized"); 
    exit(); 
  } 
  else 
  { 
        
$password "$PHP_AUTH_PW"
        
//$link = mysql_connect($dbhost, $dbuser, $dbpassword); 
        //mysql_select_db($dbname); 
        
$result=mysql_query("SELECT password FROM auth WHERE name=\"$PHP_AUTH_USER\""); 
        if(!
$result) exit(mysql_error()); 
            
$row=mysql_fetch_array($result); 
        if (
$row==NULL
        { 
          
Header("WWW-Authenticate: Basic realm=\"Admin Center\""); 
          
Header("HTTP/1.0 401 Unauthorized"); 
          exit(); 
        } 
        else 
        { 
          
$real_password="$row[password]"
          if (
$real_password!=$password
          { 
            
Header("WWW-Authenticate: Basic realm= 
                                \"Access denied\""
); 
            
Header("HTTP/1.0 401 Unauthorized"); 
            exit(); 
          } 
       } 
  } 
?>

он что пишет?

   
Rambler's Top100
вверх

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