我最近将我的网站移到了新服务器上。网站移动后,PHP分页停止工作。这些代码都没有改变。是否需要进行任何配置更改?
以下是代码:
mysql_connect("host", "username", "password") or die(mysql_error());
mysql_select_db("playstat_page") or die(mysql_error());
//This checks to see if there is a page number. If not, it will set it to page 1
if (!(isset($pagenum)))
{
$pagenum = 1;
}
//count the number of results
$data = mysql_query("SELECT * FROM test") or die(mysql_error());
$rows = mysql_num_rows($data);
//number of results displayed per page
$page_rows = 20;
//page number of our last page
$last = ceil($rows/$page_rows);
//makes sure the page number isn't below one, or more than our maximum pages
if ($pagenum < 1)
{
$pagenum = 1;
}
elseif ($pagenum > $last)
{
$pagenum = $last;
}
//sets the range to display in our query
$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
$data_p = mysql_query("SELECT * FROM test ORDER BY ID DESC $max") or die(mysql_error());
while($info = mysql_fetch_array( $data_p ))
{
$posted = date('F j, Y g:i a', strtotime($info["Posted"]));
Print "<p>{$info["Head"]}</p><br></br>";
}
if ($pagenum == 1)
{
}
else
{
$previous = $pagenum-1;
Print "<div id='pagenav'>
<ul style='float: left; margin-left: -25px;'>
<li><a href='{$_SERVER['PHP_SELF']}?pagenum=1'>First</a></li>
<li><a href='{$_SERVER['PHP_SELF']}?pagenum=$previous'>Previous</a></li>
</ul>
</div>";
}
if ($pagenum == $last)
{
}
else
{
$next = $pagenum+1;
Print "<div id='pagenav'>
<ul style='float:right'>
<li><a href='{$_SERVER['PHP_SELF']}?pagenum=$next'>Next</a></li>
<li><a href='{$_SERVER['PHP_SELF']}?pagenum=$last'>Last</a></li>
</ul>
</div>";
}
答案 0 :(得分:2)
很容易。在你的php.ini中必须有它的设置。检查phpinfo()以确保它已启用,请参见屏幕截图。
答案 1 :(得分:2)
新服务器很可能没有启用register_globals
,您似乎从某个变量获取了请求的页面。
替换
if (!(isset($pagenum)))
{
$pagenum = 1;
}
使用
if (!isset($_GET['pagenum']))
{
$pagenum = 1;
}
else
{
$pagenum = intval($_GET['pagenum']);
}
编辑:register_globals
表示通过HTTP请求定义的全局变量(例如,所有$ _GET,$ _ POST,..)会自动extract()
编辑,以便(作为示例):< / p>
$_GET['pagenum']
可以$pagenum
这通常被视为不良做法和错误来源(未提及有关安全性的问题)以启用该设置。