首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试图使用PHP将用户名发送到电子邮件

试图使用PHP将用户名发送到电子邮件
EN

Stack Overflow用户
提问于 2016-07-27 13:50:15
回答 5查看 2K关注 0票数 0

我有一个包含用户电子邮件和自动生成用户名的数据库,我有一个表单,用户输入电子邮件来检索他们的用户名,这是我的代码。

代码语言:javascript
复制
<html>
<body>
  <form method="post" action="retrievedetails.php">
    <p><label for="email">Email:</label>
    <input name="email" type="text"/>
    </p>
    <input type="submit" name="submit" value="submit"/>
  </form>

<?php
session_start();
$connect=mysql_connect("localhost","dfarrelly","1234") or die("Could not connect to database");
mysql_select_db("game", $connect) or die("Couldn't find db");

  if(isset($_POST['submit'])) {
      $email=$_POST['email'];
      $email_check=mysql_query("SELECT user_name FROM details WHERE user_email='$email'");
      $name=mysql_num_rows($email_check);
      $subject="Login Info";
      $message="Your username is .$name";
      $from="From: test@gmail.com";
      mail($email, $subject, $message, $from);
      echo "your username has been emailed to you";
  }
?>
</body>
</html>

我没有收到任何错误,我只是没有收到电子邮件,谁能帮我这个吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2016-07-27 14:08:27

假设您尚未指定SMTP-Server,这就是您不能发送电子邮件的原因。像谷歌这样的公司有这些SMTP服务器,可以让你作为电子邮件服务的客户通过它们的SMTP服务器接收和发送电子邮件。如果没有对SMTP服务器的访问,您将无法发送电子邮件。

解决方案是在php.ini中指定SMTP详细信息,您可以通过windows搜索或聚光灯(如果您在mac上工作)找到这些详细信息。

我建议您使用PHPMailer,这使得使用f.e的SMTP详细信息要容易得多。你的个人谷歌邮件。

只需检查接受的答案就可以得到一个例子:Sending email with PHP from an SMTP server

票数 2
EN

Stack Overflow用户

发布于 2016-07-27 13:56:53

不要在SQL语句中盲目地使用表单的值。

代码语言:javascript
复制
$email=$_POST['email'];
$email_check=mysql_query("SELECT user_name FROM details WHERE user_email='$email'");

您要求有人将一些非常讨厌的SQL作为电子邮件地址注入其中。

injection.asp

此外,我认为你应该检查你的服务器可以发送电子邮件。mail()只会将您的信息转发到服务器用来发送电子邮件的任何东西上。这很可能是没有设置,所以你不能发送电子邮件,直到这是固定的。

票数 1
EN

Stack Overflow用户

发布于 2016-07-27 14:21:09

按照PHP文档对邮件函数和@BeAn匿名的要求,您需要定义一个SMTP服务器。

  • http://php.net/manual/en/function.mail.php#refsect1-function.mail-notes
  • http://php.codeindepth.com/php-sending-mail/ (摘自对邮件文档站点的评论)

我使用PEAR邮件通过PHP发送电子邮件。

此外,@ Casbolt说,您正与数据库直接交互,您的表单请求注入攻击。查看如何在数据库交互中使用PDO:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38614883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档