Вход для PHP / MySQL

Я пытаюсь создать простую форму входа.

login.php

<?php include("config.php"); session_start(); if($_SERVER["REQUEST_METHOD"] == "POST") { $myusername=addslashes($_POST['username']); $mypassword=addslashes($_POST['password']); $sql="SELECT id FROM login_test WHERE username='$myusername' and password='$mypassword'"; $result=mysql_query($sql); $row=mysql_fetch_array($result); $active=$row['active']; $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1) { session_register("myusername"); $_SESSION['login_user']=$myusername; //echo $_SESSION['login_user']; header("location: welcome.php"); } else { $error="Your Login Name or Password is invalid"; } } ?> <!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" /> <title>Login Page</title> <style type="text/css"> body { font-family:Arial, Helvetica, sans-serif; font-size:14px; } label { font-weight:bold; width:100px; font-size:14px; } .box { border:#666666 solid 1px; } </style> </head> <body bgcolor="#FFFFFF"> <div style="font-weight:bold; margin-bottom:10px">Demo Login Details -> Username : <a href="#">test</a> Password : <a href="#">test</a></div> <div align="center"> <div style="width:300px; border: solid 1px #333333; " align="left"> <div style="background-color:#333333; color:#FFFFFF; padding:3px;"><b>Login</b></div> <div style="margin:30px"> <form action="" method="post"> <label>UserName :</label><input type="text" name="username" class="box"/><br /><br /> <label>Password :</label><input type="password" name="password" class="box" /><br/><br /> <input type="submit" value=" Submit "/><br /> </form> <div style="font-size:11px; color:#cc0000; margin-top:10px"><?php echo $error; ?></div> </div> </div> </div> </body> </html> 

lock.php

 <?php include('config.php'); session_start(); $user_check=$_SESSION['login_user']; $ses_sql=mysql_query("SELECT username FROM login_test WHERE username='$user_check' "); $row=mysql_fetch_array($ses_sql); $login_session=$row['username']; if(!isset($login_session)) { header("Location: login.php"); } ?> в <?php include('config.php'); session_start(); $user_check=$_SESSION['login_user']; $ses_sql=mysql_query("SELECT username FROM login_test WHERE username='$user_check' "); $row=mysql_fetch_array($ses_sql); $login_session=$row['username']; if(!isset($login_session)) { header("Location: login.php"); } ?> 

welcome.php

 <?php include('lock.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" /> <title>Welcome </title> </head> <body> <h1>Welcome <?php echo $login_session; ?></h1> <h2>Login succesfull</h2> <h2><a href="logout.php">Sign Out</a></h2> </body> </html> в <?php include('lock.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" /> <title>Welcome </title> </head> <body> <h1>Welcome <?php echo $login_session; ?></h1> <h2>Login succesfull</h2> <h2><a href="logout.php">Sign Out</a></h2> </body> </html> 

Проблема в том, что он перенаправляет обратно на login.php, lock.php, я не уверен, что не так. Когда я ввожу неправильный пароль пользователя, он правильно выводит сообщение

Related of "Вход для PHP / MySQL"

проблема здесь

 if($count==1) { session_register("myusername"); ^ // this is deprecated $_SESSION['login_user']=$myusername; //echo $_SESSION['login_user']; header("location: welcome.php"); } 

не используйте session_register он устарел

используйте его напрямую, используя этот код

 $_SESSION['login_user']="myusername"; 

try !empty() вместо isset() на lock.php