2016-08-15 4 views
0

Привет всем читателям этой темы! Я знаю, что это звучит глупо, но я хочу сделать некоторые простые формы регистрации и регистрации, используя php. Это не для веб-сайта, поэтому он не должен быть безопасным, и я не хочу, чтобы имена и пароли длились вечно. Я также хочу указать, что я новичок, и я знаю только основы php. Сначала я начал писать форму входа в html, а затем php для входа в систему, чтобы проверить, есть ли какой-либо cookie. Регистрация была позже. Вот код:PHP Cookies Регистрация и форма регистрации

<?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.'); 
    } 
} 
?> 

Как вы можете видеть, что я пытался Асесс $ PWD, который выступает за «пароль» с переменной $ USR, что означает «имя пользователя», как с помощью печенья.

Вот HTML код:

<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> 

Да. 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 

Но текст все еще отображается:

User has not been registered or wrong username or password. 

Я делаю это, чтобы лучше понять PHP и не использовать это в чем-то серьезно ,

Может ли кто-нибудь сказать мне, что не так с моим кодом? Я благодарю вас заранее. ;)

ответ

0

Ваши звонки с печеньем неверны. Вы должны использовать ФИКСИРОВАННОЕ имя для файлов cookie. Вы используете (случайное) имя пользователя, предоставленного пользователем.

Это будет работать:

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

который производит user=fred как печенье ($_COOKIE['user'] => 'fred'), вместо

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

у вас есть, который производит fred=hunter42.

Поскольку вы не знаете, какое имя пользователя находится на возврате пользователя, у вас есть NO Идея, какой ключ использовать в $ _COOKIE для извлечения их имени пользователя. $_COOKIE['ok what is the username?']?

+0

Плюс вы не можете создать куки-файл, используя переменную, которую вы не создали, до тех пор, пока она не будет использована до двух строк. – RiggsFolly

+0

К сожалению! Я знал это из раннего учебника (вещь с фиксированным именем), но я просто хотел попробовать, и я даже подумал, что он будет работать и с переменной. Спасибо, Марк Б, ты сохранил мое обучение. ;) –