2014-07-17 74 views
1

我输入用户名=“管理员” PW ='admin'on我的login.php说的价值观上中mysqladmin登录注销脚本问题用PHP在mysqli的

真实,它停在check_login.php后,我不能看到什么。

谢谢你的回答。

这里是代码

check_login.php

 <?php 
define(DOC_ROOT,dirname(__FILE__)); // To properly get the config.php file 
$username = $_POST['username']; //Set UserName 
$password = $_POST['password']; //Set Password 
$msg =''; 
if(isset($username, $password)) { 
    ob_start(); 
    include(DOC_ROOT.'/config.php'); //Initiate the MySQL connection 
    // To protect MySQL injection (more detail about MySQL injection) 
    $myusername = stripslashes($username); 
    $mypassword = stripslashes($password); 
    $myusername = mysqli_real_escape_string($dbC, $myusername); 
    $mypassword = mysqli_real_escape_string($dbC, $mypassword); 
    $sql="SELECT * FROM login_admin WHERE user_name='$myusername' and user_pass=SHA('$mypassword')"; 
    $result=mysqli_query($dbC, $sql); 
    // Mysql_num_row is counting table row 
    $count=mysqli_num_rows($result); 
    // If result matched $myusername and $mypassword, table row must be 1 row 
    if($count==1){ 
     // Register $myusername, $mypassword and redirect to file "admin.php" 
     session_register("admin"); 
     session_register("password"); 
     $_SESSION['name']= $myusername; 
     header("location:admin.php"); 
    } 
    else { 
     $msg = "Wrong Username or Password. Please retry"; 
     header("location:login.php?msg=$msg"); 
    } 
    ob_end_flush(); 
} 
else { 
    header("location:login.php?msg=Please enter some username and password"); 
} 
?> 

admin.php的

<?php 
session_start(); //Start the session 
define(ADMIN,$_SESSION['name']); //Get the user name from the previously registered super global variable 
if(!session_is_registered("admin")){ //If session not registered 
header("location:login.php"); // Redirect to login.php page 
} 
else //Continue to current page 
header('Content-Type: text/html; charset=utf-8'); 
?> 
<!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" xml:lang="en" lang="en"> 
<head> 
    <title>Welcome To Admin Page Demonstration</title> 
</head> 
<body> 
    <h1>Welcome To Admin Page <?php echo ADMIN /*Echo the username */ ?></h1> 
    <p><a href="logout.php">Logout</a></p> <!-- A link for the logout page --> 
    <p>Put Admin Contents</p> 
</body> 
</html> 

我tryed东西找到我写的错误回声 “asdasd”在我的check_login.php上,我看到“asdasd”,直到21.线开始于sessi on_register(...)。我认为这是我的问题,但我不知道如何使用它。

+0

查看PHP中启用错误报告。它会让你的生活变得更加容易,并给你详细的错误信息:http://php.net/manual/en/function.error-reporting.php另外,检查你的PHP日志文件在服务器上。它会告诉你到底是什么问题。哦,'session_register'已被弃用 - 使用'$ _SESSION'代替 – Basic

+0

包括你的config.php也让我们看到它 –

+0

'session_register()'从5.3开始已被弃用我相信。 –

回答

1

一两个问题...

你定义$username,然后做session_register("admin")

或...你正在PHP 5.4上运行,其中no longer implementssession_register()

代替

session_register("password") 

使用

$_SESSION['password'] = $password; 
+0

感谢它修复。 – eremir

+0

为什么不接受?我错了吗? – Basic

0

我还有问题,我不能检查登录管理员page.I可以打开admin.php的没有用户名和PW。

这是我改变check_login.php

<?php 


error_reporting(E_ALL); 
     ini_set('display_errors', 1); 
define(DOC_ROOT,dirname(__FILE__)); // To properly get the config.php file 
$username = $_POST['username']; //Set UserName 
$password = $_POST['password']; //Set Password 
$msg =''; 
if(isset($username, $password)) { 
    ob_start(); 
    include(DOC_ROOT.'/config.php'); //Initiate the MySQL connection 
    // To protect MySQL injection (more detail about MySQL injection) 
    $myusername = stripslashes($username); 
    $mypassword = stripslashes($password); 
    $myusername = mysqli_real_escape_string($dbC, $myusername); 
    $mypassword = mysqli_real_escape_string($dbC, $mypassword); 
    $sql="SELECT * FROM login_admin WHERE user_name='$myusername' and user_pass=SHA('$mypassword')"; 
    $result=mysqli_query($dbC, $sql); 
    // Mysql_num_row is counting table row 
    $count=mysqli_num_rows($result); 
    // If result matched $myusername and $mypassword, table row must be 1 row 
    if($count==1){ 
     // Register $myusername, $mypassword and redirect to file "admin.php" 
     $_SESSION['admin'] = $admin; 
     error_reporting(E_ALL); 
     ini_set('display_errors', 1); 
     $_SESSION['password'] = $password; 
     $_SESSION['name']= $myusername; 
     header("location:admin.php"); 
    } 
    else { 
     $msg = "Wrong Username or Password. Please retry"; 
     header("location:login.php?msg=$msg"); 
    } 
    ob_end_flush(); 
} 
else { 
    header("location:login.php?msg=Please enter some username and password"); 
} 
?> 

这里是admin.php的

<?php 
error_reporting(E_ALL); 
session_start(); //Start the session 
define(ADMIN,$_SESSION['name']); //Get the user name from the previously registered super global variable 
// if(!isset($_SESSION['admin']));{ //If session not registered 
if(isset($_SESSION['admin']) && $_SESSION['admin'] == '0'){ 

header('location:login.php'); // Redirect to login.php page 
} 
else //Continue to current page 

header('Content-Type: text/html; charset=utf-8'); 

?> 
<!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' xml:lang="en" lang="en"> 
<head> 
    <title>Welcome To Admin Page Demonstration</title> 
</head> 
<body> 
    <h1>Welcome To Admin Page <?php echo ADMIN /*Echo the username */ ?></h1> 
    <p><a href="logout.php">Logout</a></p> <!-- A link for the logout page --> 
    <p>Put Admin Contents</p> 
</body> 
</html> 

感谢。