Yardım PHP Giriş düzgün çalışmıyor?

3 Cevap php

Tamam ben bunu sadece dönen neden sürekli bana bildirin eğer sormak için, burada ben PHP5 ve mysqli kullanıyorum, bir oturum açma komut dosyası oluşturmak istiyorum ben çalışıyorum "hatası: Kullanıcı adı ve şifre bizim db herhangi eşleşmiyor"? Ben bir hesap oluşturduk ve açıkça yok alıyorsunuz? Muhtemelen ben kaçırdım bariz bir şey. İşte kod ...

Form ibraz edilmiş ise / / Giriş

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

//Check if username and password are empty
if ($_POST['username']!='' && $_POST['password']!='') 
{       
    //Create query to check username and password to database
    $validate_user = $mysqli->query('SELECT id, username, password, active FROM users WHERE ="'.$mysqli->real_escape_string(md5($_POST['username'])).' AND password = "'.$mysqli->real_escape_string(md5($_POST['password'])).'"');

    //We check if the query returns true
    if ($validate_user->num_rows == 1)
    {
        $row = $validate_user->fetch_assoc();

        //Check if the user has activated there account
        if ($row['activated'] == 1)
        {
            $_SESSION['id'] = $row['id'];
            $_SESSION['logged_in'] = true;
            Header('Location: ../main/index.php');
        }
        //Show this error if activation returns as 0
        else {
            $error = '<p class="error">Please activate your account.</p>';
        }
    }
        //Show this error if the details matched any in the db
        else {      
            $error = '<p class="error">Your username and password are not in our database!</p>';        
        }
    }
        //Show this error if the username and password field have not been entered
        else {
            $error = '<p class="error">Please enter your username and password.</p>';
        }

}

3 Cevap

Sizin sorgu, basitleştirilmiş gibi görünüyor:

SEÇ kimliği, kullanıcı adı, parola, kullanıcılara DAN aktif WHERE = "'. Md5 ().' AND password = '". Md5 ().'" ')

Ben bu olmalıdır eminim:

SEÇ id, username, password, username = "kullanıcı DAN aktif '. .' AND password = '". Md5 ().'" ')

Satır:

$validate_user = $mysqli->query('SELECT id, username, password, active FROM users WHERE ="'.$mysqli->real_escape_string(md5($_POST['username'])).' AND password = "'.$mysqli->real_escape_string(md5($_POST['password'])).'"');

Muhtemelen olmalıdır:

$validate_user = $mysqli->query('SELECT id, username, password, active FROM users WHERE username ="'.$mysqli->real_escape_string(md5($_POST['username'])).' AND password = "'.$mysqli->real_escape_string(md5($_POST['password'])).'"');

Sorgu içermiyor "username =" WHERE, yani sonra muhtemelen olmalıdır:

$mysqli->query('SELECT id, username, password, active FROM users WHERE username ="'.$mysqli->real_escape_string(md5($_POST['username'])).' AND password = "'.$mysqli->real_escape_string(md5($_POST['password'])).'"');