Аутентификация на PHP

Obick

Новичок
Аутентификация на PHP

Знаю, что написано уже куча всего по поводу регистрации пользователей на сайте...
Извините, если повторюсь с вопросом...
Сделала через сессии - не работает...:(
Почему могут не работать сессии?
Создала простенький файлы, запустила на внутреннем сервере - не работает (не передаются параметры от одного скрипта к другому ).
PHP:
 <?php
  session_start();

  echo 'The content of $HTTP_SESSION_VARS[\'sess_var\'] is '
        .$HTTP_SESSION_VARS['sess_var'].'<br />';

  unset($HTTP_SESSION_VARS['sess_var']);
?>
<a href="page3.php">Next page</a>
Скопировала на другой (внешний) сервак - работает...
Распечатала phpinfo() у того и другого... только вот не знаю куда смотреть что бы понять что не так настроено...:confused:
Может ли быть дело в версии? - на внутреннем 4.0.6, на внешнем 4.3.2
Или лучше бросить все это и использовать куки?
 

Demiurg

Guest
1. обновить версии на обоих серверах
2. не использовать $HTTP_SESSION_VARS
 

Obick

Новичок
1. обновить версии на обоих серверах
хорошо:) встречный вопрос - решила обновить версию (на том, где 4.0.6) - не могу найти дистрибутив в формате rpm.
Если обновлю версию будет ли работать?:)

-~{}~ 11.05.04 12:12:

2. не использовать $HTTP_SESSION_VARS
использовать $_SERVER?
 

Demiurg

Guest
>использовать $_SERVER?
почитай, все таки ссылку, которую тебе дали.
 

Obick

Новичок
почитай, все таки ссылку, которую тебе дали.
спасибо, читаю...
очень полезная вещь... посмотрю на ошибки...

-~{}~ 12.05.04 14:02:

Если я задаю глупые вопросы - извините... - просто изучаю PHP совсем недавно...:(
У меня вылезла ошибка
Warning: Cannot add header information - headers already sent by (output started at /var/www/html/Intranet_copy/index.phtml:17) in /var/www/html/Intranet_copy/index.phtml on line 41
что мне с этим делать? заранее спасибо за ответ!
 

Demiurg

Guest
sesion_start должен быть до любого вывода, а у тебя он после.
 

Obick

Новичок
Demiurg, спасибо, но дело в том, что sesion_start стоит в самой первой строке index.phtml
 

Obick

Новичок
на этой строчке
SetCookie("Ipers",$Ipers,0x7FFFFFFF);
- дело в том, что я правлю чужую прогу, до конца не понимая как взаимодействуют куки и сессии.
Куки исправно работают, я же хотела попробовать сессии...
 

Фанат

oncle terrible
Команда форума
Куки исправно работают
утверждение ошибочно
вместо исправной работы куки выдают
Warning: Cannot add header information - headers already sent by
эта строчка- SetCookie("Ipers",$Ipers,0x7FFFFFFF); - так и была раньше?
а ошибка когда появилась?
 

Obick

Новичок
утверждение ошибочно
вместо исправной работы куки выдают
спасибо! все понятно... print для проверки поставила раньше определения куки...

-~{}~ 12.05.04 15:54:
Оказалось, что проблема вот в чем:
Параметры сессии не передаются в программу, вызов которой написан как

include("http://".$HOST."/info.php?Imain=".$Imain."&Isub=".$Isub."&Ipod=".$Ipod."&Id_Pers=".$Id_Pers."&PERS=".$PERS."&TEXTtoFIND=".$TEXTtoFIND);

если убрать http://".$HOST."/ , то выдает ошибку:

Warning: Failed opening 'info.php?Imain=9&Isub=7&Ipod=14&Id_Pers=97&PERS=97&TEXTtoFIND=' for inclusion (include_path='.:/php/includes:/usr/share/php') in /var/www/html/Intranet_copy/index.phtml on line 372

В чем может быть дело?
 

Фанат

oncle terrible
Команда форума
команда include должна использоваться ТОЛЬКО для включения в скрипт куска пхп кода, содержащегося в другом ФАЙЛЕ.
и ВСЕГДА может быть заменена на прямое это самое включение.
поэтому ни вызов через http, ни передача параметров неправомерны.

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

этот вызов - о старого кода или твое творение?
если первое, то очень плохо - человек, не понимал, что делает

-~{}~ 12.05.04 16:08:

так же и сессию использовать для того же самого кода - бессмысленно.
 

Obick

Новичок
хочу объяснить
Дело в том, что прога info работает так: следущее - заходит человек, он определяет его ip, по ip из базы тянет Id_Pers - его идентификатор в базе (так как ip может быть несколько, а ФИО - только одно ). Id_Pers хранится в куке Ipers.
info.php вызывается при заходе в раздел Информация. Если Id_Pers не определен, то выдает информацию о посетителе по куке Ipers, программа вызывается просто
include("info.php");
, если же Id_Pers определен, то выдает информацию о том человеке, на котором кликнули (переход по ссылке
index.phtml?Imain=1&Isub=7&Ipod=14&Id_Pers=1747)

-~{}~ 12.05.04 16:24:

Diesel
Проще, я думаю...
только вот
1. - как всегда работу нужно было сделать завтра, точнее 17.05
(вообще есть желание переписать движок, только вот когда)
2. - кто б меня еще научил как это правильно сделать...

-~{}~ 12.05.04 16:26:

так же и сессию использовать для того же самого кода - бессмысленно.
Что же делать?
 

Фанат

oncle terrible
Команда форума
Obick
два ввопроса.
1. все, что ты написала - это твой код, или то, что тебе досталось?

2. Ты поняла, что вызывать инклюд с длинной бородой не нужно?
Что если в файйле определена переменная, то она автоматом доступна коду, который включается инклюдом?
 

Obick

Новичок
1. все, что ты написала - это твой код, или то, что тебе досталось?
движок достался... остальное дорабатывала... пока не встала такая проблема все неплохо работало...:(
Ты поняла, что вызывать инклюд с длинной бородой не нужно?
я поняла... теперь вот думаю что с этим делать...
просто сложно я училась php на этих самых программах.
 

_RVK_

Новичок
Страшно не эффективным представляется вариант с IP. 80% юзеров (моя оценка) сидит на диалап. Мало того что при следущем посещении ты его не узнаешь, так еще и назвать чужим именем можешь. Лучше отсавить куку с уникальным ID, а сессию хранить не стандартным способом а в БД.
 
Сверху