Php 用户无法登录,怎么了?

Php 用户无法登录,怎么了?,php,login,Php,Login,好的,我试着用用户建立一个登录系统。但我的用户无法登录。这是个问题 我的登录页面: <? session_start(); include "database.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://

好的,我试着用用户建立一个登录系统。但我的用户无法登录。这是个问题

我的登录页面:

<?
session_start();

include "database.php";
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Wildsoul</title>
</head>

<body>
    <div id="welcome">
        <h3>Log ind.</h3>
<br><br>
        <p><form action="login-ok.php" method="post">
<input type="text" name="username"><br>
<input type="password" name="password"><br><br><br>
<input type="submit" name="login" value="Login">
</form></p>




                                <br /><br />

    </div>
                    </div>
    </body>
</html>

野人
日志索引。








登录确认页面:

<?
session_start();

include "database.php";
?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div id="container">
        <div id="welcome">
        <h3>Log in</h3>
        <p><?php // PHP script start.
require("config.php"); // Variabler til mysql hentes
$login = &$HTTP_POST_VARS['login'];
$_SESSION['login'] = $login; //AF rettelse

if(empty($login)) {
    echo 'You need to log in'; }
    else {

$username = &$HTTP_POST_VARS['username']; // Brugernavn fra form i login.php.
$password = &$HTTP_POST_VARS['password']; // Password fra form i login.php.

if(empty($username) OR empty($password)) { //Her tjekkes om ET af felterne er tomme.
    echo 'Et af felterne er tomme'; }   
    else { // Denne klamme starter alt script der udføres HVIS begge felter er udfyldte.

// Her åbnes for mysql-serveren og der logges ind med data fra config.php.
mysql_connect($mysql_host, $mysql_user, $mysql_pw);
mysql_select_db($mysql_db); // Der åbnes for databasen defineret i config.php.


 $result_pw = mysql_query("select password from users where brugernavn = '$username'") or die (mysql_error()); 
$result_user = mysql_query("select brugernavn from users where password = '$password'") or die (mysql_error()); 


// Her sker det egentlige tjek om brugernavn og password er dem som står i databasen.
// Der oprettes først et array med de data vi fik fra mysql før.
$array_user = mysql_fetch_array($result_user); // Først et med brugernavn.
$array_pw = mysql_fetch_array($result_pw); // Og et med password.
// Her tjeckes så om både array med brugernavn og password indeholder data
// magen til dem skrevet i felterne i html-formen
// PASSWORD KONTROL
if($array_user['username'] == $username AND $array_pw['password'] == $password) {
  echo 'correct password. <a href="http://wildsoul.dk/indeks.php">Klik her</a>.'; // Brugernavn og password passede!!
$_SESSION['username'] = $username; //AF rettelse
$_SESSION['password'] = $password; //AF rettelse 

} // Her lukker vi condition TRUE fra password kontrol

else { // Her starter condition FALSE på password kontrol
echo 'forkert password';
} // Her lukkes condition FALSE på password kontrol.

} // Her lukker vi for condition FALSE på tomme-felter-tjek.
}
?>
</p>


                                <br /><br />

    </div>
                    </div>
    </body>
</html>

登录



当我必须检查用户是否已登录时,我有以下代码:

<?
session_start();

include "database.php";
?>

<? if(isset($_SESSION['username']) && isset($_SESSION['password'])){ ?>

bla bla bla

<?}
else{
echo 'You have to log in'; }
?>

呜呜呜呜

我哪里出错了?

看起来您有逻辑问题,在实际尝试验证用户之前,您正在检查$login。删除它,然后尝试验证它们,然后设置会话变量

因此,请删除if(空($login))。。。只需连接到数据库等。如果这不起作用,请尝试编辑您的帖子,说明除了“它不起作用”之外,您还遇到了哪些问题:)


  • 您在第一个
    之前有空格,只是对发布的代码进行了简要概述:$HTTP\u POST\u VARS已被弃用,请使用$\u POST代替。您的用户在尝试登录时会收到什么消息?另外,在$\u会话中存储用户名和密码可能也不安全。更好的选择是为他们的访问创建一个唯一的会话id,并使用该id验证会话是否有效。会话id可以绑定到访问者的IP地址,例如,以确保会话不会被其他人劫持。。。作为后续,我已经改变了