在我的PHP联系表单脚本中,
我正在使用_POST
提交包含必须转义的引号的PHP变量,并且在到达时,其值将成为表单中$formSubject
变量的值,并且具有使用stripslashes
删除了斜杠。
以下是显示$formSubject
变量以及标题的表单的摘录。
<input type="text" name="formSubject" id="formSubject" value="<?php if(isset($_POST['formSubject'])) echo stripslashes($_POST['formSubject']);?>" />
if (($resp->is_valid) && (!isset($hasError))) {
$emailTo = 'yourEmail@address.com';
$subject = 'A new message from: ' . $formAuthor . ' | ' . $formSubject;
$body = "Email: $formEmail \n\nContent: $formContent \n\n$formAuthor";
$headers = 'From: <'.$formEmail.'>' . "\r\n" . 'Reply-To: ' . $formEmail . "\r\n" . 'Return-Path: ' . $formEmail;
由于我已经开始在echoed变量上使用stripslashes
,所以主题在表单的页面上是正确的,但是一旦电子邮件到达,主题中的ASCII就无法正确解析。
THIS IS A \'SUBJECT\'
应该是:
THIS IS A 'SUBJECT'
这是声明正确编码的问题吗?这只发生在我开始使用stripslashes
时,striplashes会忽略编码吗?我在<form>
上了解了要用于设置UTF-8
的属性,但这不起作用。是否有特定于stripslashes的修复,或者是否需要对脚本编码进行整体更改?
谁能告诉我这是什么问题?
感谢您的协助。