Может не совсем по теме ветки форума, но где задать вопрос не знал.
Загрузил на хостинг (webnames.ru) сайт. Сначала скрипты не работали. Оказалось что нужно права доступа прописать. А теперь include не работает. В чем может быть дело? Может изменить register globals?
Пытался связаться с тех.поддержкой, говорят все должно работать. Ощущение как будто полные нули в этом. Про права доступа даже не сказали. Сам в поиске нашел. Подскажите, пожалуйста, может какие-то стандартные вещи сделать нужно?
И, кстати, никому не советую обозначенный хостинг.
Спустя 18 минут, 38 секунд (24.04.2010 - 12:34) Alex Karamushko написал(а):
Попробуйте включить ошибки для пхп, для этого если пхп установлен как модуль для апача создайте .htaccess файл, со следующим контентом в корне вашего сайта:
php_flag display_errors On
php_value error_reporting 6143
Это должно показать конкретную ошибку почему файлы не включаются.
php_flag display_errors On
php_value error_reporting 6143
Это должно показать конкретную ошибку почему файлы не включаются.
Спустя 4 часа, 10 минут, 34 секунды (24.04.2010 - 16:45) sl4mmer написал(а):
userguest
ммм а причем тут register_globals ?
1) в начале скрипта вставь
и запост сюда что пишет скрипт при исполнении...
З.Ы. твоей фразой о register_globals навеяло - ты имя подключаемого файла передаешь скрипту каким образом?
ммм а причем тут register_globals ?
1) в начале скрипта вставь
error_reporting( E_ALL );
и запост сюда что пишет скрипт при исполнении...
З.Ы. твоей фразой о register_globals навеяло - ты имя подключаемого файла передаешь скрипту каким образом?
Спустя 16 часов, 52 минуты, 27 секунд (25.04.2010 - 09:37) userguest написал(а):
<?php
include ("blocks/name.php");
?>
Если вы об этом.
Сначала воспользовался первым советом. Получились непонятные для меня вещи.
Сначала создал .htaccess пустой. При обновлении страницы стали видны ошибки. Написал в данном файле всякую чушь - браузер выдал ошибку. Удалил файл - снова были видны ошибки соединения с базой. Оказалось, что данные для подключения к базе были не верны. Исправил их на хостинге напрямую. Все осталось по-прежнему. Удалил все с хостинга, исправил тоже самое на локальном компьютере, загрузил на хостинг - стало работать.
Далее не работала администраторская зона - была та же история с данными для подключения к базе. Тоже пришлось удалять и загружать на хостинг заново. Почему - неясно (может, кеширование). После этого данные из базы еще не начали выводиться. Посмотрел у меня в include директории и папки с маленькой буквы записаны (это единственное, что было не так, больше не к чему прицепиться), а реальные папки и файлы с большой. Исправил на хостинге - не работает. Исправил локально, удалил все с хостинга, загрузил заново. Начали выводиться данные из базы. Теперь проблема со скриптом авторизации от участника форума TWIN'а, я еще по этому поводу вопрос задавал.
Проблема такая. После того как изменил буквы с заглавных на строчные этот скрипт, вроде, начал работать. Хотя бы просил ввести пароль. Ввожу верные данные - он не принимает. Так около 10 раз подряд. После этого не знаю на какой раз он открывает страницу, но с ошибкой:
Warning: include(auth/auth.php) [function.include]: failed to open stream: No such file or directory in /... /index.php on line 1
Warning: include(auth/auth.php) [function.include]: failed to open stream: No such file or directory in /... / index.php on line 1
Warning: include() [function.include]: Failed opening 'auth/auth.php' for inclusion (include_path='.:/...') in /... / index.php on line 1
include ("blocks/name.php");
?>
Если вы об этом.
Сначала воспользовался первым советом. Получились непонятные для меня вещи.
Сначала создал .htaccess пустой. При обновлении страницы стали видны ошибки. Написал в данном файле всякую чушь - браузер выдал ошибку. Удалил файл - снова были видны ошибки соединения с базой. Оказалось, что данные для подключения к базе были не верны. Исправил их на хостинге напрямую. Все осталось по-прежнему. Удалил все с хостинга, исправил тоже самое на локальном компьютере, загрузил на хостинг - стало работать.
Далее не работала администраторская зона - была та же история с данными для подключения к базе. Тоже пришлось удалять и загружать на хостинг заново. Почему - неясно (может, кеширование). После этого данные из базы еще не начали выводиться. Посмотрел у меня в include директории и папки с маленькой буквы записаны (это единственное, что было не так, больше не к чему прицепиться), а реальные папки и файлы с большой. Исправил на хостинге - не работает. Исправил локально, удалил все с хостинга, загрузил заново. Начали выводиться данные из базы. Теперь проблема со скриптом авторизации от участника форума TWIN'а, я еще по этому поводу вопрос задавал.
Проблема такая. После того как изменил буквы с заглавных на строчные этот скрипт, вроде, начал работать. Хотя бы просил ввести пароль. Ввожу верные данные - он не принимает. Так около 10 раз подряд. После этого не знаю на какой раз он открывает страницу, но с ошибкой:
Warning: include(auth/auth.php) [function.include]: failed to open stream: No such file or directory in /... /index.php on line 1
Warning: include(auth/auth.php) [function.include]: failed to open stream: No such file or directory in /... / index.php on line 1
Warning: include() [function.include]: Failed opening 'auth/auth.php' for inclusion (include_path='.:/...') in /... / index.php on line 1
Спустя 5 минут, 1 секунда (25.04.2010 - 09:42) userguest написал(а):
Вот это новости!
Оказывается когда нажимаешь кнопку отменить при вводе пароля, страница открывается, а не после n-го раза ввода пароля.
Оказывается когда нажимаешь кнопку отменить при вводе пароля, страница открывается, а не после n-го раза ввода пароля.
Спустя 1 час, 44 минуты, 47 секунд (25.04.2010 - 11:27) userguest написал(а):
Такое положение дел только в
Опере:
Версия:
10.51
Сборка:
3315
В IE не пускает, если нажать отмену в Firefox тоже.
Это как называется?
Опере:
Версия:
10.51
Сборка:
3315
В IE не пускает, если нажать отмену в Firefox тоже.
Это как называется?
Спустя 1 час, 10 минут, 31 секунда (25.04.2010 - 12:38) userguest написал(а):
Во всех путях исправил первые буквы на строчные, теперь вроде при нажатии кнопки отмена все работает так, как надо.
Но не пускает по паролю.
Наверное с кодировками проблема. Как исправить?
Кстати про кодировки.
На самом сайте, когда его скопировал на хостинг вместо букв были ????????.
Потом на этом форуме нашел, что после соединения с базой нужно прописать mysql_query("SET NAMES 'cp1251'");
Это помогло.
Как быть теперь?
Но не пускает по паролю.
Наверное с кодировками проблема. Как исправить?
Кстати про кодировки.
На самом сайте, когда его скопировал на хостинг вместо букв были ????????.
Потом на этом форуме нашел, что после соединения с базой нужно прописать mysql_query("SET NAMES 'cp1251'");
Это помогло.
Как быть теперь?
Спустя 7 минут, 42 секунды (25.04.2010 - 12:45) twin написал(а):
Ну если пользовался моей авторизацией, там черным по белому писано - никаких cp1251. Там все в utf-8 было. Теперь даже не знаю что сказать...
Спустя 2 часа, 29 минут, 2 секунды (25.04.2010 - 15:14) userguest написал(а):
twin, ну тогда я совсем запутался, помогите, пожалуйста.
Рассказываю все сначала.
Во всех страницах сайта в теге <body> прописано:
Все наполнение берётся из базы данных.
На локальном сервере:
MySQL
* Сервер: localhost via TCP/IP
* Версия сервера: 5.1.40-community
* Версия протокола: 10
* Пользователь: ...
* MySQL-кодировка: UTF-8 Unicode (utf8)
Все данные в браузере на локальном сервере отображаются корректно.
Экспоритровал базу в текстовый документ, на хостинге создал базу с нужным именем сделал SQL запрос с текстом из экспортированногго документа. База с таблицами создана.
Копирую сайт на хостинг.
Открываю главную страницу. Все данные, которые извлекаются из базы отображаются в виде вопросительных знаков (??????). Остальные данные (пункты меню, нижняя часть сайта), которые находятся непосредственно в тексте php файла отображаются корректно.
Данные базы (сервера MySQl - не знаю как правильнее) на хостинге:
Protocol version: 10
Сервер: Localhost via UNIX socket
Пользователь: admin_site@localhost
MySQL-кодировка: UTF-8 Unicode (utf8)
После этого на данном форуме нахожу, что проблему поможет решить добавление в файл для подключения к базе данных строчки:
Добавляю - все отображается корректно.
Теперь про администраторску зону. Там для подключения к базе к каждой странице подключается этот же файл.
Первоначальный логин/пароль: Administrator/123.
Пароль записан в базе как хеш числа 123 , т.е. 202cb962ac59075b964b07152d234b70.
Перехожу в администраторский раздел, ввожу данные - не пускает.
Подключение с базой осуществляется, потому как все остальные страницы выводят данные из нее, а подключаются они тем же файлом.
После создал другой файл для подключения к базе и убрал оттуда строчку:
Эффект тот же - не пускает.
Вроде все.
Рассказываю все сначала.
Во всех страницах сайта в теге <body> прописано:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Все наполнение берётся из базы данных.
На локальном сервере:
MySQL
* Сервер: localhost via TCP/IP
* Версия сервера: 5.1.40-community
* Версия протокола: 10
* Пользователь: ...
* MySQL-кодировка: UTF-8 Unicode (utf8)
Все данные в браузере на локальном сервере отображаются корректно.
Экспоритровал базу в текстовый документ, на хостинге создал базу с нужным именем сделал SQL запрос с текстом из экспортированногго документа. База с таблицами создана.
Копирую сайт на хостинг.
Открываю главную страницу. Все данные, которые извлекаются из базы отображаются в виде вопросительных знаков (??????). Остальные данные (пункты меню, нижняя часть сайта), которые находятся непосредственно в тексте php файла отображаются корректно.
Данные базы (сервера MySQl - не знаю как правильнее) на хостинге:
Protocol version: 10
Сервер: Localhost via UNIX socket
Пользователь: admin_site@localhost
MySQL-кодировка: UTF-8 Unicode (utf8)
После этого на данном форуме нахожу, что проблему поможет решить добавление в файл для подключения к базе данных строчки:
mysql_query("SET NAMES 'cp1251'");
Добавляю - все отображается корректно.
Теперь про администраторску зону. Там для подключения к базе к каждой странице подключается этот же файл.
Первоначальный логин/пароль: Administrator/123.
Пароль записан в базе как хеш числа 123 , т.е. 202cb962ac59075b964b07152d234b70.
Перехожу в администраторский раздел, ввожу данные - не пускает.
Подключение с базой осуществляется, потому как все остальные страницы выводят данные из нее, а подключаются они тем же файлом.
После создал другой файл для подключения к базе и убрал оттуда строчку:
mysql_query("SET NAMES 'cp1251'");
Эффект тот же - не пускает.
Вроде все.
Спустя 13 минут, 32 секунды (25.04.2010 - 15:28) twin написал(а):
Ну с самых первых строчек.
Цитата |
Во всех страницах сайта в теге <body> прописано: <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> |
нафига?
Когда же наконец дойдет то, что от лукавого эти кодировки самодельные.
База у тебя в utf, а ты с ней под cp1251 коннектишься. Проблемы еще только начинаются.
Но это к теме отношения не имеет, так как цифры и латиница кодируются везде одинаково. Искать нужно в другом месте.
Когда же наконец дойдет то, что от лукавого эти кодировки самодельные.
База у тебя в utf, а ты с ней под cp1251 коннектишься. Проблемы еще только начинаются.
Но это к теме отношения не имеет, так как цифры и латиница кодируются везде одинаково. Искать нужно в другом месте.
Спустя 16 часов, 15 минут, 50 секунд (26.04.2010 - 07:44) userguest написал(а):
<?php
include ("blocks/connect_bd.php");
if(!isset($_SESSION['enter']))
{
if (empty($_SERVER['PHP_AUTH_USER']))
{
header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
header ("HTTP/1.0 401 Unauthorized");
exit();
}
else
{
$res = mysql_query("SELECT COUNT(*) AS cnt FROM userlist
WHERE user='".mysql_real_escape_string($_SERVER['PHP_AUTH_USER'])."'
AND pass='".md5($_SERVER['PHP_AUTH_PW'])."'"
);
if (mysql_result($res, 0) == 0)
{
header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
header ("HTTP/1.0 401 Unauthorized");
exit();
}
$_SESSION['enter'] = true;
}
}
?>
Twin, вот ваш скрипт с небольшими моими изменениями. Как сделать, чтобы проверки логина и пароля не происходило? Т.е. чтобы пользователь ввел данные и скрипт его просто пустил на страницу. Хочу использовать $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW'], чтобы отследить какие данные получает массив. Вдруг здесь что-то не так.
Спустя 2 часа, 1 минута, 32 секунды (26.04.2010 - 09:45) userguest написал(а):
А может быть, как говорил Попов в своих видеоуроках, что настройки сервера на хостинге не позволяют напрямую обращаться к $_SERVER['PHP_AUTH_USER'] и $_SERVER['PHP_AUTH_PW']?
Я уже не знаю к чему цепляться, дело в скрипте авторизации.
Я уже не знаю к чему цепляться, дело в скрипте авторизации.
Спустя 7 часов, 50 минут, 46 секунд (26.04.2010 - 17:36) userguest написал(а):
Ну помогите кто-нибудь, пожалуйста.
Ведь многие из вас разбираются в теме лучше, чем я.
Ведь многие из вас разбираются в теме лучше, чем я.
Спустя 43 минуты, 9 секунд (26.04.2010 - 18:19) userguest написал(а):
Вот элементарный скрипт авторизации:
Но даже он на хостинге не работает, а на локальном сервере все отлично.
Дело не в ошибке подключения к базе и не в кодировках. В чем же тогда?
<?php
$login=$_SERVER["PHP_AUTH_USER"];
$password=$_SERVER["PHP_AUTH_PW"];
if($login=="admin" and $password=="admin"){
}
else { header('WWW-Authenticate: Basic realm="US Nuclear Force Red Button"');
header('Status: 401 Unauthorized');
header('HTTP-Status: 401 Unauthorized');
echo 'No pasaran!';
exit; }
?>
Но даже он на хостинге не работает, а на локальном сервере все отлично.
Дело не в ошибке подключения к базе и не в кодировках. В чем же тогда?
Спустя 12 минут, 8 секунд (26.04.2010 - 18:31) twin написал(а):
А так что скажет?
<?php
if(empty($_SERVER["PHP_AUTH_USER"]))
{
header('WWW-Authenticate: Basic realm="US Nuclear Force Red Button"');
header('Status: 401 Unauthorized');
header('HTTP-Status: 401 Unauthorized');
}
echo $_SERVER["PHP_AUTH_USER"], '<br>';
echo $_SERVER["PHP_AUTH_PW"];
Спустя 32 минуты, 53 секунды (26.04.2010 - 19:04) userguest написал(а):
В ΙΕ8:
Первые два раза после нажатия кнопки ок выводит окно для ввода снова. После третьего раза стабильно пускает на страницу. В исходном коде появляется только тег <br> и чуть-чуть "плывет" разметка страницы.
При нажатии кнопки отмена - то же самое.
В Opera 10.51 сборка 3315:
Все то же самое, только при вводе данных пускает на 5-й раз ввода и так же только тег <br>.
Google Chrome 4.1.249.1059 (44723):
Попробовал вводить данные 20 раз. Результат - не пускает. Но при нажатии кнопки отмена пускает. Отображается только тег <br> и тоже плывет разметка, только уже по-другому.
В Mozilla 3.5.9:
Слово в слово как с Google'ом. Пробовал тоже 20 раз. Не пускает. При нажатии кнопки отмена пускает. Отображается только тег <br> и тоже плывет разметка, точно также как и в Google Chrome.
В Safari 4 (530.17):
Попробовал ввести данные только два раза, т.к. очень долго "думал". Результат - "подумает" и снова выводит окно для ввода данных. При нажатии кнопки отмена просто прекращает загрузку и появляется белое окно.
Первые два раза после нажатия кнопки ок выводит окно для ввода снова. После третьего раза стабильно пускает на страницу. В исходном коде появляется только тег <br> и чуть-чуть "плывет" разметка страницы.
При нажатии кнопки отмена - то же самое.
В Opera 10.51 сборка 3315:
Все то же самое, только при вводе данных пускает на 5-й раз ввода и так же только тег <br>.
Google Chrome 4.1.249.1059 (44723):
Попробовал вводить данные 20 раз. Результат - не пускает. Но при нажатии кнопки отмена пускает. Отображается только тег <br> и тоже плывет разметка, только уже по-другому.
В Mozilla 3.5.9:
Слово в слово как с Google'ом. Пробовал тоже 20 раз. Не пускает. При нажатии кнопки отмена пускает. Отображается только тег <br> и тоже плывет разметка, точно также как и в Google Chrome.
В Safari 4 (530.17):
Попробовал ввести данные только два раза, т.к. очень долго "думал". Результат - "подумает" и снова выводит окно для ввода данных. При нажатии кнопки отмена просто прекращает загрузку и появляется белое окно.
Спустя 1 час, 6 секунд (26.04.2010 - 20:04) userguest написал(а):
Все заработало.
PHP на хостинге был запущен не как модуль Apache.
Выдержка из руководства PHP - HTTP-Аутентификация в PHP возможна только в том случае, когда он выполняется как модуль веб-сервера Apache, и, соответственно, недоступна для CGI-версии. Прочитал и вспомнил, что менял тип подключения PHP, когда не работало подключение к базе и подключение модулей через include, тогда дело было в несогласовании регистра букв в указании путей к файлам и в названии самих файлов. А после того, как эту проблему исправил, видимо, забыл изменить способ запуска PHP.
Приношу свои извинения за вопросы, возникшие в следствие моей забывчивости. А ведь уже собирался звонить в хостинг-компанию.
Когда искал в поисковых системах почему не работает авторизация увидел, что эта проблема была и у других людей. Так вот, если кто-то наткнется на эту тему, то я вам советую (как чайник чайнику из своего опыта...) если не работает HTTP-Аутентификация на хостинге:
Вот полностью рабочий скрипт пользователя Twin, берите, не ошибётесь (не забудьте сказать спасибо автору):
Для того, чтобы адаптировать для своего сайта измените только слова login и password на названия полей таблицы вашей базы данных, где хранятся логины и пароли пользователей.
1) проверьте, чтобы регистр букв в указании путей к файлам соответствовал регистру букв в названии файлов.
2) запускайте PHP, как модуль Apache-сервера.
3) т.к. используется одностороннее шифрование пароля, то проверьте, что вводимые данные соответствуют данным в базе данных. Для уверенности сделайте как я. Добавьте напрямую в базу в качестве логина: adminstrator, в качестве пароля: 202cb962ac59075b964b07152d234b70 - это соответствует числу 123. После этого при запросе авторизации введите логин administrator и пароль 123. Все должно работать.
И старайтесь не задавать глупых вопросов пока вы не сделали все, что сказано в списке выше - я уже задал эти вопросы за вас.
PHP на хостинге был запущен не как модуль Apache.
Выдержка из руководства PHP - HTTP-Аутентификация в PHP возможна только в том случае, когда он выполняется как модуль веб-сервера Apache, и, соответственно, недоступна для CGI-версии. Прочитал и вспомнил, что менял тип подключения PHP, когда не работало подключение к базе и подключение модулей через include, тогда дело было в несогласовании регистра букв в указании путей к файлам и в названии самих файлов. А после того, как эту проблему исправил, видимо, забыл изменить способ запуска PHP.
Приношу свои извинения за вопросы, возникшие в следствие моей забывчивости. А ведь уже собирался звонить в хостинг-компанию.
Когда искал в поисковых системах почему не работает авторизация увидел, что эта проблема была и у других людей. Так вот, если кто-то наткнется на эту тему, то я вам советую (как чайник чайнику из своего опыта...) если не работает HTTP-Аутентификация на хостинге:
Вот полностью рабочий скрипт пользователя Twin, берите, не ошибётесь (не забудьте сказать спасибо автору):
if(!isset($_SESSION['enter']))
{
if (empty($_SERVER['PHP_AUTH_USER']))
{
header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
header ("HTTP/1.0 401 Unauthorized");
exit();
}
else
{
$res = mysql_query("SELECT COUNT(*) AS cnt FROM resume
WHERE login='". mysql_real_escape_string($_SERVER['PHP_AUTH_USER']) ."'
AND password='".md5($_SERVER['PHP_AUTH_PW'])."'"
);
if (mysql_result($res, 0) == 0)
{
header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
header ("HTTP/1.0 401 Unauthorized");
exit();
}
$_SESSION['enter'] = true;
}
}
Для того, чтобы адаптировать для своего сайта измените только слова login и password на названия полей таблицы вашей базы данных, где хранятся логины и пароли пользователей.
1) проверьте, чтобы регистр букв в указании путей к файлам соответствовал регистру букв в названии файлов.
2) запускайте PHP, как модуль Apache-сервера.
3) т.к. используется одностороннее шифрование пароля, то проверьте, что вводимые данные соответствуют данным в базе данных. Для уверенности сделайте как я. Добавьте напрямую в базу в качестве логина: adminstrator, в качестве пароля: 202cb962ac59075b964b07152d234b70 - это соответствует числу 123. После этого при запросе авторизации введите логин administrator и пароль 123. Все должно работать.
И старайтесь не задавать глупых вопросов пока вы не сделали все, что сказано в списке выше - я уже задал эти вопросы за вас.
Спустя 1 день, 1 час, 40 минут, 28 секунд (27.04.2010 - 21:45) daemon2010 написал(а):
Цитата (userguest @ 26.04.2010 - 15:19) |
Вот элементарный скрипт авторизации:
Но даже он на хостинге не работает, а на локальном сервере все отлично. Дело не в ошибке подключения к базе и не в кодировках. В чем же тогда? |
Если пхп на сервере установлен как CGI а не как модуль для веб сервера, то такой метод аутентификации вообще не будет работать
Спустя 38 минут, 59 секунд (27.04.2010 - 22:24) twin написал(а):
Вот тут все подробненько.
Спустя 19 часов, 27 минут, 25 секунд (28.04.2010 - 17:51) userguest написал(а):
Спасибо за ссылку. Хорошая статья.