我不知道为什么我错了,但这个登录表格对我不起作用。我的登录表单给出了错误“登录详细信息不正确”!我不确定从数据库访问数据是否存在问题。
这是我的代码:
<?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>
答案 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注入。