2015-11-20 55 views
0

在lobby.phpphp頭沒有工作,可能的錯誤是什麼?

<script> 
function join_game(roomid){ 
    $.ajax({ 
     method: "post", 
     dataType: "json", 
     url: "join.php", 
     data: {room_id: roomid} 

    }); 
} 
<script> 

在join.php

<?php 
session_start(); 
include("connect.php"); 
global $conn; 
$username = $_SESSION['login_user']; 
$id = $_POST["room_id"]; 
$sql = "UPDATE check_exist 
    SET  player_join = '$username' , game_exist_lobby = '0' 
    WHERE ceid = '$id'"; 
mysqli_query($conn, $sql); 
header("location: game.php?last_id=" . $id); 
mysqli_close($conn); 

我不明白爲什麼頭部沒有工作,留在頁面上,但SQL語句正在致力於數據庫和更新數據,我不知道如何調試,類似的代碼是在其他PHP工作,任何人都可以告訴我任何可能的錯誤,使這個問題和任何方式來調試?謝謝

+0

檢查此問題http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php –

+0

你不檢查是否已經設置了$ _SESSION ['login_user']'。您將該值直接傳遞給您的SQL。你不檢查是否設置了'$ _POST [「room_id」]',並且將這個直接傳遞給你的查詢。 SQL注入部署.. – chris85

回答

2

重定向將無法使用ajax。

請試試這個,

在ajax中,添加成功。

success: function(data){ 
    window.open("game.php?last_id="+data); 
} 

在PHP中,

echo $id; 

$id會在數據中的成功,使用和重定向。

終極密碼

$.ajax({ 
    method: "post", 
    dataType: "json", 
    url: "join.php", 
    data: {room_id: roomid}, 
    success: function(data){ 
     window.open("game.php?last_id="+data); 
     // use data from success or use room_id, 
    } 
}); 

如果成功,

使用數據from成功或使用room_id,如果你正在使用room_id,無需echo $id在PHP文件。

+0

它不工作:(... –

+0

控制檯中的任何錯誤?? –

+0

沒有錯誤...我看到日誌實際上已經運行join.php和id成功傳遞給它..是那麼重要提及join.php的狀態碼是302找到的? –

1

嘗試ob_start();ob_flush(); 把你obstart();到你的頁面的頂部

使用JavaScript中使用window.location.href

<?php 
    echo "<script type='text/javascript'>window.location.href = 'page1.php';</script>" 
    exit(); 
?> 

或標題後使用exit()方法重定向

相關問題