2016-08-15 9 views
0

안녕하세요,이 주제의 모든 독자 들께! 나는 어리석은 것처럼 들리지만, PHP를 사용하여 간단한 등록 및 로그인 양식을 만들고 싶습니다. 그것은 웹 사이트가 아니므로 안전하지 않아야하며 이름과 암호가 영원히 지속되는 것을 원하지 않습니다. 나는 또한 초보자이고 PHP의 기초만을 알고 싶다. 먼저 쿠키가 있는지 확인하기 위해 html 로그인 양식을 작성한 다음 로그인 용 PHP를 작성하기 시작했습니다. 등록은 나중에했다. 다음은 코드입니다 :PHP 쿠키 등록 및 로그인 양식

<?php 
setcookie($usr,$pwd,time() + (86400 * 30),'/'); 
setcookie($pwd,$usr,time() + (86400 * 30),'/'); 
If(isset($_POST['submitForm'])) { 
    $usr = $_POST['usr']; 
    $pwd = $_POST['pwd']; 

    If(isset($_COOKIE[$usr]) && isset($_COOKIE[$pwd])) { 

    } 
    else { 
     die('User has not been registered or wrong username or password.'); 
    } 
} 
?> 

당신은 내가 '이름'의 약자은 $ USR 변수와 '비밀번호', 모두 쿠키를 사용하는 의미 $ PWD를 ACESS하려고 볼 수 있듯이.

<form method="POST" action="logged.php" style="text-align: center;"> 

<h1>Log In Page of Forum</h1> 

<input type="text" name="usr" placeholder="Username"> 

<br/><br/> 
<input type="password" name="pwd" placeholder="Password"> 

<br/><br/> 
<input type="submit" name="submitForm" value="Log in"> 

<br/> 
</form> 

예 : 여기

는 HTML 코드입니다. PHP가 파일에 있습니다.

터지는 된 오류는 다음과 같습니다

User has not been registered or wrong username or password. 

나는이 PHP의 더 나은 이해를 만들기 위해 않고 심각하게 뭔가에이 기능을 사용하지 않을 :

Notice: Undefined variable: usr in logged.php on line 2 

Notice: Undefined variable: pwd in logged.php on line 2 

Notice: Undefined variable: pwd in logged.php on line 3 

Notice: Undefined variable: usr in logged.php on line 3 

하지만 텍스트가 계속 표시 .

아무도 내 코드에 어떤 문제가 있다고 말할 수 있습니까? 미리 감사드립니다. ;)

답변

0

쿠키 호출이 잘못되었습니다. 쿠키에는 고정 된 이름을 사용해야합니다. 사용자가 제공 한 (임의의) 사용자 이름을 사용하고 있습니다.

이 작동합니다 :

대신 fred=hunter42을 생산하고 당신이 가지고있는

setcookie($usr, $pwd, ...) 

,의, 쿠키 ($_COOKIE['user'] => 'fred')로 user=fred을 생산

setcookie('user', $user, ....); 

.

사용자가 사용자 이름을 알지 못하기 때문에 NO 사용자 이름을 검색하기 위해 $ _COOKIE에서 사용할 키를 알고 있어야합니다. $_COOKIE['ok what is the username?']?

+0

게다가 사용 후 2 줄까지 만들지 않은 변수를 사용하여 쿠키를 만들 수 없습니다. – RiggsFolly

+0

죄송합니다. 초기 튜토리얼 (고정 된 이름을 가진 것)에서 알았지 만, 나는 시도하고 싶었고, 심지어 변수로도 작동 할 것이라고 생각했다. Marc B, 감사합니다. ;) –