Mysql Email $ link消息

时间:2014-07-05 08:20:23

标签: php html mysql database email

您好我正在为我的学校项目制作电子邮件系统。我希望有人帮助让它在html文档部分显示密码哈希。目前它没有显示任何东西。谢谢Joshua

<?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>"; } ?>

3 个答案:

答案 0 :(得分:0)

首先,将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
}

答案 1 :(得分:0)

您需要将其作为数组返回

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

$link = $row['user_password_reset_hash'];

显然{@ 1}}已被弃用,您应该考虑使用mysqlpdo。由于它是一个具有特定问题的项目,我已做出相应的回答。

答案 2 :(得分:0)

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

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

对不起,您在学校学习使用那些旧的已弃用的mysql_ *函数(请参阅链接手册页中的红色框)。您可以使用the answer of lodev09中显示的mysqli扩展程序或PDO获得更好的效果。使用PDO或mysqli,您应该使用带有占位符的预准备语句,并将输入值放到这些占位符以避免sql注入。