webpage — пробовал все, чтобы выйти из системы с моей страницы PHP, но это не работает, корзина покупок все еще заполнена

Я в отчаянии. Пробовал все, чтобы выйти из системы с моей страницы PHP, но она не работает, корзина покупок все еще заполнена, а имя пользователя все еще там. Моя веб-страница посвящена онлайн-покупкам. Логин работает нормально, и я создал файл выхода со следующим кодом

session_start();
session_destroy();
header('Location: login.php');
exit;

Мой код входа:

// get Members table
require './Model/Members.php';
$memberTable = new Members();


if (isset($_POST['data'])) {
// take security precautions: filter all incoming data!
$email      = (isset($_POST['data']['email']))      ? strip_tags($_POST['data']['email'])       : '';
$password   = (isset($_POST['data']['password']))   ? strip_tags($_POST['data']['password'])    : '';
if ($email && $password) {
$result = $memberTable->loginByName($email, $password);
if ($result) {
// store user info in session
$_SESSION['membro'] = $result;
$_SESSION['login'] = TRUE;


}


else {
$_SESSION['login'] = FALSE;

}
// redirect back home
header('Location: ?page=paginaprincipal');
exit;
}
}

мой HTML со страницы входа в систему:

<div class="content">
<br/>
<div class="product-list">

<h2>Login</h2>
<br/>

<b>Por favor, entre a sua informacao.</b><br/><br/>
<form action="?page=login" method="POST">
<p>
<label>Email: </label>
<input type="text" name="data[email]" />
<p>
<p>
<label>Password: </label>
<input type="password" name="data[password]" />
<p>
<p>
<input type="reset" name="data[clear]" value="Clear" class="button"/>
<input type="submit" name="data[submit]" value="Submit" class="button marL10"/>
<p>
</form>
</div><!-- product-list -->
</div>

Пожалуйста, помогите мне определить, что я делаю не так. Я пробовал много разных вещей отсюда, но ни одна из них не работает, и мне нужно, чтобы эта работа была выполнена как можно скорее, поэтому мое разочарование 🙁

1

Решение

Есть ли вероятность, что что-то было сохранено в куки? Если так, попытайтесь прояснить их также.

Как очистить их всех:
как удалить все куки моего сайта в php

Небольшое руководство: http://www.pontikis.net/blog/create-cookies-php-javascript

0

Другие решения

Для страницы выхода из системы это должно быть сделано.

session_start();

unset( $_SESSION['membro'] );
unset( $_SESSION['login'] );

/* cookies should be deleted when the session is destroyed anyway */
setcookie( session_id(), "", time() - 3600 );
session_unset();
session_destroy();

session_write_close();

session_start();
session_regenerate_id( true );
exit( header('Location: login.php') );

В ответ на ваши комментарии о том, что он все еще не работает, я переписал часть вашего кода следующим образом и протестировал с использованием кода выше (хотя я эмулировал $memberTable->loginByName с некоторыми статическими значениями, и это сработало. Каждый раз сеанс полностью разрушался, а новый создавался заново, поэтому я не уверен, что проблема заключается в сценарии выхода из системы. Если это не поможет, возможно, стоит cache-control заголовки устанавливаются

<?php

require './Model/Members.php';
$memberTable = new Members();


if( isset( $_POST['data'] ) ) {

$data=$_POST['data'];

$email=isset( $data['email'] ) && !empty( $data['email'] ) ? trim( strip_tags( filter_var( $data['email'], FILTER_SANITIZE_EMAIL ) ) ) : false;
$password=isset( $data['password'] ) && !empty( $data['password'] ) ? trim( strip_tags( filter_var( $data['password'], FILTER_SANITIZE_STRING ) ) ) : false;

if ( $email && $password ) {
$result = $memberTable->loginByName( $email, $password );

if ( $result ) {
$_SESSION['membro'] = $result;
$_SESSION['login'] = TRUE;
}  else {
$_SESSION['login'] = FALSE;
}
exit( header('location: ?page=paginaprincipal') );
}
}
?>
0

По вопросам рекламы [email protected]