2010-12-29 14 views
0

Ich habe eine Frage dazu früher, aber brauche mehr Hilfe mit diesem, wie ich das Problem eingegrenzt habe. Unten ist der Code, den ich verwende. Ich bekomme zwei Fehler, ich habe auch die Zeilen, aber ich weiß nicht, was das Problem ist, ich bin neu, bitte helfen!PHP ini zeigt Fehler

Der Code:

//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

Was? genau sind die Fehler, die Sie erhalten? – parent5446

+1

OT: aber Sie sollten auch http://bobby-tables.com/ konsultieren oder lesen Sie auf mysql_real_escpae_string() - Ihr Code beruht scheinbar auf magic_quotes. – mario

+0

Ich denke ich brauche ein neues Skript, kannst du mich bitte auf eine Referenz verweisen. Vielen Dank. – AAA

Antwort

3

Normalerweise müssen Sie den Index testen, bevor Sie versuchen, darauf zuzugreifen ...

So etwas wie

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

OR (obwohl normalerweise verpönt) unterdrücken Sie den Fehler

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

Das wird zwar nur das Symptom beheben (E_NOTICE "errors"), aber nicht das eigentliche Problem (unvollständiges $ info [] Array aufgrund von Datenbank-Mismatch oder etwas). – mario

+0

Das löste den Fehler # 1. Ich denke, ich werde ein neues Skript schreiben. – AAA

+0

Ich löste es, wenn Sie in den Abfragen SELECT * finden, stattdessen versuchte ich SELECT E-Mail, Passwort – AAA