2015-07-20 108 views
0

這是很奇怪的,我花了很長一段時間試圖弄清楚爲什麼我的測試頁面刷新保持時,他們不應該。我最終縮小到了當我刪除print_r($ _ SESSION ['boosters'])代碼時,它不再刷新。當print_r在那裏時刷新。你可以自己在http://prayerpond.com/posttest2.php進行測試(只需手動刷新頁面並查看計數器)。print_r導致頁面刷新?

看看在頁的開頭顯示的計數器。如果它跳過一個數字,那麼一旦它到達print_r,就會刷新頁面。

下面是在頁面的開始計數器的代碼:

$_SESSION['counter']++; 
echo $_SESSION['counter']; 

這裏的代碼的其餘部分(我刪除了一切,這是不必要的重建問題):

<?php 
require_once($_SERVER['DOCUMENT_ROOT'] . "/start.php"); 


// PRE-HEADER PROCESSING 

unset($_SESSION['boosters']); 

$_SESSION['counter']++; 
echo $_SESSION['counter']; 

$sql = "SELECT prayers_views_likes.*, prayers.postid, prayers.privacy, prayers.username 
     FROM prayers_views_likes 
     LEFT JOIN prayers ON prayers_views_likes.postid = prayers.postid 
     WHERE prayers_views_likes.type = 'answer' 
     and prayers.privacy != 'hidden' 
     and prayers.username != 'hoodleehoo' 
     and prayers_views_likes.adj_ratio > 0 
     ORDER BY prayers_views_likes.adj_ratio DESC, prayers_views_likes.views DESC 
     "; 
$_SESSION['boosters'] = send_query($sql); 


print_r ($_SESSION['boosters']); //DELETE 



// END PRE-HEADER PROCESSING 

?> 
<!doctype html> 

<html lang="en" xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://ogp.me/ns/fb#"> 

<head> 
<meta name="viewport" content="width=device-width, initial-scale=1"> 
<meta charset="utf-8"> 

</head> 
<body> 
</body> 
</html> 

這讓我堅強!任何人都知道這究竟是什麼造成的?

+0

如何進行'''send_query'''功能是什麼樣子? – Avalanche

+0

它只是連接併發送與mysqli查詢。沒有什麼奇怪的。我用它所有的時間。 – thinkofacard

+0

功能send_query($ SQL){$ = temprows陣列(); global $ conn; connect(); $ result = $ conn-> query($ sql); 而($行= $ result-> FETCH_ASSOC()){$ temprows [] = $行; } mysqli_free_result($ result); $ conn-> close(); return $ temprows; } – thinkofacard

回答

1

嘗試做:

echo '<pre>' . htmlentities(print_r($_SESSION['boosters'], true)) . '</pre>'; 

給人一種true第二個參數print_r()使其返回格式的字符串,而不是直接將其輸出。然後htmlentities()將在結果中編碼任何HTML語法 - 可能有一些HTML或Javascript導致刷新。我也把它放在<pre>之內,這樣格式將被保留。

+0

我試着用你的建議替換print_r,它似乎沒有影響到問題。 – thinkofacard