我正在做一个小CMS。我目前正在编辑页面。它工作正常,但只有当页面的“id”小于10(只有1个数字)
时这是发送到edit_page的链接,其表格预先填充了适当的内容:
<a href="edit_page.php?nav_id_trough_link=<?php echo urlencode($selected_nav['id']); ?>">Edit this page</a> </p>
(抱歉nav_id_trough_link这个笨拙的名字,就是我正在学习的)
当我刚访问该页面时,在地址栏中有以下内容:
http://localhost:8080/test1again/backend.php?navv=39
但是当我点击编辑链接,将我带到edit_page.php时,在地址栏中显示:
http://localhost:8080/test1again/edit_page.php?nav_id_trough_link=3
不知怎的,它切掉了9 如果页面的ID为40,则会发生同样的情况,然后将变为4(并且预填充具有id为4的页面内容的表单。)
有人请知道为什么会发生这种情况?
答案 0 :(得分:5)
错误显然在于:
<?php echo urlencode($selected_nav['id']); ?>
你确定$selected_nav
是一个数组吗?看起来$selected_nav
是一个字符串,你像数组一样访问它,因为字符串可以作为数组访问,但只使用商业索引,'id'
被转换为int(0
)和返回第一个字符。