Я пытаюсь создать базовый логин / регистрацию для веб-сайта с использованием PHP. Приведенный ниже код показывает, что мне нужен config.php, который я тестировал, и он плавно подключается к моему сайту. Что происходит, когда я захожу на страницу и ввожу значения, независимо от того, что я ввожу для электронной почты и пароля, они говорят, что они всегда совпадают. Когда я пытаюсь вывести значения email1 и email2, ничего не выводится. Я думаю, что форма не собирает данные, когда вы нажимаете отправить. Если бы кто-то мог видеть, что я делаю неправильно, это было бы так ценно!
<?php
require('config.php');
if(isset($_POST['submit'])) {
$email1 = $POST['email1'];
$email2 = $POST['email2'];
$pass1 = $POST['pass1'];
$pass2 = $POST['pass2'];
if($email1 == $email2)
{
echo "Emails match.<br />";
if($pass1 == $pass2)
{
echo "Passwords match.<br />";
}
else
{
echo "Sorry, your passwords do not match.<br />";
exit();
}
}
else
{
echo "Sorry, your emails do not match.<br /><br />";
}
}
else {
$form = <<<EOT
<form action="register.php" method="POST">
First Name: <input type="text" name="name" /><br />
Last Name: <input type = "text" name = "lname" /><br />
User Name: <input type = "text" name = "uname" /><br />
Email: <input type = "text" name = "email1" /><br />
Confirm Email: <input type = "text" name = "email2" /><br />
Password: <input type = "password" name = "pass1" /><br />
Confirm Password: <input type = "password" name = "pass2" /><br />
<input type = "submit" value = "Register" name = "submit" />
</form>
EOT;
echo $form;
}
?>
Проблема в том, что вы забыли подчеркивания для всех $POST
«s
Измените их все на $_POST
Это суперглобальный 8 из 9 из которых требуют подчеркивания, в отличие от $GLOBALS
$_POST
<=== Измените их все на это.Имел Отчет об ошибках было установлено / включено, вы бы получили сообщение об ошибке, и несколько раз:
Примечание: неопределенная переменная: POST in …
Чтобы включить его, вы можете добавить следующее после открытия <?php
тег:
error_reporting(E_ALL);
ini_set('display_errors', 1);
N.B .: Отчеты об ошибках должны выполняться только на стадии подготовки, а не на производстве.
Примечание:
Так как ты очевидно запустив весь код с той же страницы, вы можете просто изменить action="register.php"
в action=""
если ты хочешь.
Пароли
Я также заметил, что вы можете хранить пароли в виде простого текста. Это не рекомендуется.
Используйте одно из следующего:
crypt()
bcrypt()
scrypt()
password_hash()
функция.Другие ссылки:
Других решений пока нет …