Удалить временную сессию в PHP - PullRequest
1 голос
/ 10 января 2020

Как я могу уничтожить сеанс в моей таблице базы данных. PHP кодировка будет отображаться ниже:

<?php
session_start(); 
$session_id = session_id(); 
error_reporting(0);
include("db.php");
include("header.php"); 

if(isset($_POST['submit']))
{
    $session_id=$session_id;
    $actual_price=$_POST['actual_price'];
    $gst=$_POST['gst'];
    $granttotal=$_POST['granttotal'];  
    $product_id=$_POST['product_id']; 
    $quantity=$_POST['quantity']; 
    /*$product_name=$_POST['product_name']; 
    $product_price=$_POST['product_price']; */

    foreach($product_id as $key => $pro){
    $qty = filter_var($quantity, FILTER_SANITIZE_NUMBER_INT);
    $pro = filter_var($pro, FILTER_SANITIZE_STRING); 
    /*$proname = filter_var($product_name, FILTER_SANITIZE_STRING); 
    $proprice = filter_var($product_price, FILTER_SANITIZE_NUMBER_INT);*/
    $sql=mysql_query("INSERT INTO `checkout`(`session_id`,`actual_price`,`gst`,`granttotal`,`product_id`,`quantity`,`joinon`)VALUES ('$session_id','$actual_price','$gst','$granttotal','$pro','$qty','".date('Y-m-d')."')") or die(mysql_error()); 

    mysql_query("delete from cart where sessionid='$session_id'"); 
    echo ("<script>location.href='billing_info.php'</script>");

    }
} 

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

Ответы [ 4 ]

0 голосов
/ 10 января 2020

После успешной операции удаления выполните следующие действия:

  1. // Сброс всех переменных сеанса. $ _SESSION = array ();

  2. // Наконец, уничтожить сеанс. session_destroy ();

Если это не работает, дайте мне знать вашу PHP версию

0 голосов
/ 10 января 2020

Похоже, вы не работаете с сеансом должным образом.

Сначала сохраните переменные в сеансе, например:

$product_id=$_SESSION['product_id']; 
$quantity=$_SESSION['quantity']; 

Если вы хотите удалить сеанс, используйте функцию уничтожения сеанса,

session_destroy();

и сбросьте переменные из сеанса следующим образом:

unset($product_id);
unset($quantity);
0 голосов
/ 10 января 2020

это потому, что вы используете php переменных session_id (), которые изменяют свое значение в сеансе очистки из браузера или открываете страницу в другом сеансе. если вы удаляете его и вставляете его снова с закрытием браузера, это не изменит его значение.

Вместо этого вы можете использовать этот session_regenerate_id (), который восстанавливает его значение при повторном создании. Вот руководство введите описание ссылки здесь

0 голосов
/ 10 января 2020

Если я правильно понял, вы хотите уничтожить текущий сеанс, чтобы можно было повторно инициализировать корзину в соответствии с идентификатором сеанса.

Для уничтожения сеанса в php вы можете использовать следующую функцию после Вы успешно выполняете запрос на удаление.

session_destroy();

Для получения дополнительной информации о том, как удалить session_destroy () , вы можете найти здесь официальную документацию php, относящуюся к нему.

Использование этой функции уничтожит все переменные сеанса, т.е. он сбросит все переменные сеанса, которые хранятся в глобальной переменной $ _SESSION.

Но если вы хотите удалить только указанную переменную сеанса c, вы можете использовать следующий код:

unset($_SESSOIN['variable_name'])

Для получения дополнительной информации о том, как сбросить переменную сеанса

Редактировать: если вы хотите восстановить идентификатор сеанса, тогда используйте функцию session_regenerate_id () ,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...