Дело в том, что я учусь PHP&mysql по видео урокам Попова и читаю литетуру по php. Так вот решил установить себе пароль на админку по скрипту приведенному в уроке, в видео уроке все получается гладко, а у меня сделавшего по аналогии выдаёт ошибки:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 7
вот сам скрипт(lock.php):
<?php
include ("inc/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();
}
}
?>
скажите в чем может быть дело и как устранить ошибки, ну или посоветуйте какой небудь несложный эффективный скрипт
Спустя 21 минута, 44 секунды (27.11.2009 - 18:54) ber104 написал(а):
А вы базу в mysql создавали с данными для входа?
include ("inc/bd.php"); - соеденение с базой, возможно она у вас в другом месте и файл по другому называется.
include ("inc/bd.php"); - соеденение с базой, возможно она у вас в другом месте и файл по другому называется.
Спустя 38 минут, 12 секунд (27.11.2009 - 19:32) glock18 написал(а):
перед <?php есть пробелы или BOM (символ такой, если в файлах кодировка UTF)
Спустя 1 час, 1 минута, 11 секунд (27.11.2009 - 20:33) Krevedko написал(а):
ошибка тут в обучении по урокам попова ))
а вообще да..вы скрипт случайно не в блокноте сохраняли ?
а вообще да..вы скрипт случайно не в блокноте сохраняли ?
Спустя 4 часа, 41 минута, 28 секунд (28.11.2009 - 01:14) Roma Teo написал(а):
ber104 базу данных конечно создавал и она точно там где нужно, я хоть и начинающий, но начёт базы данных кое-что смыслю.
____________________________________________________________
glock18 Поубирал всё пробелы, там где вы сказали, никакого результата не дало тоже самое выбрасывает
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 7
исходя из этой ошибки могу придти к выводу, что проблема в 6-7линиях:
но что тут может быть не так, никак в голову не приходит
_________________________________________________________________
Krevedko в php файле сохранён, до этого по урокам Попова у меня всё отлично получалось, только вот этой "касяк" с доступом в админку.
____________________________________________________________
glock18 Поубирал всё пробелы, там где вы сказали, никакого результата не дало тоже самое выбрасывает
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 7
исходя из этой ошибки могу придти к выводу, что проблема в 6-7линиях:
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
но что тут может быть не так, никак в голову не приходит
_________________________________________________________________
Krevedko в php файле сохранён, до этого по урокам Попова у меня всё отлично получалось, только вот этой "касяк" с доступом в админку.
Спустя 7 часов, 41 минута, 3 секунды (28.11.2009 - 08:55) ber104 написал(а):
У меня тоже был такой скрипт и все отлично получалось.
Может с хостингом проблемы?
Или надо include писать на данный скрипт в самом вверху страницы.
Может с хостингом проблемы?
Или надо include писать на данный скрипт в самом вверху страницы.
Спустя 1 час, 55 минут, 32 секунды (28.11.2009 - 10:51) Gram написал(а):
Корявый код какой-то или мне кажется?
Спустя 2 часа, 31 минута, 27 секунд (28.11.2009 - 13:22) Roma Teo написал(а):
ber104 да в том-то и дело, что знаю что многие его используют и у них всё работает, а вот у меня что не идёт((( Насчёт хостинка, то тестирую свой сайт покачто на локальном компе в Денвере, на хост не закидываю, а версия Денвера вроде не старая. Слушай, а есть ли у тебя какой небудь другой скрипт "входа в админку по поролю?" был бы благодарен
Gram ну незнаю насчёт карявости, но если есть какие небудь другие предложения по скрипту "входа в админку по поролю", то был бы очень признателен
Gram ну незнаю насчёт карявости, но если есть какие небудь другие предложения по скрипту "входа в админку по поролю", то был бы очень признателен
Спустя 1 час, 56 минут, 32 секунды (28.11.2009 - 15:19) Argnist написал(а):
на 4 строке inc/bd.php выводится что-то на экран или пробелы лишние, как бы в ошибке все написано
Спустя 1 день, 4 часа, 21 минута, 30 секунд (29.11.2009 - 19:41) Roma Teo написал(а):
Argnist хочешь сказать, что всё дело в пробелах?
Япоубирал там все возможные пробелы и тоже самое в итоге
________________________________________________________________
и вообще почему чтов этих 2ух строчках не так что выдаются ошибки...
Вроде много кто этот скрипт изает и у них всё в норме, что может быть не так?
Япоубирал там все возможные пробелы и тоже самое в итоге
________________________________________________________________
и вообще почему чтов этих 2ух строчках не так что выдаются ошибки...
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
Вроде много кто этот скрипт изает и у них всё в норме, что может быть не так?
Спустя 1 день, 6 часов, 9 минут, 41 секунда (1.12.2009 - 01:50) Roma Teo написал(а):
Люди тогла посоветуйте пожалуйсто какой небудь не сложный скрипт для входа в админку по поролю, а то реально..."глюк" этого скрипта не поддаёться понимаю, уже всё перепробовал((
Спустя 38 минут, 48 секунд (1.12.2009 - 02:29) dr_Lev написал(а):
Да не глюк это скрипта...
Хедеры нельзя изменять, если уже был какой-то вывод...
Посмотри файл db.php, а именно строку 4, там и идет вывод...
В ошибке же написано:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 6
Хедеры нельзя изменять, если уже был какой-то вывод...
Посмотри файл db.php, а именно строку 4, там и идет вывод...
В ошибке же написано:
Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.php on line 6
Спустя 1 месяц, 20 дней, 20 часов, 25 минут, 39 секунд (21.01.2010 - 22:55) romul написал(а):
А как изменить этот скрипт что бы хеш пороля сравнивался... если в базе хеш?
Точнее двойной md5(md5())
Точнее двойной md5(md5())
<?php
include ("inc/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();
}
}
?>
Спустя 4 часа, 47 минут, 55 секунд (22.01.2010 - 03:43) Dron19 написал(а):
Этот файл нужно подключать сразу после файла который подключает базу и перед <! DOCTYPE HTML PUBLIC ..... И если у тебя в базе хэш, то измени на нормальный, если хочешь, чтобы твой скрипт сравнивал введенный пароль с md5, то сначала разбери скрипт, он простой.
Спустя 3 часа, 29 минут, 38 секунд (22.01.2010 - 07:12) twin написал(а):
Очередной финт попова...
Я вообще подозреваю, что это специально сделано. Теперь попов знает, как поломать кучу сайтов, которые делались по его нущению.
На кой хрен тут это:
Ни один человек в здравом уме и рассудке такой глупости не сделает.
И зачем такая куча вычислений в php. когда можно все решить в мускуле...
Я вообще подозреваю, что это специально сделано. Теперь попов знает, как поломать кучу сайтов, которые делались по его нущению.
На кой хрен тут это:
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']);
}
Ни один человек в здравом уме и рассудке такой глупости не сделает.
И зачем такая куча вычислений в php. когда можно все решить в мускуле...
Спустя 6 минут, 57 секунд (22.01.2010 - 07:19) qpayct написал(а):
Если не ошибаюсь тебе просто надо сохранить файл не в ANSI а в without BOM уроки Твина тебе в помощь
Спустя 25 дней, 12 часов, 51 минута, 50 секунд (17.02.2010 - 20:11) BAG's написал(а):
Цитата (Roma Teo @ 27.11.2009 - 15:32) |
Здраствуйте. Я начинающий. Перелопатил море "интернета" и не к чему не пришёл, поэтому вынужден был обратиться к вам за советами и помощью. Дело в том, что я учусь PHP&mysql по видео урокам Попова и читаю литетуру по <span class='darling'>php</span>. Так вот решил установить себе пароль на админку по <span class='darling'><span class='darling'>скрипту</span></span> приведенному в уроке, в видео уроке все получается гладко, а у меня сделавшего по аналогии выдаёт ошибки: Warning: Cannot modify header information - headers already sent by (output started at Z:\home\localhost\www\WithBaby.ru\admin\inc\bd.<span class='darling'>php:4) in Z:\home\localhost\www\WithBaby.ru\admin\lock.<span class='darling'>php</span> on line 6 |
просмотрел я курс попова.
думаю имеет место быть проблемма (не уверен что правильно скажу) с вложенностью обращений к файлам по запросу [b]include
попробуй в файле lock.php вместо автоматического обращения к базе прописать этот код вручную.
а именно вместо:
<?php
include ("inc/bd.php"); /* соединение с БД*/
if (!isset($_SERVER['PHP_AUTH_USER']))
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
.........
пропиши строки содержащиеся в inc/bd.php, тогда код будет выглядеть примерно так:
<?php
$db = mysql_connect("localhost (имя хоста)","php"(пользователь в phpmyadmin),"12345"(пороль в phpmyadmin));
mysql_select_db("phpsite",$db);
if (!isset($_SERVER['PHP_AUTH_USER']))
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
.........
надеюсь поможет.
Спустя 6 месяцев, 14 дней, 23 часа, 32 минуты, 48 секунд (1.09.2010 - 18:44) гость написал(а):
у тебя пробелы скорее всего в файле bd.php, посмотри пробелы до и после закрывающих тегов php
Спустя 5 часов, 55 минут, 33 секунды (2.09.2010 - 00:39) twin написал(а):
гы...
археолог. Вот в чем проблема.
археолог. Вот в чем проблема.
Спустя 5 месяцев, 8 дней, 17 часов, 25 минут, 24 секунды (10.02.2011 - 19:05) Guest написал(а):
пробелы после ?> уберите
Спустя 15 часов, 20 минут, 12 секунд (11.02.2011 - 10:25) Dinho=) написал(а):
У меня такая же проблема как и у Roma Teo возникла )) Я думал целых два дня как ее решить,потом удалил файл bd.php и затем создал его снова))) В итоге всё заработало:ввожу пароль и логин -заходит без проблем.
P.S. волшебство прям какое-то
P.P.S у Попова есть небольшой ляп в уроке,а именно: поначалу он назвал файл "db.php",а в конце этот файл уже имел название "bd.php"...
P.S. волшебство прям какое-то
P.P.S у Попова есть небольшой ляп в уроке,а именно: поначалу он назвал файл "db.php",а в конце этот файл уже имел название "bd.php"...
Спустя 2 дня, 13 часов, 17 минут, 39 секунд (13.02.2011 - 23:43) m4a1fox написал(а):
Я конечно не профи. Но вот такой скрипт есть у TWIN'а. Попробуй. Мне помогло
<?php
// базовая аунтификация для админа в админ панель)) проверка
// логин и пароль admin => admin.
if(empty($_SERVER['PHP_AUTH_USER']))
{
header('WWW-Authenticate: Basic realm="Administrative resource"');
header("HTTP/1.0 401 Unauthorised");
exit();
}
$result = mysql_query("SELECT COUNT(*) AS `cnt` FROM `adminc`
WHERE user='". mysql_real_escape_string($_SERVER['PHP_AUTH_USER']) ."'
AND password='". htmlspecialchars(md5($_SERVER['PHP_AUTH_PW'])) ."'"
);
if (mysql_result($result, 0) == 0)
{
header('WWW-Authenticate: Basic realm="Administrative resource"');
header ("HTTP/1.0 401 Unauthorized");
exit();
}
// конец скрипта проверки на аунтификацию в админ панель
?>
Спустя 1 месяц, 14 дней, 13 часов, 8 минут, 41 секунда (28.03.2011 - 11:51) akv написал(а):
ber104, какая нахрен база? Он не может сделать редирект, потому что его только что редиректили. Поэтому надо посмотреть последовательность if. Надо чтобы строка header(...) не встречалась больше двух раз.
Спустя 3 часа, 50 минут, 36 секунд (28.03.2011 - 15:42) petezzza написал(а):
Скачай notepad++ , открой файлы все , и в меню сверху нажми кодировки -> преобразовать в utf-8 без BOM должно помочь.
Спустя 2 месяца, 13 дней, 1 час, 58 минут, 53 секунды (11.06.2011 - 17:41) Amadeo написал(а):
У меня такая же проблема как и у Roma Teo возникла . Я конечно не профи. Но удалив include("blocks/bd.php"); и написав полностью скрипт bd
<?php
include("blocks/bd.php"); удалить и написать bd.
$db = mysql_connect("localhost","..Ваш логин........","..Пароль...")or die("Не могу соединиться". mysql_error());
mysql_select_db("phpsite",$db)or die("Ошибка запроса");
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();
}
}
?>
и у меня заработала.
<?php
include("blocks/bd.php"); удалить и написать bd.
$db = mysql_connect("localhost","..Ваш логин........","..Пароль...")or die("Не могу соединиться". mysql_error());
mysql_select_db("phpsite",$db)or die("Ошибка запроса");
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();
}
}
?>
и у меня заработала.
Спустя 1 минута, 53 секунды (11.06.2011 - 17:43) Amadeo написал(а):
У меня такая же проблема как и у Roma Teo возникла . Я конечно не профи. Но удалив include("blocks/bd.php"); и написав полностью скрипт bd
и у меня заработала.
<?php
include("blocks/bd.php"); удалить и написать bd.
$db = mysql_connect("localhost","..Ваш логин........","..Пароль...")or die("Не могу соединиться". mysql_error());
mysql_select_db("phpsite",$db)or die("Ошибка запроса");
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();
}
}
?>
и у меня заработала.
Спустя 15 дней, 14 часов, 32 минуты, 55 секунд (27.06.2011 - 08:16) Гость_Серега написал(а):
include_once("db.php");
И все.
И все.
Спустя 3 месяца, 6 дней, 10 часов, 50 минут, 18 секунд (3.10.2011 - 19:06) demokrrat написал(а):
В общем я использовал эту систему у себя на компе и все работало.
И когда я ввожу логин и пароль оно заново меня просит ввести их.
И когда я ввожу логин и пароль оно заново меня просит ввести их.
Спустя 7 месяцев, 21 час, 57 минут (4.05.2012 - 17:03) ahanter написал(а):
ВотЪ оно все хорошо... Но почему нет кнопки ВЫХОД в этой админке???
Спустя 1 месяц, 24 дня, 19 часов, 34 минуты, 49 секунд (29.06.2012 - 12:38) Гость_Алексей написал(а):
Подскажите пожалуйста, я установил этот скрипт, создал таблицу в базе данных, создал пользователя, все нормально работает, а вот когда захожу в админ панель ввожу логин и пароль, а оно не заходит, что-это может быть?
И когда в базе данных я создаю поле с именем pass - то скрипт не работает, а когда назову поле password - тогда работает, но не заходит в админку.
И когда в базе данных я создаю поле с именем pass - то скрипт не работает, а когда назову поле password - тогда работает, но не заходит в админку.
Спустя 16 минут, 10 секунд (29.06.2012 - 12:54) Денис777 написал(а):
Roma Teo Я сам учился по урокам попов , попов тебя не чему хорошему не научит , irbis-team.com вот этот сайт хорош )