php中的email()函数给我一个0作为电子邮件正文

Yaa*_*pan 1 php

我有一个简单的帐户创建页面,它接收用户输入并通过电子邮件发送到我的电子邮件帐户,但当我检查电子邮件时,它显示零作为正文.

    <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)

Fun*_*ner 5

看到其他人决定发布一个答案:

我会解释一下:

$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)