2014-04-10 5 views
0

제목이 약간 잘못 될 수도 있지만 여기에서 설명하려고합니다. 기본적으로 웹 사이트를 '오프라인 모드'로 설정하면 관리자가 암호로 로그인 할 수있는 섹션이 생깁니다. (그들은 이 아니며은 계정으로 로그인하지 않습니다.)이 예제에서는 암호가 'password'입니다. 사용자가 올바른 암호를 입력하면 웹 페이지로 리다이렉트해야합니다. 실제로는 올바르지 않은 암호 인 'Incorrect password'가 표시됩니다.비밀번호로 웹 페이지 보호

코드는 내가 말할 수있는 것처럼 나를 구성합니다.

<div class="backdroplogin"> 
    <h2>Login to your account:</h2> 
    <form action="/Offline" method="GET"> 
    <input type ="password" name="password_login" size="25" Value="" /> 
    <input type="submit" name="login" value="Login" /> 
</div> 
    </form> 

PHP : 어떤 도움

//ADMIN LOGIN 
$password = "AbCd0987connekt£*^%"; 

if (isset($_GET["password_login"])) { 
    $password_login = $_GET["password_login"]; 

    if ($password_login == $password) { 
    header("Location:/Admin/Panel"); 
} else { 
    echo "Incorrect password"; 
} 
} 

덕분에 내가 PHP를

HTML 학습의 초기 단계에 아직도이기 때문에 나는 작동하지이 예상.

+3

우선 결코 패스워드를 입력하지 마십시오 !!!! – Svetoslav

+1

... 평범한 텍스트로 언급하지 않기 위해서 * –

+0

다른 보호 수단으로는 IP 식별자가 있습니다. 사용자가/Admin/Panel에 액세스하고 나열된 IP가 없으면 리다이렉트됩니다 : –

답변

1

Svetlio가 말한 것처럼 .. get 메소드를 사용하여 암호를 보내는 습관이 좋지 않습니다. 대신 method="post"을 html 형식으로 사용하고 $_POST["password_login"]을 PHP에 사용하십시오. 텍스트에서

당신이 보낸 암호가 "AbCd0987connekt£*^%"와 동일한 경우 PHP에서 확인할하는 동안 암호에 넣어 경우 "AbCd0987connekt£*^%"를 사용해야 있도록,이 도구의 암호로 "password"를 사용하는 말 ... 또는 한 당신은 당신이 "$password"

를 사용하는 의미 그냥 다른 팁 : 당신의 코드 시도의 가독성 능력 :

0

을 들여 당신은 암호가 올바른지 확인하고 세션 변수에 플래그를 둘 수 있었다. 그런 다음 관리자 페이지에서 세션 플래그가 올바른지 확인하십시오.

if($_SESSION['IsAdmin'] === true { 
    //load/redirect to page 
} else { 
    die("You aren't an admin."); 
} 

다른 사람들과 마찬가지로 - 암호로 GET을 사용하지 말고 확실히 일반 텍스트로 전달하지 마십시오.

0

의견에 동의합니다. 그러나 귀하의 질문에 대답하는 것 :

모든 것이 스크립트에서 올바르게 작동합니다. 그러나 "암호는이 예제의 경우 '암호'라고 할 때 혼란 스럽습니다. 암호는 정확히 다음과 같습니다. AbCd0987connekt £ *^%에서 코드를 작성했습니다. 내 플랫폼에 코드를 복사 했으므로 (변경된 동작) 원하는대로 작동합니다.

관련 문제