图书馆图书预约系统:ISBN点击跳转后无法显示的解决方法
修复图书预约系统中ISBN跳转后不显示的问题
看起来你遇到的问题出在参数传递方式不匹配和参数名书写错误这两个地方,我来一步步帮你修复:
问题1:链接中的参数名写错了
你原来的链接代码里,参数名写成了[$bisb],这是无效的参数名,后端根本识别不到。正确的参数名应该和你后端要获取的变量名保持一致,也就是bisb。
修改列表页的链接代码:
<td><?php echo('<a href="bookres.php?bisb='.$row['isbn'].'">'.$row['isbn'].'</a>');?></td>
问题2:请求方式不匹配
通过<a>标签跳转页面时,浏览器会发送GET请求,参数会直接附在URL后面;但你后端代码里用了$_POST['bisb']来获取参数——$_POST只能获取POST请求(比如表单提交)的参数,自然取不到GET传递的值。
修改bookres.php的参数获取逻辑:
<?php $servername = "localhost"; $username = "root"; $password = ""; $db = "vidunena"; if (mysqli_connect_error()) { printf("Connect failed: %s ", mysqli_connect_error()); exit(); } $bisb = ""; // 改用$_GET获取URL中的参数 if(isset($_GET['bisb'])) { // 建议加上htmlspecialchars防止XSS攻击 $bisb = htmlspecialchars($_GET["bisb"]); } echo $bisb; ?>
额外的安全提示
为了避免潜在的安全问题(比如SQL注入或XSS攻击),后续如果用这个ISBN查询数据库,一定要使用预处理语句,不要直接把参数拼进SQL里;另外输出用户可控的内容时,用htmlspecialchars()转义是个好习惯。
内容的提问来源于stack exchange,提问作者Akila Ranasinghe
相关产品推荐
相关产品推荐

