我现在的代码是这样的:
如果用户输入一般字符是没问题的,但如果输入单引号,提交后input里的值就变了,试过给echo的字符串加htmlentities或htmlspecialchars都不可以...无论是不是把value用引号引起来,都不能同时支持双引号、单引号和反斜杠...
实在写不出来了,求助...
<html>
<head>test</head>
<body>
<form action="#">
<input type=text name="a" value=<? echo $_GET["a"] ?> />
<input type=submit />
</form>
</body>
</html>
如果用户输入一般字符是没问题的,但如果输入单引号,提交后input里的值就变了,试过给echo的字符串加htmlentities或htmlspecialchars都不可以...无论是不是把value用引号引起来,都不能同时支持双引号、单引号和反斜杠...
实在写不出来了,求助...
<html>
<head>test</head>
<body>
<form action="#">
<input type=text name="a" value=<? echo $_GET["a"] ?> />
<input type=submit />
</form>
</body>
</html>
<input type=text name="a" value="<? echo htmlentities(stripcslashes($_GET["a"])); ?>" />
<input type=submit />
</form>其中:
stripcslashes 去除转义符
htmlentities 做html转义处理另外:<input type=text name="a" value=<? echo $_GET["a"] ?> />
这样的写法是错误的,值应该用引号括起
可以转义函数addslashes(),然后在input的值这样写:
<input type=text name="a" value="<? echo str_replace("\","",$_GET["a"]); ?>" />addslashes函数将字符串的特殊字符前添加了\,所以在获取的时候要去掉这个符号,这样显示就会正常了。
是不是第二个参数传递的问题。
base64_encode加密传送。
然后再用
base64_decode解密。
如果想显示某个符号可以使用:str_replace()进行替换