[英]Session Destroyed on page refresh
我有php文件,在第一次加載時工作正常,但刷新頁面后會話被破壞了。 在刷新php頁面上,我得到警告:session_regenerate_id():會話對象銷毀失敗
<?php
/** functions.php **/
function startSession() {
$session_name = 'sec_session_id'; // Set a custom session name
session_name($session_name);
session_start(); // Start the PHP session
session_regenerate_id(true); // regenerated the session
}
?>
<!-- controller.js -->
function LoadFriend() {
var listFriend = $('#list_member_friend');
var UrlToPass = 'action=load';
listFriend.html('loading..');
$.ajax({
url : 'ajax.php',
type : 'POST',
data : UrlToPass,
success: function(responseText) {
listFriend.html(responseText);
}
});
}
loadFriend();
<!-- end controller.js -->
<?php
/** ajax.php **/
$action = $_GET['action']
switch($action) {
case "load":
/** PRINT LIST FRIEND **/
...
}
?>
<?php
/** index.php **/
include('functions.php');
startSession();
$userid = 'HENRY';
if(!isset($_SESSION['user_id'])) {
$_SESSION['user_id'] = $userid;
}
?>
<html>
<head>
<title>Load List</title>
<script src="controller.js" type="text/javascript"/>
</head>
<body>
<div id="list_container">
<div id="list_member_friend" class="list_member_friend">
<!-- this is where it generates session error -->
<!-- load list of members friend with ajax script controller.js from member.php -->
</div>
</div>
</body>
</html>
在member.php我也開始會議
<?php
/** member.php **/
include('functions.php');
startSession()
$db = new MySQLi('localhost','root','abcdefg','social');
$query = "SELECT fid, fname, fage, fgender FROM memberFriends";
$query .= " WHERE memberid = '" . $_SESSION['user_id'] . "'"; <!-- this is the problem -->
$db->prepareQuery($query);
$db->execute();
..... (Load List);
?>
問題:
為什么刷新頁面后沒有在member.php中傳遞會話值?
將Session值傳遞到member.php的最佳方法是什么?
<?php
session_start();
$userid = 'HENRY';
if(!isset($_SESSION['user_id'])) {
$_SESSION['user_id'] = $userid;
}
?>
您的代碼中有錯誤在第三行中,您使用了帶有isset的方括號[],而不是圓括號()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.