繁体   English   中英

PHP - 基于数据库查询的电子邮件地址

[英]PHP - email to email address based on database query

我正在尝试创建对广告表单的回复,其中用户点击广告并可以发送电子邮件,但我不希望用户实际查看他们将其发送到哪个地址,而是可以从数据库基于广告的用户名

我试过这段代码,但似乎无法让它工作,任何帮助赞赏!

$username = $_SESSION['username'];

$sql = "SELECT * FROM user WHERE username=:username";
$q = $conn->prepare($sql);
$q->bindParam(':username', $username, PDO::PARAM_STR);
$q->execute();
$row = $q->fetch(PDO::FETCH_ASSOC);

$email1 = $row['email']; 

 $to='$email1';
$messageSubject='Message subject';
$confirmationSubject='Confirmation message subject';
$confirmationBody="Confirmation message body";
 $email='';
  $body='';
$displayForm=true;
if ($_POST){
$email=stripslashes($_POST['email']);
$body=stripslashes($_POST['body']);
// validate e-mail address
$valid=eregi('^([0-9a-z]+[-._+&])*[0-9a-z]+@([-0-9a-z]+[.])+[a-z]{2,6}$',$email);
$crack=eregi("(\r|\n)(to:|from:|cc:|bcc:)",$body);
if ($email && $body && $valid && !$crack){
  if (mail($to,$messageSubject,$body,'From: '.$email."\r\n")
      && mail($email,$confirmationSubject,$confirmationBody.$body,'From: '.$to."\r\n")){
    $displayForm=false;

不要使用ereg功能。 他们被弃用并且存在严重问题。 请改用preg。

要回答你的问题,这应该是简单的

$to = $email1;

或者更好的是,跳过那个阶段然后做

$email1 = $row['email1'];

使用'单引号,您强制PHP将$email1视为字符串,而不是变量。 所以你试图发送到一个名为$email1的地址,而不是$email1变量的内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM