2013-05-14 6 views
1

Я создаю систему баз данных, в которой пользователь может добавлять детали в форму и она добавляет в базу данных с помощью php. Однако я хочу отправить электронное письмо с подтверждением, которое также отправит некоторые детали в форме. Поэтому, когда я добавляю детали студента, например, что мне будет отправлено электронное письмо, в котором говорится что-то вроде строки «Студент, получивший название« Bob Dabilda », был добавлен в вашу базу данных с помощью« agentname »» - у меня нет проблем делая часть имени агента, так как я могу просто отправить имя сеанса через, то, что у меня есть проблемы, отправляет имя студента. Любая помощь оценивается. Ниже приведена версия части php add student. Добавление формы студента работает, и электронная почта работает отдельно, но я хочу, чтобы письмо отправлялось без агента, который должен был нажать кнопку, которая говорит «отправить электронную почту» или что-то в этом роде. База данных - это mysql.Автоматическая электронная почта из формы

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 = "[email protected]"; 
$from = "receive <[email protected]>"; 

$name = $_POST['webmaster']; 
$email = $_POST['[email protected]']; 
$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 } 

Любая помощь будет оценена. Благодарю вас!

+1

Почему бы не добавить почтовый код в том же файле, что и код для добавления ученика в базу данных? Вы можете назвать это как функцию, передав имя студенту, как только информация будет проверена. – andrewsi

ответ

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 = "[email protected]"; 
$from = "receive <[email protected]>"; 

$name = $_POST['webmaster']; 
$email = $_POST['[email protected]']; 
$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"; 
    } 
    } 
} 
?> 
0

Я говорю, забудьте функцию или отдельную страницу и просто включите скрипт PHP, чтобы отправить электронное письмо прямо под инструкцией INSERT. Вам не нужно использовать «if ($ _ SESSION ['username'])», что может привести к вашей проблеме в любом случае.

+0

Хотя этот «ответ» будет работать - это не помогает учиться и развиваться. Очень распространенной практикой является разделение различных элементов вашего приложения на разные файлы и функции. Просто говоря ему, что «просто включите ...» говорит ему, что все в порядке, чтобы сделать короткие сокращения, что в конечном итоге не поможет ему. Это не нападение на вас, просто мое мнение. Благодарим за вклад. Приветствия. –

Смежные вопросы