【发布时间】:2018-12-12 02:23:02
【问题描述】:
这里是代码
<?php
if(isset($_POST['uuser'])){
$gemail = mysql_result("SELECT `email` FROM `user` WHERE `username` LIKE '" . ($_POST['uuser']) . "';");
$to ="$gemail"; // this is user's Email address
$from = "admin@mysite.com"; // this is the sender's Email address
$first_name = $_POST['uuser'];
$last_name = $_POST['uuser'];
$subject = "Form submission";
$message = $first_name . " " . $last_name . " wrote the following:" . "\n\n" . $_POST['message'];
$headers = "From:" . $from;
mail($to,$subject,$message,$headers);
}
?>
问题在于 $gemail 没有从数据库中收到电子邮件。
【问题讨论】:
-
Echo $gemail 你会学到一些非常重要的东西:)
-
您需要通配符才能使
like工作。您也对 SQL 注入持开放态度,对查询进行参数化。也不应该再使用mysql_函数了。 -
您的 SQL 容易受到 SQL 注入的攻击。你应该解决这个问题。而且您不应该使用
mysql_result(已弃用)您的$gemail将始终为空,因为您没有连接到数据库并且您没有将数据库资源传递给您的mysql_result。 -
也与您的问题无关,但
mail(!=phpmailer。 -
您的所有输入似乎都具有相同的名称也可能是一个问题。例如电子邮件(用户名)、名字和姓氏。