print_r导致页面刷新?

时间:2015-07-20 20:19:55

标签: php

这是非常离奇的,我花了很长时间试图找出为什么我测试的页面在他们不应该的时候保持清爽。我最终将其缩小到当我删除print_r($ _ SESSION [' boosters'])代码时它退出刷新。当print_r在那里时它会刷新。您可以在http://prayerpond.com/posttest2.php自己测试一下(只需手动刷新页面并查看计数器)。

查看页面开头显示的计数器。如果它跳过一个数字,那么一旦它到达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>

这让我开心!任何人都知道究竟是什么造成了这种情况?

1 个答案:

答案 0 :(得分:1)

尝试做:

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

true提供print_r()秒参数使其返回格式化字符串,而不是直接输出。然后htmlentities()会对结果中的任何HTML语法进行编码 - 可能会有一些HTML或Javascript导致刷新。我还将其放在<pre>内,以便保留格式。