как работать с сессиями?
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
как работать с сессиями? - 2008-06-29 23:49:51.133333
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
вообщем решил повысить защиту своей цмски и вместо куки использовать сессии.. но как ими пользоваться чтото непонял… прочитал в мане но всёравно не смог перестроить совй скрипт под сессии… можите объяснить или показать на примере как сделать систему авторизации с использованием сессий.. только ещё одно важное но…. желательно это делать без куки… ибо у некоторых моих знакомых они отключены … собственно именно по этому и пришлось прибегнуть к сессиям чтобы обеспечить максимальную совместимость
|
|
|
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
|
|
|
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 - то нет.
|
|
|
RE: как работать с сессиями? - 2008-06-30 11:36:42.730000
|
|
|
magistr_bender
Сообщений: 977
Оценки: 0
Присоединился: 2008-02-22 20:10:21.133333
|
немного непонял я вроди читал что можно сделать както так, чтоб его автомантически добавляло ко всем ссылкам и при этом в ссылки ничего ненадо дописывать самому .. пхп сам всё делать будет… вот тлько как?
|
|
|
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 - то нет.
|
|
|
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 = "идентификатор_сессии"> и вообще возможно ли это
|
|
|
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_о
|
|
|
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 закомментирована… по умолчанию выключена… вот и должна быть для тебя судя по всему выключена… вот попробуй сначала, если не получится, то пиши сюда уже…
|
|
|
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>"; } ?>
|
|
|
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 ф топку'; все должно работать после этого… в зависимости от рук конечно…
|
|
|
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> "; ?> но теперь вопрос почему у меня сессия при обновлении страничку не сохраняется? как это исправить
|
|
|
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'];
}
|
|
|
|
|