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

Форум PHP

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

 

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

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

тема: админка авторизация
 
 автор: tvv123456   (22.01.2010 в 03:56)   письмо автору
 
 

Народ выскжите "восхищение" приведеным скриптом(скрипт для аторизации в админке) и укажите 3 причины почему он не работает(буду очень благодарен):



<?
error_reporting
(0);
include (
"../setup.php");
$resultg=mysql_query("select * from seting ");
$rog=mysql_fetch_array($resultg);
$Users = array($rog[0] => $rog[1]);
session_start();
session_register("SESSION");
if (! isset(
$SESSION)) {
$SESSION = array();
}
if(
$event=='exit') {
unset (
$SESSION["password"]);
unset (
$SESSION["username"]);
}
if(
$enter) {
$SESSION["username"] = $user;
$SESSION["password"] = $passw;
}
$username $SESSION["username"];
$password $SESSION["password"];
$dd array_search($password$Users);
?>

<style type=text/css>
input { FONT-FAMILY: MS Sans Serif; FONT-SIZE: 10px; }
select { FONT-FAMILY: MS Sans Serif; FONT-SIZE: 10px; }
a:hover { color: #86869B }
a:visited { color: navy }
a { color: navy }
a:active { color: #ff0000 }
body { FONT-FAMILY: Times New Roman; FONT-SIZE: 13pt; COLOR: #1F1F1F; }
</style>

<? if (empty($password) or $dd !== $username) { ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<title>Вход для администратора</title>
<link href="images/default.css" rel="stylesheet" type="text/css" media="screen">
</head>

<body>
<table border="0" align="center" cellpadding="2" cellspacing="0">
<tr>
<td class="bborder">
<table border="0" cellpadding="0" cellspacing="0" width="700">
<tr>
<td align="center" height="24" class="main">
<table border="0" cellspacing="0" cellpadding="5">
<tr>
<td>
</table>
<tr>
<td height="19">
<table border="0" cellpading="0"cellspacing="15" width="100%" height="100%">
<tr>
<td><div class="header"><img border="0" src="images/user.gif" align="absmiddle"> Vegas777.RU</div>
<tr>
<td width="100%" height="100%">
<table border="0" cellspacing="0" cellpadding="1">
 <form action="<?=$PHP_SELF?>" method="post">
  <tr>
   <td width="80">Логин   <td><input type="text" name="user" style="width:134">
  <tr>
   <td>Пароль   <td><input type="password" name="passw" style="width:134">
  <tr>
   <td>
   <td><input type="submit" name="enter" style="width:134;" value="    Войти    ">
  <tr>
   <td align="center" colspan="3"></td>
  </tr>
 </form>
</table>

</table>
<tr>
<td height="24" align="center" class="copyrights"><div style="font-size: 9px;">Powered by <a style="font-size: 9px" href="http://dleo.net.ru" target=_blank>DigitalLeo</a></div></td>
</table>
</table>

</body>
</html>
<?
die();
}
?>


(сразу говорю это не мое(мне кажеться это очень смешным) но хочеться услышать мнение профи)

  Ответить  
 
 автор: bab-nike   (23.01.2010 в 15:33)   письмо автору
 
   для: tvv123456   (22.01.2010 в 03:56)
 

ну во первых я тут не вижу как обрабатываются данные из формы, то есть $_POST['user'] и $_POST['passw'] ? потом вот так должен быть, без знака равенства <form action="<? $PHP_SELF?>" method="post">, и проверка if (empty($password) or $dd !== $username) мне не понятно, как я знаю array_search возвращает ключ искомого значения, а не само значение, да и неправильно вообще так проверить.

  Ответить  
 
 автор: sim5   (23.01.2010 в 15:36)   письмо автору
 
   для: bab-nike   (23.01.2010 в 15:33)
 

>потом вот так должен быть, без знака равенства <form action="<? $PHP_SELF?>"

Уверены?

  Ответить  
 
 автор: bab-nike   (23.01.2010 в 15:45)   письмо автору
 
   для: sim5   (23.01.2010 в 15:36)
 

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

  Ответить  
 
 автор: sim5   (23.01.2010 в 15:52)   письмо автору
 
   для: bab-nike   (23.01.2010 в 15:45)
 

Даже так?!

  Ответить  
 
 автор: neadekvat   (23.01.2010 в 15:56)   письмо автору
 
   для: sim5   (23.01.2010 в 15:52)
 

А парень юморист, а?))

  Ответить  
 
 автор: neadekvat   (23.01.2010 в 15:57)   письмо автору
 
   для: bab-nike   (23.01.2010 в 15:33)
 

Выставьте уровень предупреждений и ошибок в E_ALL и напишите одну лишь строку:
<? $PHP_SELF?>

Что будет?

  Ответить  
 
 автор: bab-nike   (23.01.2010 в 16:28)   письмо автору
 
   для: neadekvat   (23.01.2010 в 15:57)
 

а как по вашему должен быть? может я что то не врубаюсь на самом деле?
p.s. только не говорите $_SERVER['PHP_SELF']

  Ответить  
 
 автор: neadekvat   (23.01.2010 в 16:29)   письмо автору
 
   для: bab-nike   (23.01.2010 в 16:28)
 

Это вы уже сами сказали.
Вы попробовали сделать то, что посоветовали человеку и то, что посветовал сделать вам я?

  Ответить  
 
 автор: tvv123456   (24.01.2010 в 03:04)   письмо автору
 
   для: neadekvat   (23.01.2010 в 16:29)
 

Ну есть доля истины в этих словах. Меня интересовали некоректная обработка POST и SESSION, точнее подтверждение этих слов

  Ответить  
 
 автор: sim5   (24.01.2010 в 10:40)   письмо автору
 
   для: tvv123456   (24.01.2010 в 03:04)
 

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

  Ответить  
 
 автор: neadekvat   (24.01.2010 в 12:53)   письмо автору
 
   для: sim5   (24.01.2010 в 10:40)
 

+ на экран ничего не выводится.

  Ответить  
 
 автор: bab-nike   (24.01.2010 в 14:38)   письмо автору
 
   для: neadekvat   (24.01.2010 в 12:53)
 

еще не кто не отменил $PHP_SELF, и вместо $_SERVER['PHP_SELF'] вписать $PHP_SELF никак не повлияет на работоспособность скрипта.

  Ответить  
 
 автор: neadekvat   (24.01.2010 в 14:48)   письмо автору
 
   для: bab-nike   (24.01.2010 в 14:38)
 

Внимательней читайте
на экран ничего не выводится.

К тому же, нормальные программисты уже давно не пользуются включенным register_globals()

[поправлено модератором]

  Ответить  
Rambler's Top100
вверх

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