输入区域中出现PHP错误的新行

New line in the input area giving error in PHP

本文关键字:错误 新行 PHP 区域 输入      更新时间:2023-09-26

只是学习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中执行此任务的一些信息,请查看此页面。