2013-04-10 119 views
0

如何使用$_SESSION[user_id]变量将电子邮件地址从用户表中拉出并发送到该地址?

在付款过程结束时,我想向用户发送确认电子邮件。用户标识存储在会话中,我希望将确认发送到存储在用户表中的电子邮件地址。

<?php 
$to = "[email protected]"; 
$subject = "Hi!"; 
$body = "Hi,\n\nHow are you?"; 
if (mail($to, $subject, $body)) { 
echo("<p>Message successfully sent!</p>"); 
} else { 
echo("<p>Message delivery failed...</p>"); 
} 
?> 

如何使用查询插入与$ _SESSION [user_id]变量关联的相应电子邮件?

$q = "SELECT email from users where id='".$_SESSION['user_id']."'"; 
$r = mysqli_query ($dbc, $q); 
$to = "email"; 
$subject = "Confirmation"; 
$body = "Hi,\n\nConfirmation?"; 
if (mail($to, $subject, $body)) { 
echo("<p>Message successfully sent!</p>"); 
} else { 
echo("<p>Message delivery failed...</p>"); 
} 

我有信息的电子邮件发送成功,但在注册过程中我发送的电子邮件使用电子邮件从未到达... :

$body = "Thank you for registering at <...>. Welcome to digital world of knowledge."; 
mail ($_POST['email'], 'Registration Confirmation', $body, 'From: [email protected]'); 
+0

它全部取决于你的数据库设置的方式。可能使用'SELECT'语句。你用什么数据库? – 2013-04-10 12:49:50

+0

我正在使用mysql – Dave 2013-04-10 12:54:28

+0

你的表格是什么样的?数据库结构会派上用场。 – 2013-04-10 12:57:47

回答

0

您有一个基于用户ID来写一个选择查询收到电子邮件这样的事情

$sql = "SELECT email from user where user_id='".$_SESSION[user_id]."'"; 

然后使用电子邮件执行邮件功能

0

您需要从用户对象获得的电子邮件地址:

$user = User::getByID($_SESSION[user_id]); 
$email = $user->getEmail(); 

这个代码仅仅是示范性的,这取决于如何您的用户对象的作品。如果你没有一个,那么我的回答是建议你创建一个用户对象。

0

随着出从Database,它不可能做到这一点得到了email address

否则

用户登录成功后,您可以设置一个多个会话varaible

$_SESSION['email'] = '[email protected]' 
+1

如果在应用程序中更经常需要电子邮件,则将其存储到会话中的建议是一个不错的方法。 – 2013-04-10 12:53:05

+0

是的,否则引入一个新的功能与查询是不同的方式来实现这个 – Ranjith 2013-04-10 12:55:50

+0

是的,功能是一个好主意,甚至比一个函数是一个小对象有一些有用的方法,请参阅:http://stackoverflow.com/a /2261774分之15926343 – 2013-04-10 13:00:30

相关问题