我使用GET方法在每个提交按钮上发布一个隐藏字段。
<?php
if(isset($_GET["topic"]))
{
$topic=$_GET["topic"];
?>
<input type="hidden" name="topic" value=<?php echo $topic; ?>/>
<?php
}
?>
问题是当我点击提交按钮时,我在我的网址中得到这个/'斜杠'。
获得主题车/
(在屏幕上打印回声时)
按下每个按钮,我得到另一个斜线......我的网址看起来像这样..
http://localhost/IHow/home.php?searchEngine=&topic=cars%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F&page=0
如何防止这种情况发生,因为我需要为我的mysql查询提供主题url变量..
答案 0 :(得分:1)
value
属性周围没有引号,并且属性和尾部斜杠之间也没有空格。斜杠被认为是value
属性的一部分,因此它被发送。添加引号,添加空格或同时执行这两项操作。
正如TheifMaster所说,您还应该在htmlspecialchars()
topic
答案 1 :(得分:0)
<?php
if(isset($_GET["topic"]))
{
$topic=$_GET["topic"];
if($topic[strlen($topic)-1] == '/') //check if last char is '/'
$topic = substr($topic,1,strlen($topic)-1); //$topic is $topic - last character
?>
<input type="hidden" name="topic" value=<?php echo $topic; ?>/>
<?php
}
?>