2013-03-23 4 views
0

이 코드의 문제점은 무엇입니까?

Login.html :

<?php 
session_start(); 
if (isset($_SESSION['password'])) { 
    header("location:admin.php"); 
    } else { 

echo "<html> 
<head> 
<title> 
FLG iRadio Station 
</title> 
<link rel='stylesheet' type='text/css' href='css/main.css' /> 
</head> 
<body> 
<center> 
TO LOGIN, SUBMIT PASSWORD 
<form name='login' id='login' method='POST' action=logincheck.php> 
<input type='password' NAME='password' id='password' maxlength='15' /> 
<input type='submit' value='Submit Password'/> 
</form> 
</center> 
</body> 
</html>"; 

    } 
?> 

logincheck.php :

<?php 
    $password = $_POST['password']; 
    if($password == "flgpdrii"){ 
    session_register("password"); 
    header("location:admin.php"); 
    } 
    else 
    { 
    echo "Wrong Password! <a href='login.html'>Login again</a>"; 
    } 
?> 

admin.php :

<?php 
session_start(); 
if (isset($_SESSION['password'])) { 
     echo "Welcome Admin"; 
    } else { 
     echo "Login <a href='login.html'>here</a>"; 
    } 
    echo $_SESSION['password']; 
?> 

및 logout.php :

<?php 

// Inialize session 
session_start(); 

// Delete certain session 
unset($_SESSION['username']); 
// Delete all session variables 
session_destroy(); 

// Jump to login page 
header('Location: login.html'); 
?> 
,

올바른 암호를 입력하면 "여기에 로그인하십시오"와 함께 admin.php로 리디렉션됩니다. "관리자 환영"

누구든지 도와 드릴 수 있습니까?

+1

테스트 해 보셨습니까? 리디렉션하는 대신 다양한 값을 에코합니다. –

+0

왜 비밀번호 필드에'maxlength'를 두는가?! – ThiefMaster

+3

session_register가 사용되지 않으며 파일 중 하나에서 session_start가 누락됩니다. – mario

답변

0

두 가지가 수정 될 필요가 ..

1) Login.php로 저장 Login.html 당신이 PHP 코드를 사용하고 있기 때문이다. 가 session_register는 감가 상각

2) 편집 Logincheck.php

<?php 
    session_start(); 
    $password = $_POST['password']; 
    if($password == "flgpdrii"){ 
    //session_register("password"); 
    $_SESSION['password'] = $password; 
    header("location:admin.php"); 
    } 
    else 
    { 
    echo "Wrong Password! <a href='login.html'>Login again</a>"; 
    } 
?> 

아래로, 더 잘 피할 수 있습니다.

관련 문제