在我的表单中:
<form class="login" style=" ;"method="post" action=<?php echo "add_answer.php?id="; echo $id; echo "&z=$zipcode&d=$date&category=$category"; ?>">
$ category是一个2字变量“割草”。但是,它指示我链接:
add_answer.php ID = 1&安培; Z = 55901&安培; d = 04 /2014分之25&安培;类别=草坪
如果你发现结尾是“草坪”而不是“草坪割草”我确定$ category是“草坪割草”,因为它显示在页面的标题中。我如何解决这个问题,以便整个单词通过URL传递?
答案 0 :(得分:3)
您需要urlencode()
变量。
<form class="login" style=" ;"method="post" action=<?php echo "add_answer.php?id=".urlencode($id)."&z=".urlencode($zipcode)."&d=".urlencode($date)."&category=".urlencode($category); ?>">
urlencode()
?URI始终处于“转义”形式,因为转义或取消转义 完成的URI可能会改变其语义。通常,唯一的时间 可以安全地创建转义编码,这是在创建URI时 从其组成部分;每个组件可能有自己的一组 保留的字符,所以只有负责的机制 生成或解释该组件可以确定是否 转义一个字符会改变它的语义。同样,URI必须 在转义字符之前被分隔成它的组件 这些组件可以安全地解码。
在某些情况下,可以由未预留的数据表示的数据 角色可能会出现逃脱;例如,一些未保留的 “mark”字符会被某些系统自动转义。如果 给定的URI方案定义了规范化算法,然后是未保留的 根据该算法,字符可能未被转义。例如, 有时在http URL路径中使用“%7e”而不是“〜”,但是 两个对于http URL是等效的。
因为百分比“%”字符始终具有保留的目的 作为逃生指标,它必须被转义为“%25”才能成为 用作URI中的数据。实施者应该小心不要 因为没有一次,所以不止一次地逃避或取消相同的字符串 已经未转义的字符串可能会导致错误解释百分比数据 字符作为另一个转义字符,反之亦然 逃避已经逃脱的字符串。
答案 1 :(得分:0)
尝试这样:
<form class="login" style=" " method="post" action="<?php echo "add_answer.php?id=$id&z=$zipcode&d=$date&category=urlencode($category)"; ?>">
答案 2 :(得分:0)
使用此 -
form class="login" style=" ;"method="post" action=<?php echo "index2.php?id=".urlencode($id)."&z=".urlencode($zipcode)."&d=".urlencode($date)."&category=".urlencode($category); ?>>