2011-08-11 85 views
0

Ive得到了一个表格,用户举报的帖子形式不张贴到PHP的邮件

<form method="post" action="sendmail.php" name="Email form"> 
Message ID <input type="text" name="message id" /><br/><br/> 
Aggressive conduct <input type="radio" name="option1" value="aggressive contact" /><br/><br/> 
Offensive conduct <input type="radio" name="option2" value="offensive conduct" /><br/><br/> 
Rasical conduct <input type="radio" name="option3" value="Rasical conduct" /><br/><br/> 
Intimidating conduct <input type="radio" name="option4" value="intimidating conduct" /><br/><br/> 
<input type="submit" name="submit" value="Send Mail" /> 
</form> 

然后它触发一个PHP的邮件功能,将报告发送给我

<?php 
$to  = '[email protected]'; 
$subject = 'Report'; 
$message = 'message id\option1\option2\option3\option4'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
?> 

我希望它取用户在表单中输入的值并邮寄给我。因为它代表它真的发送了邮件,但它只是在邮件

消息ID \选项1 \选项2 \ 2选项\ 3选项

现在我明白这就是我把在“$消息说'但是,因为这就是我所谓的输入形式,我认为这是需要的!我错过了什么?

PHP的邮件功能是工作,所以这不是问题。我确定我只是缺少一些代码来使它工作。

回答

0

Message ID <input type="text" name="message id" /><br/><br/> 这里的name属性不正确,将需要被重新命名为“MESSAGE_ID”代替。

你的单选按钮应具有相同的名称 然后更改

$message = 'message id\option1\option2\option3\option4'; 

到这样的事情(比如“行为”。):

$message = "message id: $_POST[message_id]\conduct $_POST[conduct]"; 
+0

感谢这个伟大的工作! – Louismoore18

0

你需要为了得到被张贴检查数据的$ _ POST-瓦尔。

所以,例如而不是只把“信息ID是”在你的邮件,你需要做的是这样$_POST['message id'] . '\' . $_POST['option1']...

阅读:
http://php.net/manual/de/reserved.variables.post.php

其他提示:我不会在名称(“消息ID使用空间“),如果你真的想使用互动(形成一组单选按钮),他们需要有相同的名称

1

你需要让你的所有单选按钮相同的名称(这里假设你只想要一个进行检查一次),否则使用不同名称的复选框。使用$ _POST从表单获取数据。

$message = "message {$_POST['id']}\{$_POST['option']}";