Yahoo! Posted January 6, 2011 Report Share Posted January 6, 2011 ...if (isset($_POST['name'])){$name = $_POST['name'];}if(isset($_SESSION['name'])) {$savename = $_SESSION['name'];}...<input name="name" type="text" class="text" value="<?php echo $savename; ?>" /><input type="hidden" name="PHPSESID" value="<?php echo $_POST['name']; ?>" />Всё вроде работает нормально.Схема такая:пользователь ввёл имя, оно записалось в сессии и БД, затем при перезагрузке страницы ему уже не надо снова его вводить.Но если, он зачет сменить имя(повтор начала схемы), то при перезагрузке будет вписано самое первое имя, которое он ввёл. Как это можно исправить? Quote Link to comment Share on other sites More sharing options...
0 Vlad Posted January 6, 2011 Report Share Posted January 6, 2011 Каким образом пользователь будет имя менять? Если нажатием на кнопку "Выход", то сессии обнулять. Quote Link to comment Share on other sites More sharing options...
0 Yahoo! Posted January 6, 2011 Author Report Share Posted January 6, 2011 Кнопок не "Вход" не "Выход" нет. Пользователь не зарегистрирован. Есть текстовая форма. Пользователь пришёл вбил в неё имя (при этом не зарегистрировался) - сохранилось, набрал тект, нажал отправить - всё, сообщение доставлено. На следующий день приходит имя уже в форме написано (не надо заботиться его снова печатать), а ему надо под другим допустим, хорошо меняет имя и отправляет (и тут вдруг переписка разгорается). В-третий раз надо отправить, а в поле "Имя" напечатано имя, которое он вчера оставил. Надеюсь понятно исковеркал ход мыслей))) Quote Link to comment Share on other sites More sharing options...
0 Vlad Posted January 6, 2011 Report Share Posted January 6, 2011 Идея понятна. Но вот воплотить ее как не понятно, потому как душа пользователя потемки. Кто-то захочет пользоваться одним именем, другой десятью. Если честно, не стал бы что-либо менять, имеющийся вариант многих устроит. Но при желании можно в сессии сохранять все введенные имена и выводить их списком при заполнении текстовой формы. Quote Link to comment Share on other sites More sharing options...
0 Veseloff Posted January 6, 2011 Report Share Posted January 6, 2011 1. Сессия за день может и прекратиться. Следует использовать куки.2. Нигде не видно, откуда берётся $_SESSION['name'] — по умолчанию переменная не определена, следовательно «if(isset($_SESSION['name']))» никогда не будет выполняться. Или тут просто не весь код. Quote Link to comment Share on other sites More sharing options...
0 Yahoo! Posted January 7, 2011 Author Report Share Posted January 7, 2011 Нигде не видно, откуда берётся $_SESSION['name']Не понял. Из формы же=) Quote Link to comment Share on other sites More sharing options...
0 montero Posted January 8, 2011 Report Share Posted January 8, 2011 Не понял. Из формы же=)Переменная должна быть зарегистрирована в сессии.Для PHP 5.2.x: session_start();$name = $_POST['name'];session_register('name');Для PHP 5.3.x:$name = $_POST['name'];$_SESSION['name'] = $name; Quote Link to comment Share on other sites More sharing options...
0 Int Posted January 8, 2011 Report Share Posted January 8, 2011 Этот код у него просто пропущен, я так думаю. Quote Link to comment Share on other sites More sharing options...
Question
Yahoo!
Всё вроде работает нормально.
Схема такая:
пользователь ввёл имя, оно записалось в сессии и БД, затем при перезагрузке страницы ему уже не надо снова его вводить.
Но если, он зачет сменить имя(повтор начала схемы), то при перезагрузке будет вписано самое первое имя, которое он ввёл. Как это можно исправить?
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.