【问题标题】:Mqsql Email $link MessageMysql 邮箱 $link 消息
【发布时间】:2014-08-26 09:26:04
【问题描述】:

您好,我正在为我的学校项目制作一个电子邮件系统。我希望有人帮助让它在 html 文档部分中显示密码哈希。目前它没有显示任何内容。谢谢约书亚

<?php require_once 'application/config/autoload.php'; 

    $host= DB_HOST;
    $username= DB_USER;;
    $password= DB_PASS;
    $db_name= DB_NAME;
    $tbl_name= DB_TABLE;
    $user_name = Session::get('user_name');


error_reporting(0);

mysql_connect($host, $username, $password)or die("cannot connect");
mysql_select_db($db_name)or die("cannot select DB");


            $sql = "SELECT user_id,
                           user_name,
                           user_email,
                           user_password_reset_hash,
                           user_perm_level,
                           user_type,
                           user_active,
                           user_failed_logins,
                           user_last_failed_login
                           FROM $tbl_name WHERE user_name='$user_name'";

            $result = mysql_query($sql);
            if($result){
            $link = "$result->user_password_reset_hash";
            echo "<html>
<head>
<style>
body {
    background-color: #fff;
    font-family: Arial;
    font-size: 14px;
    color: #000;
    padding: 0;
    margin: 15;
}
h1 {
    font-size: 40px;
}
h2 {
    font-size: 20px;
}
</style>

<div>
    <img src='logo.min.png' align='left'></p>
    <h1 align='right'>Teacher Help</h1>
    <h2 align='right'>Verify Email<br></h2>
    <p>$link</p>
</div>
</head>
</html>"; } ?>

【问题讨论】:

  • 你可以很容易地用 MD5.js 用 jquery 做到这一点...
  • 我说如果你想加密你的密码然后使用 md5.js...

标签: php html mysql database email


【解决方案1】:

首先,将您的 mysql_* 更改为 mysqli_*,因为它已被弃用。现在,你的可能应该是这样的:

$link = mysqli_connect($host, $username, $password, $db_name);

$sql = "SELECT user_id,
  user_name,
  user_email,
  user_password_reset_hash,
  user_perm_level,
  user_type,
  user_active,
  user_failed_logins,
  user_last_failed_login
  FROM $tbl_name WHERE user_name='$user_name'";

$result = mysqli_query($link, $sql);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
if ($row) {
    $link = $row["user_password_reset_hash"];
    // rest of code
}

【讨论】:

  • 我会在 10 分钟内试一试
【解决方案2】:

你需要把它作为一个数组返回

$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

$link = $row['user_password_reset_hash'];

显然mysql 已被弃用,您应该考虑使用pdomysqli。由于这是一个有特定问题的项目,我已经做出了相应的回答。

【讨论】:

    【解决方案3】:

    您必须获取结果的内容。你的代码告诉我,你想使用mysql_fetch_object

            $result = mysql_query($sql);
            if($result){
                $row = mysql_fetch_object($result);
                $link = $row->user_password_reset_hash;
                echo $link;
                // ...
    

    很抱歉,您在学校学习使用那些旧的已弃用的 mysql_* 函数(请参阅链接手册页中的红框)。最好使用 mysqli 扩展或 PDO,如the answer of lodev09 所示。对于 PDO 或 mysqli,您应该使用带有占位符的预处理语句,并将输入值放入这些占位符以避免 sql 注入。

    【讨论】:

    • 我如何添加一个带有 $link 变量的
    • 要么使用带有 href 属性的简单链接,例如 resetscript.php?hash=&lt;the urlencoded reset hash&gt;,要么创建一个带有隐藏输入元素的表单,其中包含哈希值和提交按钮。还有成千上万种其他方法,但这是一个学校项目,所以我会实现链接或带有隐藏字段的表单。
    • 我有另一个问题,当我重置通过时它给了我之前的代码
    • @user3761831 对于这个新问题,您应该考虑一个单独的问题。
    • 好的,我会做一个,请考虑帮助新的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多