PHP登录表单不起作用

时间:2015-01-27 18:34:59

标签: php

我不知道为什么我错了,但这个登录表格对我不起作用。我的登录表单给出了错误“登录详细信息不正确”!我不确定从数据库访问数据是否存在问题。

这是我的代码:

<?php
session_start();
include('dbconnect.php');


if (isset($_POST['login'])){
//  verifica daca exista date transmise
if ($_POST['log_username'] != "" && $_POST['log_pass'] != '') {


    $username = $_POST['log_username'];
    $password = $_POST['log_pass'];


    $result = mysql_query("SELECT * FROM users WHERE username = '$username' AND password = '$password'") or die ( "Error : ". mysql_error());


    if ($result || mysql_num_rows($result) < 1) {
        // daca nu, afiseaza un mesaj de eroare
        echo "Incorrect login details!";
    } else {


        $_SESSION['username'] = $username;
        $_SESSION['password'] = $password;


        echo "Autentificarea a fost efectuata cu succes.";
    }
}
}
?>

这是html代码部分:

<form action='' method='post'>                      
    <ul class="form-style-1">
        <header id="header" class="info"><h1>Login</h1></header>
        <li>
        <label>Username</label><input type="text" name="log_username" class="field-long" />
        </li>                       
        <li>
        <label>Parola</span></label><input type="password" name="log_pass" class="field-long" />
        </li>
        <br>
        <br>
        <input type='submit' value='Login' name='login'/>
    </ul>
</form>

3 个答案:

答案 0 :(得分:0)

我认为PHP代码中有拼写错误。获得$result后,可以通过if语句运行它;

if ($result || mysql_num_rows($result) < 1)

不应该

if (!$result || mysql_num_rows($result) < 1)

如果您没有得到结果(!$result) - &gt; echo out ""Incorrect login details!"

答案 1 :(得分:0)

尝试将if语句上的变量分开:

if (($result < 1) || (mysql_num_rows($result) < 1)) 
{
...
}

希望这个帮助

答案 2 :(得分:0)

改为

if (mysql_num_rows($result) < 1) {
    // daca nu, afiseaza un mesaj
}else{
}

注意:您的代码中存在严重的安全问题。在会话中保存密码,无需数据验证和SQL注入。