我正在尝试使用PHP创建分页,尝试每页显示5条记录。一切正常,但当我点击分页链接转到下一页时,它会显示错误消息。
禁止访问!
您无权访问请求的对象。它是 读取保护或服务器无法读取。
如果您认为这是服务器错误,请与网站管理员联系。
错误403
localhost Apache / 2.4.25(Win32)OpenSSL / 1.0.2j PHP / 5.6.30
这是我的代码。
<?php
define("SPP", 5);
if(isset($_GET['groupname']) && isset($_GET['uniname'])) {
/* VARS */
$xpage = 0;
$content = null;
$totalProfile;
$totalPage = 0;
if(isset($_GET['xpage'])) { $xpage = $_GET['xpage']; }
$start = $xpage*SPP;
$end = $start+SPP;
include("protected/config.php");
include("protected/class.db.php");
include("protected/publicLang.php");
$newSearch = new DB();
$newSearch->query("SELECT username, university,bgroup, (SELECT COUNT(id) FROM donors) AS totalProfile FROM donors WHERE bgroup = :bgroup LIMIT " . $start . ", " . $end . " ");
$newSearch->exec(array(
":bgroup" => $_GET['groupname']
));
$data = $newSearch->fetch();
foreach($data as $row) {
$totalProfile = $row['totalProfile'];
$content .= '
<tr>
<td>' . $row['username'] . '</td>
<td>'.$row['university'].'</td>
<td>' . convertBloodIdPublic($row['bgroup']) . '</td>
<td><button class="btn btn-success">Contact</button></td>
</tr> ';
}
$totalPage = round($totalProfile/SPP); }
?>
<div class="container records">
<table>
<tr>
<th>--</th>
<th>--</th>
<th>--</th>
<th>--</th>
</tr>
<?php echo $content ?>
</table>
<ul class="pagination">
<?php
for($i=1; $i<=$totalPage; $i++) {
echo '<li><a href="<?php echo ' . $_SERVER['REQUEST_URI'] . '"&xpage"' . $i . ' ?>">' . $i . '</a></li>';}
?>
</ul>
答案 0 :(得分:0)
403表示您已获得授权。您可能需要传递一些身份验证信息,这通常是通过POSTING到URL来完成的,而不是像现在通过裸超链接/元素那样获取它。
我认为如果您将代码更改为
<a href="javascript:submit_pagination($i);" >
并将HIDDEN输入元素添加到包含表单并添加一些javascript
function submit_pagination(i){
document.forms[0].xpage.value = i;
document.forms[0].submit();
}
我认为它可能会奏效。希望它有所帮助!