迁移到新服务器后的分页问题

时间:2014-02-28 15:05:57

标签: php pagination

我最近将我的网站移到了新服务器上。网站移动后,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>";
            } 

2 个答案:

答案 0 :(得分:2)

很容易。在你的php.ini中必须有它的设置。检查phpinfo()以确保它已启用,请参见屏幕截图。

enter image description here

答案 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

访问

这通常被视为不良做法和错误来源(未提及有关安全性的问题)以启用该设置。