0

ユーザーが有効な電子メール アドレスを入力できる [パスワードを忘れた場合] フォームがあります。ユーザーにメールを送信するのに問題はありません。唯一の問題は、データベースからアカウント情報 (ユーザー名とパスワード) をユーザーに送信して、ユーザー名とパスワードを知ってもらうことです。しかし、ユーザーの受信トレイにアカウント情報を表示する方法に苦労しているようです。私はPHPが初めてで、それを理解する方法を教えていただければ幸いです。

これが私のコードです:

編集:

<?php
if (isset($_POST['submit'])) {
    $email_from = "example@domain.com";
    $datesent = date('D m/d/Y, g:i A');
    $error_message = "";
    $msg = "";
    $subject = "Some text here";


    //some validations here

    $query = "Select * from user_information where EMAIL_ADDRESS = '".$_POST['email']."'";
    $result = mysql_query($query) or die("ERROR: ".mysql_error());
    $check = mysql_num_rows($result);
    if ($check == 0) {
        $row = mysql_fetch_assoc($result);
        $username = $row['USERNAME'];
        $password = $row['PASSWORD'];
        $fname = $row['FIRST_NAME'];
    }
    ob_start(); //Turn on output buffering
?>

    Hi <? php echo $fname; ?>!

        Here is your Account information:

        Username: <? php echo $username; ?>
        Password: <? php echo $password; ?>

    //some text here

<?php
    $message = ob_get_contents();
    ob_get_clean();
    $email_message = "From: ".clean_string($email_from)."\n";
    $email_message. = "Sent: ".clean_string($datesent)."\n";
    $email_message. = "Subject: ".clean_string($subject)."\n";
    $email_message. = "\n".clean_string($message)."\n";
    $headers = 'From: '.$email_from."\r\n";
    $headers. = 'To: '.$email."\r\n";
    $headers. = 'Sent: '.$datesent."\r\n";
    $email_sent = @mail($sendto, $subject, $email_message, $headers);
} ?>
4

4 に答える 4

0

ソースファイル全体を投稿したと思います。その場合、session_start()ファイルの先頭に a がありません。これがないとアクセスでき$_SESSIONません。それとも、代わりに使用$_POSTして書きたかったのでしょうか?$_SESSION

于 2013-02-08T08:10:20.323 に答える
0

最初にセッションを開始してから、セッション変数のみを使用できます。データベースから配列をフェッチするときは、このように行数をゼロにすることはできません

 if ($check != 0) {
    $row = mysql_fetch_assoc($result);
    $username = $row['USERNAME'];
    $password = $row['PASSWORD'];
    $fname = $row['FIRST_NAME'];
}

このコードにも間違いがあります

  ob_start(); //Turn on output buffering
  ?>
  Hi <?php echo $fname; ?>!

    Here is your Account information:

    Username: <?php echo $username; ?>
    Password: <?php echo $password; ?>

//some text here

あなたは代わりに使用<?phpしていません<? php。それが役立つことを願っています。

于 2013-02-08T08:43:23.940 に答える
0

変化する

if ($check == 0)

if ($check > 0)

注: $_POST 、 $_GET 変数をサニタイズせずに使用しないでください。$_POST および $_GET 変数を検証およびサニタイズしないと、mysql_query を使用すると SQL インジェクションが発生しやすくなります。PHP_PDO を使用する

また

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

 if (isset($_POST['submit'])) {
于 2013-02-08T08:33:42.053 に答える
0

次のコードは機能しません。

$check = mysql_num_rows($result);
if($check==0){
    ...
 }

次のようにする必要があります。

$check = mysql_num_rows($result);
if($check != false){
    ...
 }

結果の行がない場合にのみ、ユーザー名、パスワード、および fname を設定します

于 2013-02-08T07:56:39.620 に答える