0

パスワードが正しいかどうかを確認した後、ユーザーが自分のアカウントを削除できるようにするアカウント削除ページがありますが、問題は、ユーザーが間違ったパスワードを挿入すると、システムがパスワードが正しくないというエラー メッセージを表示することです。ユーザーが正しいパスワードを入力しても、システムはユーザーに通知するメッセージを表示しません。誰でも私を助けることができますか?

delete_account.php

<?php 
session_start();
$msgToUser="";
if(@!$_SESSION['user_id'])
{
    $msgToUser= '<br /><br /><font color = "#FF000">Only registered users can delete their account</font><p><a href = "register.php">Join Here</a></p>';
    exit();
}
$id = $_SESSION['user_id'];

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


        $del_acct_pass = $_POST['del_account_pass'];
         require_once('include/connect.php'); 
        $check_pass = mysql_query("SELECT password FROM user WHERE password = '$del_acct_pass' AND user_id ='$id'")or die(mysql_error());
        $check_pass_num = mysql_num_rows($check_pass);
        if($check_pass_num>0)
        {
        /*$sql = mysql_query("SELECT * FROM user  WHERE user_id = '$id'")or die(mysql_error());
        $pass_check_num = mysql_num_rows($sql);*/


            $pic1=("members/$id/image01.jpg");
            if(file_exists($pic1))
            { 
                  unlink($pic1);

            }

            $dir = "members/$id";
            rmdir($dir);

            $sqltable1 = mysql_query("DELETE FROM user WHERE user_id ='$id'")or die(mysql_error());
            $sqltable1 = mysql_query("DELETE FROM blabing WHERE u_id ='$id'")or die(mysql_error());
            $msgToUser="<h3 style='color:#99FF33'>YOUR Account Has Been Deleted!!!</h3>";
            session_destroy();



        }
        $msgToUser = "<h3 style='color:#CC0000'>YOU must Write the correct Password</h3>";

}



?>
  <table width="70%" align="center" cellpadding="6">
          <form action="delete_account.php" method="post" name="delete_form" >
            <tr>
              <td bgcolor="#CCCCCC">Delete Your Account </td>
            </tr>
            <tr>
              <td>Please enter Your current Password to proceed with account deletion</td>
            </tr>
            <tr>
              <td><input type="password" name="del_account_pass" id="del_account_pass" /></td>
            </tr>
            <tr>

              <td><input type="submit" name="delete" id="delete" value="Delete Account" /></td>
            </tr>
            <tr>
            <td><?php echo $msgToUser; ?></td>
            </tr>
            </form>
          </table>
4

1 に答える 1

1

$msgToUser を常に誤ったパスワードに関するメッセージに常に設定しています。

アカウントを削除しても実行されます。

おそらくElse句でそれが必要です

} else {
    $msgToUser = "<h3 style='color:#CC0000'>YOU must Write the correct Password</h3>";
}

ところで、セキュリティについて調べる必要がある場合、コードは SQL インジェクションに対して脆弱です。

于 2013-05-12T14:02:06.857 に答える