Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

как работать с сессиями?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> как работать с сессиями?
Имя
Сообщение << Старые топики   Новые топики >>
как работать с сессиями? - 2008-06-29 23:49:51.133333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
вообщем решил повысить защиту своей цмски и вместо куки использовать сессии.. но как ими пользоваться чтото непонял… прочитал в мане но всёравно не смог перестроить совй скрипт под сессии…
можите объяснить или показать на примере как сделать систему авторизации с использованием сессий.. только ещё одно важное но…. желательно это делать без куки… ибо у некоторых моих знакомых они отключены … собственно именно по этому и пришлось прибегнуть к сессиям чтобы обеспечить максимальную совместимость
Post #: 1
RE: как работать с сессиями? - 2008-06-30 03:16:52.436666   
Панда

Сообщений: 232
Оценки: 0
Присоединился: 2008-03-05 07:38:35.890000
тупо вызываеш в самом начале скрипта функцию session_start();
далее у тя есть глобальный массив $_SESSION; просто записываеш в него ченить $_SESSION['auth']=1;

делаеш так echo $_SESSION['auth'];
обновляеш страницу и видиш 1
Post #: 2
RE: как работать с сессиями? - 2008-06-30 09:25:10.400000   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
для работы сессий должен передаваться идентификатор сессии… он может передаваться двумя способами:
1. через куки… это тебе не подходит значит…
2. будет добавлять ко всем ссылкам и формам идентификатор, для этого нужно сделать как Панда сказал…
была у тебя к примеру ссылка <a href ="/index.php">Мой сайт</a> она изменится на <a href ="/index.php?PHPSESSID=идентификатор сессии">Мой сайт</a>
работает это вроде только для относительных ссылок…
а еще должен быть настроен php.ini:
session.use_cookies - если равно 1, то PHP передает идентификатор в куках, если 0 - то нет.
session.use_trans_sid если равно 1, то PHP передает его, добавляя к URL и формам, если 0 - то нет.
Post #: 3
RE: как работать с сессиями? - 2008-06-30 11:36:42.730000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
немного непонял я вроди читал что можно сделать както так, чтоб его автомантически добавляло ко всем ссылкам и при этом в ссылки ничего ненадо дописывать самому .. пхп сам всё делать будет… вот тлько как? 
Post #: 4
RE: как работать с сессиями? - 2008-06-30 12:16:31.480000   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
я же написал, что в php.ini
session.use_trans_sid
если равно 1, то PHP передает идентификатор, добавляя к URL и формам, если 0 - то нет.
Post #: 5
RE: как работать с сессиями? - 2008-06-30 13:10:53.003333   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
а по какому принципу он будет дописывать эти данные? просто я както видли в движках некоторых современных форумов что дописывает в адресную строку ид сессии.. и ещё вопрос можно ли сменить иждентификатор сессии с пхпмемид на какойнить свой? но через инисэт
и ещё.. будет ли дописываться идентификатор сессии если у меня страничка генерируется из шаблонов ? и ещё вопрос будет ли дописываться ид сессии если у меня тэг выглядит примерно так
<a href="index.php?act=ide" ……..
и как сделать чтоб автоматически дописывался в форму инпут такого типа <input tipe="hiden" name="sid" value = "идентификатор_сессии">  и вообще возможно ли это
Post #: 6
RE: как работать с сессиями? - 2008-06-30 13:45:31.203333   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
ты бы уже попробовал на 10 раз как работает, а как нет… по идее, думаю, все должно работать… и заменять можно PHPSESSID на что-то другое, я тоже видел… <input type="hidden" name="sid" value = "идентификатор_сессии"> такое тоже само добавляется… почитай статьи про сессии в php и ниипи мосг

P.S. если ты так пишешь <input tipe="hiden" name="sid" value = "идентификатор_сессии"> то у тебя вообще что-нибудь работать будет? 0_о
Post #: 7
RE: как работать с сессиями? - 2008-06-30 13:57:57.753333   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
блин, вот достаточно заглянуть в php.ini, сразу видно:
session.use_cookies = 1 // Использовать ли куки
session.name = PHPSESSID // Указывается имя
session.use_trans_sid = 0 // Ну для твоей цели нужно включить

еще вот session.use_only_cookies = 1 закомментирована… по умолчанию выключена… вот и должна быть для тебя судя по всему выключена…
вот попробуй сначала, если не получится, то пиши сюда уже…
Post #: 8
RE: как работать с сессиями? - 2008-06-30 16:15:08.600000   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
короче написал вот такой тестовый скриптик.. но у мну ничё не выходит почемуто :(
<?php
@ini_set('display_errors', true);
@ini_set('session.use_cookies', 0);
@ini_set('session.name', sid);
@ini_set('session.use_trans_sid',1);
if (!isset($_REQUEST[session_name()])) {
session_start();
print "<form method=\"post\" action=\"test.php\"><input type=\"text\" name=\"text\"><input type=\"submit\"></form> ";
}
else{ $_SESSION['auth']=$_POST['text'];
$_SESSION['auth'];
print "you enter as $_SESSION['auth'] <br> <form method=\"post\" action=\"test.php\"><input type=\"hiden\" name=\"sid\" value=\"\"><input type=\"submit\"></form>";
}
?>
Post #: 9
RE: как работать с сессиями? - 2008-06-30 16:58:28.680000   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
у меня сначала выдал ошибку только в том, что вот так писать нельзя
"as $_SESSION['auth'] <br>"
заменил на
"as " . $_SESSION['auth'] . " <br>"

замечания:
- не пойму зачем строчка $_SESSION['auth']; одиннадцатая строчка,
- нужно сессию в любов случае инициализировать функией session_start(), а не так как ты это в условии сделал… вставляй session_start() в начало кода, но после ini_set… $_SESSION['auth'] нужно присваивать только, если передается $_POST['text'] можно условие поставить if (isset($_POST['text'])… зачем ты пишешь <input type=\"hiden\" name=\"sid\" value=\"\">??? *WALLBASH* мало того, что ты написал hidden неправильно, так поле с таким именем(идентификатором сессии) не надо создавать… тебе же писали в предыдущих постах… php сам подставляет… $result = 'Удаляем этот input ф топку';

все должно работать после этого… в зависимости от рук конечно…
Post #: 10
RE: как работать с сессиями? - 2008-06-30 17:26:04.316666   
magistr_bender

Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
переделал так
<?php
@ini_set('display_errors', true);
@ini_set('session.use_cookies', 0);
@ini_set('session.name', sid);
@ini_set('session.use_trans_sid',1);
session_start();
if(isset($_POST['text'])) {
$_SESSION['auth']=$_POST['text'];
}
print "you enter as ". $_SESSION['auth'] ."<br>";
print "<form method=\"post\" action=\"test.php\"><input type=\"text\" name=\"text\"><input type=\"submit\"></form> ";
?>
но теперь вопрос почему у меня сессия при обновлении страничку не сохраняется? как это исправить
Post #: 11
RE: как работать с сессиями? - 2008-06-30 17:53:17.060000   
Parano1d

Сообщений: 423
Оценки: 0
Присоединился: 2008-05-21 13:40:17.093333
ппц… ну все у тебя сохраняется… нафига ты переписываешь то $_SESSION['auth'] каждый раз? :)
if(isset($_POST['text'])) { $_SESSION['auth']=$_POST['text']; }
Post #: 12
Страниц:  [1]
Все форумы >> [Веб-программинг] >> как работать с сессиями?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.