0

私はユーザー プロファイルを持つ Web サイトに取り組んでおり、サインアップ ページを完了することができました。ユーザーがそこでアカウントをアクティブにすると、ログインする権限が与えられます。

基本的にログイン スクリプトを書き出すと、Web サイトを表示すると 2 つのエラーが表示され、非常に混乱します [エラー 1]: Notice: Undefined index: loginEmail in C:\xampp\htdocs\mountain-bikers\index.php on 160 行目 [エラー 2]: 注意: 未定義のインデックス: 166 行目の C:\xampp\htdocs\mountain-bikers\index.php で覚えています return_msg=no_good

ログインphpコードは次のとおりです。

<?php

if ($_POST['loginEmail'] != "") {

include_once "includes/mysql_connection.php";

$loginEmail = $_POST['loginEmail'];
$loginPassword = $_POST['loginPassword'];
$loginRemember = $_POST['remember']; 

$loginEmail = strip_tags($loginEmail);
$loginPassword = strip_tags($loginPassword);
$loginEmail = mysql_real_escape_string($loginEmail);
$loginPassword = mysql_real_escape_string($loginPassword);

$pass = md5($loginPassword);

//make query
$sql = mysql_query("SELECT * FROM users WHERE email='$loginEmail' AND password='$loginPassword' AND activated='1'"); 
$login_check = mysql_num_rows($sql);

if($login_check > 0){ 

    while($row = mysql_fetch_array($sql)){ 

        $id = $row["id"];   
        session_register('id'); 
        $_SESSION['id'] = $id;

        $firstname = $row["firstname"];   
        session_register('firstname'); 
        $_SESSION['firstname'] = $firstname;

        $email = $row["email"];   
        session_register('email'); 
        $_SESSION['loginEmail'] = $email;

    } // close while

    // Remember Me Section Addition... if member has chosen to be remembered in the system
    if($remember == "yes"){
      setcookie("idCookie", $id, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
      setcookie("firstnameCookie", $firstname, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
      setcookie("emailCookie", $email, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
      setcookie("passwordCookie", $password, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
    }   
    $my_msg = "all_good";
    print "return_msg=$my_msg&id=$id&firstname=$firstname";

} else {
$my_msg = "no_good";
    print "return_msg=$my_msg"; 
  exit();
}


}// close if post
?>

メールとパスワードのフィールドでも未定義の変数エラーが発生します。また、ログインのvalue="<?php print "$loginEmail"; ?>"各フィールドには があります。HTML が必要な場合は、お問い合わせください。

4

1 に答える 1

1

まず、issetを確認する必要があります。

if (isset($_POST['loginEmail']) && $_POST['loginEmail'] != "") 

次に、rememberはチェックボックスであると想定します。このチェックボックスは、チェックされていない場合は値を渡しません。それも必ず設定してください...

$loginRemember = isset($_POST['remember']) ? $_POST['remember'] : false;

また、私を含む全世界がmysql_関数を二度と使用しないようにしようとしているので、mysql_関数について人々があなたに吠えるでしょう。PDOまたはmysqliを調べる必要があります...

http://php.net/manual/en/book.pdo.php

于 2012-08-31T03:51:06.937 に答える