1

我正在创建一个数据库系统,用户可以在其中添加表单中的详细信息,并使用 php 添加到数据库中。但是,我想做的是发送一封确认电子邮件,该电子邮件还将发送表单中的一些详细信息。因此,当我添加学生的详细信息时,例如将向我发送一封电子邮件,上面写着“一个名为“Bob Dabilda”的学生已通过“agentname”添加到您的数据库中” - 我没有问题做代理名称部分,因为我可以通过发送会话名称,我遇到的问题是发送学生姓名。任何帮助表示赞赏。以下是添加学生 php 部分的一个版本。添加学生表格有效,电子邮件单独工作,但我希望发送电子邮件,而无需代理单击显示“

require "dbc.php";
session_start();

if(isset($_POST['submit']))
{
$sname = mysql_real_escape_string($_POST['shostfamilyid']);

if($sname && $ssurname && $sgender && $saddress && $sdob && $sblood && $spassport && $shobby1 && $shobby2 && $schildren && $sanimals)
{

    $query = mysql_query("INSERT INTO student VALUES ('','$sname','$ssurname','$sgender','$saddress','$semail','$sdob','$stelephone','$sdiet','$sallergy','$smed','$sblood','$spassport','$shobby1','$shobby2','$shobby3','$ssiblings','$schildren','$srequests','$sanimals','$agent','')");
                header("location: successstudent2.php");
}
    else
    { 
       echo "Check All Required Fields Are Completed"; 
    }
}

这是我正在工作的电子邮件脚本的副本

session_start();

error_reporting(0);

if($_SESSION['username'])
{

$to = "from@from.com";
$from = "receive <to@to.com>";

$name = $_POST['webmaster'];
$email = $_POST['email@email.com'];
$msg = $_POST['msg'];
//generic subject
$subject = "Student Adding";
//header
$header = 'From: '. $from . "\r\n" . 'Content-Type: text/html; charset=ISO-8859-1';
//email
$htmlEmail = "
<html>
<head>
</head>
<body>
<font face='Arial' style='font-size:14px;'></font><br>
<font face='Arial' style='font-size:14px;'>A Student was added by ".$_SESSION['username']."   
</font><br><br>
</body>
</html>";
//php mail function
mail($to,$subject,$htmlEmail,$header);
header('Location:members.php'); //forwards user to members.php }

任何帮助,将不胜感激。感谢您!

4

2 回答 2

0

您需要仔细检查下面传递的所有变量名称和数据,因为这只是一个示例,可能无法按原样运行。

例如,在一个公共文件中为自己创建一个函数(假设这是“functions.php”):

<?php
function send_email ($to, $from, $subject, $body) {
/* you'll want to modify the above variables to match what you need in the function */

$to = "from@from.com";
$from = "receive <to@to.com>";

$name = $_POST['webmaster'];
$email = $_POST['email@email.com'];
$msg = $_POST['msg'];
//generic subject
$subject = "Student Adding";
//header
$header = 'From: '. $from . "\r\n" . 'Content-Type: text/html; charset=ISO-8859-1';
//email
$htmlEmail = "
<html>
<head>
</head>
<body>
<font face='Arial' style='font-size:14px;'></font><br>
<font face='Arial' style='font-size:14px;'>A Student was added by ".$_SESSION['username']."   
</font><br><br>
</body>
</html>";

//php mail function
mail($to, $subject, $htmlEmail, $header);

}
?>

然后稍微修改一下插入的代码:

<?php
session_start();
require "dbc.php";
require "functions.php";

if (isset($_POST['submit'])) {

  $sname = mysql_real_escape_string($_POST['shostfamilyid']);

  if ($sname && $ssurname && $sgender && $saddress && $sdob && $sblood && $spassport && $shobby1 && $shobby2 && $schildren && $sanimals) {

    $query = mysql_query("INSERT INTO student VALUES ('','$sname','$ssurname','$sgender','$saddress','$semail','$sdob','$stelephone','$sdiet','$sallergy','$smed','$sblood','$spassport','$shobby1','$shobby2','$shobby3','$ssiblings','$schildren','$srequests','$sanimals','$agent','')");

    if ($query) {
      send_email ($to, $from, $subject, $body); /* modify these as well */
      header("location: successstudent2.php");
      exit();
    } else { 
       echo "Check All Required Fields Are Completed"; 
    }
  }
}
?>
于 2013-05-14T16:03:31.037 回答
0

我说忘记函数或单独的页面,只需在 INSERT 语句下方包含用于发送电子邮件的 PHP 脚本即可。您不需要使用“if($_SESSION['username'])”,这可能会导致您的问题。

于 2013-05-14T16:19:28.067 回答