我有一个 php 文件,它在第一次加载时工作正常,但刷新页面后 session 被破坏。在刷新 php 页面时,我收到警告:session_regenerate_id(): session 对象销毁失败
<?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中 我也开始 session
<?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);
?>
问题:
为什么刷新页面后session值没有传入member.php?
将 session 值传递到的最佳方法是什么 成员(member).php?
最佳答案
关于php - 页面刷新时 session 被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30723452/