通过电子邮件向用户发送忘记的用户名

时间:2014-01-22 21:59:00

标签: php mysql email username

我有一些PHP代码,我希望用户输入他们的电子邮件地址,检查数据库,然后将与该电子邮件地址关联的用户名发送给用户。基本上是'忘记用户名'功能。

到目前为止,我有以下代码,它将发送电子邮件,但在电子邮件中显示您的用户名是: 就是这样。由于某种原因,$ username变量未传递给电子邮件。我对PHP足够新,所以任何帮助都会非常感激。

<?php

if(isset($_POST['submit'])){

    $email = $_POST['email'];

    if($email==''){
    echo "<script>alert('Please enter email address!')</script>";
    exit();
    }

    $sql=mysql_query("select user_name from users where user_email='$email'");
     if(mysql_num_rows($sql)>=1)
       {
        //echo "<script>alert('Username $user_name already exist in our database, please try another one!')</script>";
        $username = $row[0];


        $subject = 'Forgotten Username';
        $message = 'Your username is: '.$username.'';
        $header = 'Header';

        if($_POST){    
        mail($email, $subject, $message, $header);
        $feedback = 'Thanks for contacting us! We will be in contact soon!';
            }
       }
     else {
     echo "<script>alert('Email doesn't exist')</script>";
     }
}
?>

HTML

<form method='post' action='forgotusername.php'>
        <table width='400' border='5' align='center'> 

        <tr>    
            <td align='center'>Enter your email address</td>
            <td><input type="text" name="email" style="width: 200px;" /></td>
        </tr>

        </table>
        <input type='submit' name='submit' value='Post' />
    </form>

2 个答案:

答案 0 :(得分:1)

要回答您的问题,您需要先获取行,然后才能使用mysql_fetch_row()

访问该行
<?php
$row = mysql_fetch_row($sql);
$username = $row[0];

但更重要的是要注意这是一种访问mysql数据库的非常古老的方法。

有关缺失的函数,请参阅http://www.php.net/manual/en/function.mysql-fetch-array.php,它还会建议您更新,更安全的数据库访问方法。

还有一种方法mysql_real_escape_string(),您将用它来转义电子邮件变量,但有一些改进的方法可用。

答案 1 :(得分:0)

您需要执行mysql_fetch_row     

if(isset($_POST['submit'])){

    $email = $_POST['email'];

    if($email==''){
    echo "<script>alert('Please enter email address!')</script>";
    exit();
    }

    $sql=mysql_query("select user_name from users where user_email='$email'");
     if(mysql_num_rows($sql)>=1)
       {
        $row = mysql_fetch_row($sql);
        //echo "<script>alert('Username $user_name already exist in our database, please try another one!')</script>";
        $username = $row[0];


        $subject = 'Forgotten Username';
        $message = 'Your username is: '.$username.'';
        $header = 'Header';

        if($_POST){    
        mail($email, $subject, $message, $header);
        $feedback = 'Thanks for contacting us! We will be in contact soon!';
            }
       }
     else {
     echo "<script>alert('Email doesn't exist')</script>";
     }
}
?>