【问题标题】:Pagination issue after moving to new server [closed]移动到新服务器后的分页问题[关闭]
【发布时间】:2014-02-28 23:27:42
【问题描述】:

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

【问题讨论】:

  • 如果分页在您的代码中,我们将无法告诉您任何信息,因为当您从一个 php 版本更改为另一个
  • 添加代码,你得到什么警告?
  • 您是否使用 PHP 进行分页,您是否依赖 htaccess?需要更多信息。目前,您是在告诉我们这辆车坏了,但不要告诉我们是什么坏了。
  • 这是一个不可能回答的问题。
  • 还有什么不工作的地方吗?

标签: php pagination


【解决方案1】:

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

【讨论】:

  • +1 太棒了! :D
【解决方案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()ed 如此(例如):

$_GET['pagenum'] 可作为$pagenum 访问

打开该设置通常被认为是一种不好的做法和错误来源(更不用说安全方面的问题了)。

【讨论】:

  • 这修复了它。谢谢你。对此,我真的非常感激。这让我发疯了!
猜你喜欢
  • 2013-06-18
  • 2011-07-29
  • 1970-01-01
  • 2020-02-08
  • 2013-04-25
  • 2021-06-19
  • 2018-09-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多