我有一个简单的帐户创建页面,它接收用户输入并通过电子邮件发送到我的电子邮件帐户,但当我检查电子邮件时,它显示零作为正文.
<form action="" method="post">
<p style="font-family:latine;">Username: <input type="text" name="username" id="username"></p>
<br><br>
<p style="font-family:latine;">Password: <input type="password" name="password" id="password"></p>
<br>
<input type="submit" value="Create account">
</form>
<?php
$user = $_POST["username"];
$password = $_POST["password"];
$info = $user + $password;
mail("myemail@gmail.com", "User request", $info);
?>
Run Code Online (Sandbox Code Playgroud)
看到其他人决定发布一个答案:
我会解释一下:
$info = $user + $password;该+符号是JS/C连接语法.
将其包装在引号中并删除+符号:
$info = "$user $password";
Run Code Online (Sandbox Code Playgroud)
或使用PHP .(点周期)连接语法:
$info = $user . " " . $password;
Run Code Online (Sandbox Code Playgroud)
将错误报告添加到文件的顶部,这将有助于查找错误.
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
Run Code Online (Sandbox Code Playgroud)
旁注:错误报告应该只在暂存中完成,而不是生产.
您可能还希望将可执行代码包装在条件语句中,并命名提交按钮并检查是否所有字段都不为空.
看到你在一个文件中使用了整个代码.
<form action="" method="post">
<p style="font-family:latine;">Username:
<input type="text" name="username" id="username"></p>
<br><br>
<p style="font-family:latine;">Password:
<input type="password" name="password" id="password"></p>
<br>
<input type="submit" name="submit" value="Create account">
</form>
<?php
if(isset($_POST['submit'])
&& !empty($_POST["username"])
&& !empty($_POST["password"])){
$user = $_POST["username"];
$password = $_POST["password"];
$info = "$user $password";
mail("myemail@gmail.com", "User request", $info);
}
?>
Run Code Online (Sandbox Code Playgroud)
另一件事.您需要在邮件标题中使用其他参数"From:".由于缺少"发件人:",您的邮件可能会以垃圾邮件结尾或完全被忽略.
从该页面拉出的示例:
<?php
$to = 'nobody@example.com';
$subject = 'the subject';
$message = 'hello';
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
Run Code Online (Sandbox Code Playgroud)
additional_parameters参数可用于将其他参数传递给配置为在使用sendmail_path发送邮件时使用的程序.
<?php
mail('nobody@example.com', 'the subject', 'the message', null,
'-fwebmaster@example.com');
?>
Run Code Online (Sandbox Code Playgroud)