這裏就是我想要做:PHP會話變量沒有得到增加
function increment_users($id){
$rooms = $_SESSION['rooms_array'];
//var_dump($rooms);
foreach ($rooms as $room) {
if($room['id'] == $id){$room['users']=$room['users']+1;}
}
session_write_close();
}
間的用戶不被遞增。我檢查過服務器的會話設置。? 已經感謝。
這裏是整個代碼,請大家幫忙:
ini_set(' session.save_path','C:/session');
session_start();
$requested_room_id = $_REQUEST['new_room_id'];
//echo $requested_room_id;
function create_new_room($id, $current_users) {
$room = array();
$room ['id'] = $id;
$room ['users'] = $current_users;
$_SESSION['rooms_array'][]=$room;
}
function increment_users($id){
$rooms = $_SESSION['rooms_array'];
//var_dump($rooms);
foreach ($rooms as $room) {
if($room['id'] == $id){$room['users']=$room['users']+1;}
}
$_SESSION['rooms_array'] = $rooms;
}
$rooms = $_SESSION['rooms_array'];
$room_available = false;
$room_available_ids = array();
var_dump($rooms);
if ($rooms) { //check if there is a room with space
foreach ($rooms as $room =>$val) {
//echo $val['users'];
if ($val ['users'] < 4) {
$room_available = true;
$room_available_ids [] = $val ['id'];
}
}
}
if ($room_available) { //if there is a room available, add requesting client to the room
$room_available_id = array_pop ($room_available_ids);
increment_users($room_available_id);
echo $room_available_id;
}
else { //create a new room otherwise
$rand11=rand(1000000, 99999999);
if(!$room_available) {$new_room = create_new_room($rand11, 1);}
echo $rand11;
}
的代碼是罰款累計。對我來說,我只是無法找到問題所在。下面是該陣列由在的var_dump代碼傾倒:
array(1) {
[0]=>
array(2) {
["id"]=>
int(63594055)
["users"]=>
int(1)
}
}
仍然無法工作 –
兩者都不工作.. ?? – Gautam3164
否,第一個結果在一個錯誤的數組:'陣列(3){ [0] => 陣列(2){ [ 「ID」] => INT(98909332) [ 「用戶」] => INT(1) } [1] => INT(2) [ 「」] => INT(1) }',第二個完全不遞增值! –