Textarea PHP帖子问题

时间:2014-06-18 20:09:17

标签: php html post textarea

我有一个textarea的PHP帖子问题。我搜索了这个网站,建议的补救措施包括提取textarea的ID,并确保你使用的是htmlspecialchars。我正在做这两件事,我仍然无法弄清楚为什么它不会发布我的textarea的内容。

HTML

<form method="post" action="email.php" name="contactform" id="contactform" class="form form-stacked c-form">
<input name="name" type="text" id="name" placeholder="Name" />
<input name="email" type="text" id="email" placeholder="E-mail" />
<textarea name="theTextArea" placeholder="Message"></textarea>
<input type="submit" class="submit btn outline" id="submit" value="Send message" />
</form>

PHP

$realName = $name = $theMessage = $subject = $WHATmessage = "";

if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $realName = test_input($_POST["name"]);
  $name = test_input($_POST["email"]);
  $theMessage = test_input($_POST["theTextArea"]);
}
function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

$subject = 'SUPERGROUP Inquiry - ' . $realName . ' - [' .date("F j, Y, g:i a").']';
$WHATmessage = $realName . ' is looking forward to hearing from us!'.PHP_EOL.'Their email is: '. $name .'!'.PHP_EOL.'They said: "'.$theMessage.'"';
mail('hello@sprgrp.com', $subject, $WHATmessage ); 

2 个答案:

答案 0 :(得分:1)

这里有几件事......

“name”是保留字。不要使用名字作为你的名字。

 <input name="name"

这可能是大多数发布问题的核心问题。

相反,请尝试

<input name="fullname"

另外,你想在POST上添加“addslashes”,而不是“stripslashes”。在db查询之后删除,以将“原始”源dsiplay发送给用户。 但这主要是为了数据库交互。 对于电子邮件,基本上没必要这样做。 htmlspecialchars应该处理其他所有事情。

答案 1 :(得分:1)

将评论作为答案发布,因为它似乎有效。

你用单引号而不是那里的双引号尝试了所有这些吗? PHP可以很有趣。