[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ошибка в коде
BaLTiK
Народ подскажите пожалуйста
Есть данный код, и он работал пока я не подключил к нему куки. После этого все накрылось медным тазом, и где ошибка, хоть убей, не могу найти.
<?
if ((!$login) || (!$password)) {
header("Location: http://localhost/autor3.php");
exit;
}
$db_name = "yslygi";
$table_name = "услуги";
$connection = @mysql_connect("localhost", "baltik", "28111991")
or die("Невозможно подключиться MySQL.");
$db =@mysql_select_db($db_name, $connection)
or die("Невозможно выбрать базу данных.");
$sql = "SELECT * FROM `users` WHERE login = \"$login\" AND password = \"$password\"";
$result = mysql_query($sql)
or die ("Невозможно выполнить запрос.");
$num = mysql_numrows($result);
if ($num != 0)
{
$cookie_name = "auth";
$cookie_value = "ok";
$cookie_expire = "";
$cookie_domain = "";
setcookie($cookie_name, $cookie_value, $cookie_expire, "/" , $cookie_domain, 0);
$display_block = "
<p><strong>Дополнительное меню:</strong></p>
<ul>
<li><a href=\"secretA.php\">Просмотреть список услуг</a>
<li><a href=\"secretB.php\">скрытая страница B</a>
</ul>
";
}
else
{
header("Location: http://localhost/autor3.php"");
exit;
}
?>
inpost
<?php
error_reporting(-1);

Это первой строчкой.
Не забудь в htaccess прописать: display_errors , и поставить на ON

После этого ОШИБКА у тебя будет на экране выводиться.

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
BaLTiK
Одну ошибку исправил и появилась другая sad.gif
Есть вот этот код
<?
if ((!$login) || (!$password)) {
header("Location: http://localhost/autor3.php");
exit;
}
$db_name = "yslygi";
$table_name = "услуги";
$connection = @mysql_connect("localhost", "baltik", "28111991")
or die("Невозможно подключиться MySQL.");
$db =@mysql_select_db($db_name, $connection)
or die("Невозможно выбрать базу данных.");
$sql = "SELECT * FROM `users` WHERE login = \"$login\" AND password = \"$password\"";
$result = mysql_query($sql)
or die ("Невозможно выполнить запрос.");
$num = mysql_numrows($result);
if ($num != 0)
{
$cookie_name = "auth";
$cookie_value = "ok";
$cookie_expire = "";
$cookie_domain = "";
setcookie($cookie_name, $cookie_value, 60*60*24, "/" , $cookie_domain, 0);
$display_block = "
<p><strong>Дополнительное меню:</strong></p>
<ul>
<li><a href=\"secretA.php\">Просмотреть список услуг</a>
<li><a href=\"secretc.php\">Новости и события клуба !</a>
</ul>
";
}
else
{
header("Location: http://localhost/autor3.php");
exit;
}
?>
После авторизации получаем куки(который описан выше) и отображаются 2 ссылки, в частности меня интересует <a href=\"secretA.php\">Просмотреть список услуг</a>. Жмем на нее и меня снова выбрасывает на окно авторизации
Привожу код страницы secretA.php
<?
if ($auth =="ok") {
$msg = "<P>Добро пожаловать на скрытую страницу A, для
зарегистрированных пользователей!</p>";
} else {
header( "Location: http://localhost/autor.html");
exit;
}
?>
Я так понимаю что ошибка заключается в том, что по какой-то причине куки не несет в себе информацию из-за чего и срабатывает перенаправление.
Подскажите пожалуйста в чем у меня ошибка, и почему не срабатывает if ($auth =="ok")
inpost
я не вижу исправлений, которые я сказал сделать...

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
BaLTiK
display_errors у меня on
после того как я добавил error_reporting(-1); получил
Notice: Undefined variable: auth in Z:\home\localhost\www\secretA.php on line 3
По сути он мне сказал тоже самое, что я и так знал. У меня не передалась переменная auth.
А вот по какой причине и как это исправить...
DarkLynx
Цитата (BaLTiK @ 12.12.2012 - 17:47)
display_errors у меня on
после того как я добавил error_reporting(-1); получил
Notice: Undefined variable: auth in Z:\home\localhost\www\secretA.php on line 3
По сути он мне сказал тоже самое, что я и так знал. У меня не передалась переменная auth.
А вот по какой причине и как это исправить...

Notice это, скажем так не особо ошибка в том плане котором многие подозревают..
Это предупреждение или ошибка невнимательности программиста.. Не должны переменные появляться из неоткуда..
Исправляй 2-я способами.. В условиях где используешь добавляй
isset($auth)

либо делай так
$auth = isset($auth) ? $auth : null;


Ты пришли код как ты хочешь передавать $auth.. у тебя этого в твоем коде я не нашел.. Может потому что человеку тяжело обрамить тегами
[/php]

Далее.. Нет такой конструкции
[php]$num = mysql_numrows($result);

есть
$num = mysql_num_rows($result);
BaLTiK
Ну идея заключается в том чтобы присваивались куки
{
$cookie_name = "auth";
$cookie_value = "ok";
$cookie_expire = "";
$cookie_domain = "";
setcookie($cookie_name, $cookie_value, 60*60*24, "/" , $cookie_domain, 0);
$display_block = "
<p><strong>Дополнительное меню:</strong></p>
<ul>
<li><a href=
\"secretA.php\">Просмотреть список услуг</a>
<li><a href=
\"secretc.php\">Новости и события клуба !</a>
</ul>
"
;
}

и после перехода на страницу
<a href=\"secretA.php\">Просмотреть список услуг</a>
и шла проверка
<?
if ($auth =="ok") {
$msg = "<P>Добро пожаловать на скрытую страницу A, для
зарегистрированных пользователей!</p>"
;
}
Ну а если в переменной "auth" не хранится значение "оk" то срабатывает пере направление на страницу авторизации.

Но фишка в том что после нажатия на ссылку меня сбрасывает на страницу авторизации. По какой-то причине в куках нету значения "auth = ok"
DarkLynx
Ну начнем с того, что переменной $auth и не будет.. Что бы прочитать значение куки нужно использовать $_COOKIE.. В твоем случае
$auth = isset($_COOKIE['auth']) ? $_COOKIE['auth'] : null;

if ($auth == 'ok')
....
inpost
if ($auth =="ok") {
Где у тебя она создаётся?
$auth = 'инфо'; // создалось!

Может ты имел ввиду POST? Тогда $_POST['auth'], или имел ввиду GET, тогда $_GET['auth'], а может сессия? Тогда $_SESSION['auth'], но никак не $auth. А если куки, то $_COOKIE['auth'];

При этом если переменная не существует, не была создана кука, то будет ошибка!

_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
BaLTiK
Всем огромное спасибо за помощь. Все заработало biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.