我正在使用一个php脚本,当他访问其帐户中的某些页面时,会自动向登录用户发送电子邮件。 客户端表在两个不同的列(mail1和mail2)中有两个不同的电子邮件,mail1用作用户名。 该脚本可以发送到主电子邮件(他用来登录的电子邮件),但不能发送到他的辅助电子邮件(mail2)。 我希望将电子邮件发送到存储在其他数据库列中的第二个电子邮件地址,而不是他用来登录的电子邮件地址。
这是我的代码
<?php
if(isset($_SESSION["mail1"]))
{
$to = $_SESSION["mail1"];
$subject = 'the subject';
$message = 'hello';
$headers = 'From: my@example.com' . "\r\n" .
'Reply-To: my@dexample.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
echo 'Email Sent.';
}
?>
我的工作方式是这样但当我将$to = $_SESSION["mail1"] to
$更改为= $`$ _SESSION [“mail2”]时,它将无效,我希望它能与mail2一起使用
如何让它将邮件发送到mail2?
答案 0 :(得分:1)
你必须在会话内存中加载mail2,就像JohnP所说的那样。 开始您的会话后,请执行以下操作:
$_SESSION['mail2'] = $mail2;
其中$ mail2可能来自数据库请求。
此数据库请求可能如下所示: 编辑以防止SQL注入, - &gt;请参阅AndréLaszlo的评论
$dbConnection= new mysqli("localhost", "my_user", "my_password", "dbname");
$stmt = $dbConnection->prepare('SELECT mail2 FROM users WHERE mail1 = ? LIMIT 1');
$stmt->bind_param('s', $mail1);
$stmt->execute();
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
$mail2 = $row;
}
用户是数据库中存储信息的表。
执行此操作后,它应该像您尝试过的那样工作。
答案 1 :(得分:0)
@Balde,我假设您已经从数据库中检索电子邮件数据&amp;存储到$ _SESSION [&#34; mail2&#34;]。
您可以打印会话数据以检查$_SESSION["mail_2"]
&amp;然后你需要改变你的if条件变量,即$_SESSION["mail1"]
到$_SESSION["mail2"]
。
所以$ _SESSION [&#34; mail2&#34;]的代码如下所示。
<?php
if(isset($_SESSION["mail2"])) {
$to = $_SESSION["mail2"];
$subject = 'the subject';
$message = 'hello';
$headers = 'From: my@example.com' . "\r\n" .
'Reply-To: my@dexample.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
echo 'Email Sent.';
} ?>
答案 2 :(得分:-2)
<?php
if(isset($_SESSION['mail1']))
{
$mail1=$_SESSION['mail1'];
$query=mysql_query("select * from table_name where username='$mail1'");
while($row=mysql_fetch_array($query))
{
$mail2=$row['mail2'];
}
$to = $mail2;
$subject = 'the subject';
$message = 'hello';
$headers = 'From: dev1@dev1.diiwal.com' . "\r\n" .
'Reply-To: dev1@dev1.diiwal.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
echo 'Email Sent.';
}
?>