2010-12-29 14 views
0

私はこの問題について以前に投稿しましたが、問題を絞り込んだので、これ以上の助けが必要です。以下は私が使用しているコードです。私は2つのエラーが発生している、私もラインを含むが、私は問題が何であるか分からない、私は新しいです、助けてください!PHP iniでエラーが表示される

コード:

//Checks if there is a login cookie 

if(isset($_COOKIE['ID_my_site'])) 
    //if there is, it logs you in and directes you to the members page 
{ 
    $email = $_COOKIE['ID_my_site']; 
    $pass = $_COOKIE['Key_my_site']; 
    $check = mysql_query("SELECT * FROM users WHERE email = '$email'") or die(mysql_error()); 

    while($info = mysql_fetch_array($check)) 
    { 
     if ($pass != $info['password']) 
     { 
     } 
     else 
     { 
      header("Location: home.php"); 
     } 
    } 
} 

//if the login form is submitted 

if (isset($_POST['submit'])) 
{ // if form has been submitted 
    // makes sure they filled it in 

    if(!$_POST['email'] | !$_POST['password']) 
    { 
     die('You did not fill in a required field.'); 
    } 

// checks it against the database 

    if (!get_magic_quotes_gpc()) 
    { 
     $_POST['email'] = addslashes($_POST['email']); 
    } 

    $check = mysql_query("SELECT * FROM users WHERE email = '".$_POST['email']."'") or die(mysql_error()); 

    //Gives error if user dosen't exist 

    $check2 = mysql_num_rows($check); 

    if ($check2 == 0) 
    { 
     die('That user does not exist in our database. <a href=add.php>Click Here to Register</a>'); 
    } 

    while($info = mysql_fetch_array($check)) 
    { 
     $_POST['password'] = md5($_POST['password']); 
     $_POST['password'] = $_POST['password']; 

     //gives error if the password is wrong 

     if ($_POST['password'] != $info['password']) 
     { 
      die('Incorrect password, please try again'); 
     } 
     else 
     { 
      // if login is ok then we add a cookie 
      $_POST['email'] = stripslashes($_POST['email']); 
      $hour = time() + 3600; 
      setcookie(ID_my_site, $_POST['email'], $hour); 
      setcookie(Key_my_site, $_POST['password'], $hour); 

      //then redirect them to the members area 

      header("Location: home.php"); 
     } 

    } 

} 
else 
{  
Error # 1: 
    if ($pass != $info['password']) 
Error # 2: 
    if ($_POST['password'] != $info['password']) { 
+3

正確にあなたが受け取っているエラーですか? – parent5446

+1

OT:http://bobby-tables.com/を参照するか、mysql_real_escpae_string()を参照してください。コードはmagic_quotesに依存しているようです。 – mario

+0

私は新しいスクリプトが必要だと思う、あなたは私に参考にしてください。ありがとう。 – AAA

答えて

3

は通常、あなたがそれにアクセスしようとする前に、インデックスをテストする必要があります...

何かかかわらは、一般的に見下さ(

if ((isset($info['password'])) && $info['password'] != $pass) 

OR

のような)エラーを抑制する

if (@ $info['password'] != $pass) 
+0

しかし、それは実際の問題(データベースの不一致や何かのために$ info []配列が不完全である)ではなく、症状(E_NOTICE "errors")のみを修正します。 – mario

+0

それは#1エラーを解決しました。私は新鮮なスクリプトを書くつもりだと思う。 – AAA

+0

私はそれを解決しました。あなたがSELECT *と言うクエリに気付いたら、代わりにSELECT電子メール、パスワード – AAA

関連する問題