#php #jquery #session
#php #jquery #сеанс
Вопрос:
Как я могу уничтожить сеанс в php, который установлен jquery.
Код для регистрации сеанса:
$('#psubmit').click(function() {
$.post("single-us_portfolio.php", {"myusername": "myusername"});
});
и для доступа к сеансу на custom.php код таков:
session_start();
$_SESSION["myusername"] = $_POST["myusername"];
if(!session_is_registered(myusername)){
echo '<meta http-equiv="Refresh" content="1; url=http://www.ididthisfilm.com/lex_tmp2/the-lexicon/">';
}
Теперь я хочу уничтожить этот сеанс при отправке этой формы:
<form >
<input type="file" class="js-file-validation-image" name="file" id="filed" required="required">
<input type="submit" value="PUBLISH PHOTO" id="hello" name="publishpost" >
</form>
Комментарии:
1. Когда вы хотите уничтожить сеанс? в каком событии?
2. при нажатии кнопки отправки с идентификатором «привет» в последней форме
3. вы можете просто использовать
session_destroy
функцию, когда захотите.
Ответ №1:
Где бы вы ни хотели уничтожить сеанс, включите следующий код
Скажем, это в session_destroy.php файл
<?php
session_start();
session_destroy();//OR use unset if u want to destroy individual session.
clearstatcache();
?>
И дайте ajax-вызов этому файлу при любом событии, которое вы хотите.
Для вызова ajax
jQuery("#psubmit").mousedown(function(){
hasBeenClicked = 1;
//AJAX call
$.ajax({
url: 'session_destroy.php',
type: 'POST',
dataType: "json",
data: {
},
success: function(data){
}
});
////AJAX call
});
Комментарии:
1. Как? вызов ajax для этого файла? пожалуйста
2. Вот как вы вызываете ajax для уничтожения сеанса
Ответ №2:
Сеансы поддерживаются на сервере и не могут быть удалены на клиенте без отправки запроса на сервер. итак, вы должны предоставить другой API для последней формы, чтобы уничтожить серверную часть сеанса, точно так же, как настройка серверной части сеанса.
Ответ №3:
Вам нужно уничтожить сеанс в сообщении jQuery следующим образом:
$('#hello').click(function() {
$.post("destroy.php", function(){
location.reload();
});
});
Затем в destroy.php
sessionstart();
sessiondestroy();
Если вы используете его в форме, вы должны убедиться, что вы запретили отправку формы по умолчанию, если хотите, чтобы она выполняла вызов ajax без перезагрузки.