cookies в Apache и IIS...

MrCoyot

Guest
cookies в Apache и IIS...

Добрый день всем!
Возникла задача авторизации пользователя - и в зависимости от его прав подключение ему своего меню. Решение которое делалось навскидку - обычный запрос имени и пароля через форму. Данные пользователя хранятся в MySQL. Если все правильно, то из базы считываем необходимые параметры, записываем их в кукис и спокойно дальше работам, извлекая их из кукиса по необходимости.
Проблема оказалась в другом - дома на локальной машине стоит апач - и там все работает. На работе в локалке стоит IIS - там кукис не устанавливается ( по крайней мере из того места где мне нужно).
Приведу маленький код:
1. index.htm

<?
if(@!empty($_REQUEST['check_name'])){
include "init.php";
}
?>
<html><head><title></title></head>
<body>
<?
if( (!isset($error)) and (!@empty($_REQUEST['test'])) )
include "menu.php";
else{
echo @$error;
include "forma.htm";
}
?>
</BODY></HTML>

2. init.php

<?
$link_id=mysql_pconnect("", "root");
mysql_select_db("ebook_of_the_ir",$link_id);

$query="select ID from users
where (login='".$_REQUEST['login']."' and
password='".$_REQUEST['password']."')";
$result=mysql_query($query);

if(mysql_num_rows($result)!=0){
setcookie("test","bla-bla");
header("Location: http://$_SERVER[HTTP_HOST]");
}
else $error="Пользователь не зарегистрирован";
?>

form.php содержит просто стандартную форму с двумя полями и кнопкой запуска... action=index.htm

Если можно посоветуйте что-нибудь....
 

MrCoyot

Guest
Просто в данном конкретном случае нет больших требований к безопасности хотелось сделать как проще. И вроде что может быть проще - записал кукис и пользуйся спокойно ...
 

MrCoyot

Guest
И интересно - почему не хочет устанавливаться кукис. Вроде до него не было никакого вывода в браузер - в противном бы случае и из-за хедера сервер бы ругался... а так все проглатывает...
 

netdog

net @
А что может быть проще Сессий? :) записал сессию и пользуйся спокойно и это более надежно чем хранить данные о пользователе в самих кукисах.

да и достовай инфу из кукисов и из формы человеческими способами

$_POST or $_GET для форм
$_COOKIE для кукисов соответственно ...
 

netdog

net @
>if( (!isset($error)) and (!@empty($_REQUEST['test'])) )

замени $_REQUEST на $_COOKIES может поможет


>И интересно - почему не хочет устанавливаться кукис.
Потому что IIS кривой сервер видимо:)
 

MrCoyot

Guest
С сессиями согласен ...
По поводу человеческих способов - $_REQUEST выполняет все тоже самое ... не из-за этого же программа не срабатывает ...
 

MrCoyot

Guest
возможно он и кривой вот только изменить его не в моих силах :((

$_COOKIES пробовал - не помогает :(
 

MrCoyot

Guest
Кстати в рамках тестирования воткнул setcookie("test", "bla-bla"); самой верхней строчкой еще до вызова проверки 'check_name' в index.htm - тогда он установился ...
 

netdog

net @
у тебя видимо просто в начале был какой-то символ или пробелл ...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Ставь E_ALL при отладке - тогда PHP говорит, если заголовки не могут быть преданы из-за того, что уже был вывод.
 

RomikChef

Guest
Е_ALL тут не поможет. оно тут совсем не при чем.
как и сессии
 

MrCoyot

Guest
RomikChef - может тогда хоть намекнешь в какую сторону копать? Из-за чего-то же оно не работает?
 

MrCoyot

Guest
Переделал все с использованием сессий. Спасибо за помощь всем
 

RomikChef

Guest
не понял твоего первого вопроса. у тебя же все работало?
Вот ты пишешь же - сам нашел проблему:
Кстати в рамках тестирования воткнул setcookie("test", "bla-bla"); самой верхней строчкой еще до вызова проверки 'check_name' в index.htm - тогда он установился ...
Ну, а то, что на сессиях переделал - это совсем неплохо.
Защищеннее, универсальнее.
 

MrCoyot

Guest
Здесь то оно заработало... Но мне то нужно чтобы кукис установился после проверки 'check_name' в зависимости от результатов проверки...

Хотя наверно мне ничего не мешает установить его в самом начале, а потом присвоить нужное значение....

Ну блин я и тормоз!!! Спасибо всем огромное :)
 

RomikChef

Guest
Хотя наверно мне ничего не мешает установить его в самом начале, а потом присвоить нужное значение....
УЖАС.

читаем. [f]na_tanke[/f]
и соображаем, где у нас кука, а где - скрипт.

Больше таких глупостей не пишем.
А читаем пост в котором тебе еще вчера сказали - дело не в проверке, а в том, что рядом с этой проверкой у тебя есть вывод. инклюд какой-нибудь или пробел.
почему вывод - это плохо, читаем в [f]headers[/f]

Твой вопрос давно надо было закрыть, за умышленное нечитание факов.
 
Сверху