繁体   English   中英

Href中的PHP Echo切断变量

[英]PHP Echo in Href Cutting off Variable

在我的表单操作中:

    <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/25/2014年&类别=草坪

如果您注意到结尾是“ Lawn”而不是“ Lawn Mowing”,则确保$ category是“ Lawn Mowing”,因为它显示在页面的标题中。 如何解决这个问题,以便整个单词都通过URL传递?

您需要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时,才能安全地进行转义编码。 每个组件可能都有自己的保留字符集,因此只有负责生成或解释该组件的机制才能确定转义字符是否会改变其语义。 同样,在将URI中的转义字符安全地解码之前,必须将其分为多个部分。

在某些情况下,可能由未保留字符表示的数据可能看起来已转义; 例如,某些系统会自动转义一些未保留的“标记”字符。 如果给定的URI方案定义了规范化算法,则可以根据该算法对未保留的字符进行转义。 例如,有时在HTTP URL路径中使用“%7e”代替“〜”,但是对于HTTP URL,两者是等效的。

因为百分号“%”字符始终具有保留作为转义指示符的目的,所以必须将其转义为“%25”才能在URI中用作数据。 实现者应注意不要对同一字符串进行多次转义或转义,因为对未转义的字符串进行转义可能会导致将百分比数据字符误解为另一个转义的字符,反之,在转义已转义的字符串时反之亦然。

Source

尝试这样:

<form class="login" style=" " method="post" action="<?php echo "add_answer.php?id=$id&z=$zipcode&d=$date&category=urlencode($category)"; ?>">

用这个-

form class="login" style=" ;"method="post" action=<?php echo "index2.php?id=".urlencode($id)."&z=".urlencode($zipcode)."&d=".urlencode($date)."&category=".urlencode($category); ?>>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM