只是学习PHP和wordpress并遇到一些问题。这是我的用例。我有一个类似的文本区域
<textarea id='contact-message' class='contact-input' name='message' cols='40' rows='4' tabindex='1004'></textarea>
用户可以在该区域输入文本。一切都很好,但如果用户在键入消息时点击"Enter Key"
,它将从文本区域的新行开始,当我试图提交表单时,这一新行会给我以下异常
当用户提交表单时,我正在创建一个URL字符串,并将其传递给java脚本函数,以便通过ajax调用提交。这是我的
PHP代码
$input = "u_email=".$email;
$input .= "&u_subject=" .$subject . "&u_message=" .$message . "&u_ip=" . $_SERVER["REMOTE_ADDR"] ."&u_name=" .$name;
echo "<script>rtf_submit('$baseURL','$input');</script>";
JS代码
function rtf_submit(url,requestURL){
}
这是由上面的PHP代码创建的提交的URL
u_email=dud@dud.com&u_subject=&u_message=Hello World&u_ip=127.0.0.1&u_name=hello
这是我得到的例外
Error: unterminated string literal
Line: 0, Column: 83
Source Code:
rtf_submit('http://localhost/blog/wordpress/wp-content/plugins/user_feedback/','u_email=dud@dud.com&u_subject=&u_message=Hello
我在键入Hello
后按enter键,java脚本代码没有正确处理这一空格/新行。
有没有什么方法可以在PHP端处理这个问题,以避免这种情况,或者需要在java脚本中完成?
提前感谢
在服务器端,您可以尝试使用htmlentities
:http://www.php.net/manual/en/function.htmlentities.php
您需要对表单输入进行编码,以便浏览器(在本例中为Javascript代码)正确处理它们。您可以在Javascript或PHP中执行此操作——有关在Javascript中执行此任务的一些信息,请查看此页面。