Перейти к содержимому


Партнерская программа Kredov

Пароль на страницу

#1 Вячеслав

Вячеслав
  • Пользователь
  • 357 сообщений
  • Репутация: 0
0

Отправлено 16 Апрель 2009 - 02:41

Хочу на страницу поставить пароль, чтоб был вход по паролю...

нашел вот этот скрипт скрипт

Объясните как нужно его оптимизировать?

я в строке

$LOGIN[/quote] и [quote]$PASSWORD[/quote] поставил вот так
[quote]$LOGIN = "admin";
$PASSWORD = "admin";

Вызываю скрипт ...появляется страница с окном для ввода лог и пароля...ввожу в оба поля 'admin' страница перезагружается и ничего не происходит!!! :) не пойму что и как подскажите, я только начинаю изучать PHP.

Код скрипта:
<?php
/******************************************************************************\
* Simple Page Protect Version 1.0 *
* Copyright 2000 Frederic TYNDIUK (FTLS) All Rights Reserved. *
* E-Mail: tyndiuk@ftls.org Script License: GPL *
* Created 02/28/2000 Last Modified 02/28/2000 *
* Scripts Archive at: [url="http://www.ftls.org/php/"]http://www.ftls.org/php/[/url] *
*******************************************************************************/
/*******************************************************************************/
// Necessary Variables:

$LOGIN = "admin";
$PASSWORD = "admin";
// En: login /password
// Fr: login / mots de passe

// End Necessary Variables section
/******************************************************************************/

function error ($error_message) {
echo $error_message."<BR>";
exit;
}

if ( (!isset($PHP_AUTH_USER)) || ! (($PHP_AUTH_USER == $LOGIN) && ( $PHP_AUTH_PW == "$PASSWORD" )) ) {
header("WWW-Authenticate: Basic entrer=\"Form2txt admin\"");
header("HTTP/1.0 401 Unauthorized");
error("Unauthorized access...");
}
else
{
echo "<table width='200'>
<th>Новый заказ</th>
<tr><td><p>Oрганизация</p><div class='dann'>$organization</div> </td></tr>
<tr><td><p>Контактное лицо</p><div class='dann'>$lico</div></td></tr>
<tr><td><p>Суть заказа</p><div class='dann'>$czakaz</div></td></tr>
<tr><td><p>Фото</p><div class='dann'>$foto</div></td></tr>
<tr><td><p>Контактный телефон</p><div class='dann'>$phon</div></td></tr>
</table>";
}
?>


<HTML><HEAD><TITLE>Your protected page</TITLE></HEAD>
<BODY BGCOLOR="white">
<BR><BR><P ALIGN="Center"><FONT FACE="Arial, helvetica" SIZE="+2" COLOR="#336699"><STRONG><EM>Your protected page</EM></STRONG></FONT></P><BR>

<BR><BR><BR><BR><BR><BR><BR><BR>

<CENTER><BR><BR>
<FONT FACE="Arial" SIZE=-2>
<EM>&copy Copyright 2000 <A HREF="http://www.ftls.org/">FTLS</A> (Tyndiuk Fr&eacute;d&eacute;ric). All rights reserved.
<BR>FTLS's PHP Scripts Archive : <A HREF="http://www.ftls.org/php/">http://www.ftls.org/php/</A></EM></FONT>
</CENTER></BODY></HTML>

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 16 Апрель 2009 - 09:16

Вячеслав, ничего сложного. Просто ты работаешь в режиме register_globals=On
Тебе нужно заменить
$PHP_AUTH_USER => $_SERVER['PHP_AUTH_USER']
$PHP_AUTH_PW => $_SERVER['PHP_AUTH_PW']
B)

А вообще советую научиться работать с БД. И тогда можно будет разграничивать доступ к странице для различных пользователей, и там будет не один логин и пароль, а у каждого свой :)
  • 0

#3 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 16 Апрель 2009 - 13:16

спасибо! попробую.
кстати сейчас уже дошел до соединения с БД и выводом из нее данных(в цикле).
А по поводу этого скрипта у меня подозрения по поводу безопасности...
ЧТО МОЖЕТЕ ПОДСКАЗАТЬ ПО ЭТОМУ ПОВОДУ?
  • 0

#4 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 16 Апрель 2009 - 20:03

По поводу безопасности? И что же тебя смущает?
Безопасность тут ничем не хуже чем в соединении с базой и не нужно хранить сессии. Это HTTP-авторизация, данные которые ты ввёл запоминаются на сервере, и пока ты не закроешь браузер, они там хранятся.
Но я советую лучше написать свой модуль регистрации и авторизации через сессии. Не забывай, что в базе лучше хранить хеш паролей в формате md5. И сравнивать именно хеши. Прямы пароли в базе не хранят, иначе одна качественная инъекция в БД и твои данные всем известны.
  • 0

#5 Bender

Bender
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 16 Апрель 2009 - 20:19

Говорят, надежнее всего как-то через .htpasswd и .htacess пароль задать
  • 0

#6 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 16 Апрель 2009 - 20:26

Bender, можно и как вы говорите
http://www.softtime....p?id_article=27

Но это только паролирование папок на доступ. К работе с нормальной CMS такой подход некрасивый...
  • 0

#7 Bender

Bender
  • Пользователь
  • 712 сообщений
  • Репутация: 0

Отправлено 17 Апрель 2009 - 08:24

Но это только паролирование папок на доступ.

Через это можно и файл закрыть паролем, читал где-то phpbbguru.net что так нужно закрывать в phpbb файл модерирование modcp.php, но у меня это не получилось... Кстати пароль на папку можно поставить на хостингах с direct admin, прямо через нее.
  • 0

#8 Troy

Troy
  • Пользователь
  • 18 сообщений
  • Репутация: 0

Отправлено 17 Апрель 2009 - 17:02

MySQL рулит ! остальное для мазахистов
  • 0

#9 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 357 сообщений
  • Репутация: 0

Отправлено 23 Апрель 2009 - 03:29

Для установки пароля на страницу решил использовать скрипт которй подключается на страницу чз

include ("lock.php");
.
Подскажите пожалуста почему выводится ошибка?

Parse error: syntax error, unexpected T_STRING in W:\home\localhost\www\php\admin\lock.php on line 6

Шестая строка получается здесь:
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");

exit();
}

Как ее правильно написать?
<?php
include ("bloks/bd.php");
if (!isset($_SERVER['PHP_AUTH_USER']))

{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");

exit();
}

else {
if (!get_magic_quotes_gpc()) {
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}

$query = "SELECT pass FROM userlist WHERE user='".$_SERVER['PHP_AUTH_USER']."'";
$lst = @mysql_query($query);

if (!$lst)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}

if (mysql_num_rows($lst) == 0)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}

$pass = @mysql_fetch_array($lst);
if ($_SERVER['PHP_AUTH_PW']!= $pass['pass'])
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}


}




?>

  • 0

#10 ZiTosS

ZiTosS
  • Пользователь
  • 5 148 сообщений
  • Репутация: 8

Отправлено 23 Апрель 2009 - 07:44

<?php

include ("bloks/bd.php");

if (!isset($_SERVER['PHP_AUTH_USER']))

{

   Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");

   Header ("HTTP/1.0 401 Unauthorized");

   exit();

} else {

   if (!get_magic_quotes_gpc())

   {

	  $_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);

	  $_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);

   }



   $query = "SELECT * FROM userlist WHERE user='{$_SERVER['PHP_AUTH_USER']}' AND pass='{$_SERVER['PHP_AUTH_PW']}' LIMIT 1";

   $resource = mysql_query($query) or die("");



   if (mysql_num_rows($resource) == 0)

   {

	  Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");

	  Header ("HTTP/1.0 401 Unauthorized");

	  exit();

   }

}



?>

  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru