【发布时间】:2014-02-24 19:09:42
【问题描述】:
我来自 C# 背景,我是 php 新手,我有一个 html 表单将其值提交到以下 php 文件,但由于某种原因未设置值,我做错了什么?
<?php
include('Mail.php');
$recipients = "myemail@hotmail.com";
$name = $_POST["txtName"] ;
$from = $_POST["txtEmail"] ;
$subject = $_POST["txtAppName"] ;
$comments = $_POST["txtComment"] ;
$headers = array (
'From' => $from,
'To' => $recipients,
'Subject' => $subject,
);
$body = "Name: ".$name."\r\n"."Comments: "."\r\n".$comments;
$mail_object =& Mail::factory('smtp',
array(
'host' => 'prwebmail',
'auth' => true,
'username' => 'username',
'password' => 'pass', # As set on your project's config page
'debug' => true, # uncomment to enable debugging
));
$mail_object->send($recipients, $headers, $body);
?>
这里是html表单:
<form action="sendfeedback.php" method="post">
<div><input placeholder="Name" id="txtName" type="text" /></div>
<div><input placeholder="Email (Optional)" id="txtEmail" type="text" /></div>
<div><input placeholder="Application Name (Type in the application name you're using)" id="txtAppName" type="text" /></div>
<div style="height:4px"></div>
<div><textarea placeholder="Comments..." id="txtComment"></textarea></div>
<div style="width:407px; text-align:right;"><input id="submitComment" type="submit" value="Send" /></div>
</form>
【问题讨论】:
-
确保你添加表单的方法是post
-
并确保表单字段有名称,特别是您在 PHP 脚本中使用的名称。
-
@putvande 有。当然,很多人随后通过四次发布相同的东西来尝试声誉耕作。
-
顺便说一句,我已经看到它是通过 $_REQUEST 或 $_GET 完成的,如果您不介意我问有什么区别?
-
$_GET指的是 URL 中的查询字符串。因此,如果您的表单使用GET而不是POST,则url 看起来像sendfeedback.php?txtName=ABC&txtEmail=XYZ...,而$_GET变量将包含这些参数。$_REQUEST默认组合了$_POST、$_GET和$_COOKIE。更多信息:stackoverflow.com/a/1924958/2136840