进行urlencode/urldecode问题
问题描述:
我从MySQL数据库中选择数据,并执行以下操作进行urlencode/urldecode问题
echo "<input type=\"text\" name=\"distadd1\" id=\"distadd1\" class=\"textbox\" value=". urlencode($row['ADD1']). " >";
但是如下+规划+%26 +开发部+正在显示的值。
我如何删除+和%26
答
URL编码是不是你想要做这听起来像什么不同。尝试改变URL编码为htmlentities,这将摆脱'+'和& 26;但仍会保护您免受XSS /脚本注入您的网页。
Example #1 A htmlentities() example
<?php
$str = "A 'quote' is <b>bold</b>";
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str);
// Outputs: A 'quote' is <b>bold</b>
echo htmlentities($str, ENT_QUOTES);
?>
答
不要摆在首位添加这些符号。顾名思义,urlencode()函数用于生成URL。你可能想要使用htmlspecialchars()。
我试过htmlentities,但它只是 返回字符串的第一个单词。
您的HTML无效。您需要使用引号,以便您的属性可以包含空格。比较:
<input name=user value=foo bar id=foo>
<input name="user" value="foo bar" id="foo">
你为什么要在首位对urlencoding进行编码? – 2010-07-12 10:54:03
我想阻止XSS /脚本注入 – Tommy 2010-07-12 10:55:10
我想将字符串'Add1'放入表单输入框中, 如果我只是说$ row ['ADD1'] 我得到字符串的第一个单词,在这个case Department 但我发现通过使用urlencode我显示整个字符串,但与空间字符。 我是PHP新手,可能会尝试做这个错误。 – Scott 2010-07-12 11:04:55