2014-07-17 73 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> 

感謝。