Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Опять про сессии :), Помогите решить проблему... 
:(
    Опции темы
Kiber_rat
  Дата 23.2.2003, 08:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MACMANIAC
**


Профиль
Группа: Участник
Сообщений: 276
Регистрация: 18.4.2002
Где: Ashdod, Israel

Репутация: 1
Всего: 9



Есть такой скрипт:
Код
<?php
unset($logged_user); //Убиваем переменную которую могли передать в адресной строке...
session_start();
session_register($logged_user); //Восстанавливаем переменную сессии...
if(!isset($logged_user)){
header("Location:index.html"); //Если юзер не зашёл нормально выкидываем назад...
exit;
}
?>

Дальше идёт код, но проблема в том, что этот код формирует разный HTML в зависимости от того с какими параметрами
загружена страничка...
Что-то типа такого:
Код
<html>
<head></head>
<body>
if($submit)(
echo "Одна фигня";
<a href"<? printf("%s?%s", $PHP_SELF, "Submit"); ?>">Submit</a>
}
elseif($delete){
echo "Вторая фигня";
<a href"<? printf("%s?%s", $PHP_SELF, "Delete"); ?>">Delete</a>
}
</body>
</html>

Если я перегружаю второй раз эту страничку то похоже что unset я делаю уже для переменной хранящейся в сессии, а если не делать unset то легко делается несанкционированный доступ (http://my.site.net/sample.php?logged_user=hacker) smile.gif
Как с этим бороться можно?



--------------------
Best regards!                                                             
@..@_____Ku6ep
=*=______\______KPbIC
Код
print join "",map{chr}(split/(\w{2})/,hex(int(2175.57302796298**2)))
PM WWW ICQ Skype Jabber YIM   Вверх
dvl
Дата 23.2.2003, 19:03 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











> session_register($logged_user);

Читать мануал внимательнее - функции передается не переменная а имя переменной
session_register('logged_user');
  Вверх
Guest
  Дата 23.2.2003, 20:35 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Чудно, просто огромное спасибо smile.gif
Но, то что ты сказал неверно smile.gif
В таком виде
Код
session_register($logged_user);

Я не запоминаю переменную в сессии а восстанавливаю
Поэтому вопрос остаётся в силе...
  Вверх
dvl
Дата 24.2.2003, 20:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Читай мануал - абсолютно пофигу создаешь переменную сессии или востанавливаешь, ты делаешь это неправильно

Цитата

session_register() accepts a variable number of arguments, any of which can be either a string holding the name of a variable or an array consisting of variable names or other arrays. For each name,


Это равносильно $_SESSION['var_name'] = $var_value;
  Вверх
Kiber_rat
Дата 25.2.2003, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MACMANIAC
**


Профиль
Группа: Участник
Сообщений: 276
Регистрация: 18.4.2002
Где: Ashdod, Israel

Репутация: 1
Всего: 9



Не помогает... Так как ты пишешь оно вобще не работает. И вместо ответа "читай мануал" мог бы предложить как обойти проблему, я по моему нормально описал в чём загвоздка... А RTFM сказать - много ума не надо.
И к тому же, в том варианте в котором у меня написано, если скрипт грузится один раз всё нормально работает, т.е. отсекаются попытки передать переменную в адресной строке а по этой команде
Цитата
session_register($logged_user); //Восстанавливаем переменную сессии...
переменная восстанавливается. Так что не в мануале дело.



--------------------
Best regards!                                                             
@..@_____Ku6ep
=*=______\______KPbIC
Код
print join "",map{chr}(split/(\w{2})/,hex(int(2175.57302796298**2)))
PM WWW ICQ Skype Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1180 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.