Делаю сайт с валидацией формы по уроку на ютубе:
На 20 минуте этого видео идет проверка валидации формы - у меня же выводит ошибку
https://youtu.be/Epej2kWxH8M?list=PLB8wmVoWIIx5vDttXncH_WXF_JjC7PIjc
Notice: Undefined variable: Module in C:\xampp\htdocs\form\account.php on line 3
1) Как я понимаю это либо переменная $Module не видима в файле account.php хотя include('form/account.php'); присутствует в файле index.php и переменная $Module должна быть видимой в файле account.php
2) Либо не корректная проверка if ($Module == 'register' and $_POST['enter'])
Прошу помощи - как убрать ошибку. Причем когда убираю из if - $Module == 'register' and то валидация успешно работает. Понимаю, что урок старый, аж 2014 года и код корявый может быть - но все же прошу у знатоков помощи.
Архивы с готовым кодом (Урок 4) находится на Яндекс-ДИСКЕ
Коды файлов:
index.php где идет определение URL
<?php
// Подключаем файл setting.php
include_once 'setting.php';
// Стартуем сессии
session_start();
// В переменную $CONNECT вносим подключение к нашей БД
$CONNECT = mysqli_connect(HOST, USER, PASSWORD, DATABASE);
// Код определяет какую страницу подгружать пользователю
// Переменная $_SERVER['REQUEST_URI'] - это глобальная переменная
// Переменная $Page - это имя страницы
// Переменная $Module - это имя модуля
// Переменная $URL_Path разбивает адрес url на части
// Переменная $URL_Parts
if ($_SERVER['REQUEST_URI'] == '/') {
$Page = 'index';
$Module = 'index';
}
else
{
$URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$URL_Parts = explode('/', trim($URL_Path, ' /'));
$Page = array_shift($URL_Parts);
if (!empty($Module)) {
$Param = array();
for ($i = 0; $i < count($URL_Parts); $i++) {
$Param[$URL_Parts[$i]] = $URL_Parts[++$i];
}
}
}
if ($Page == 'index') include('page/index.php');
else if ($Page == 'login') include('page/login.php');
else if ($Page == 'register') include('page/register.php');
else if ($Page == 'account') include('form/account.php');
function FormChars($p1) {
return nl2br(htmlspecialchars(trim($p1), ENT_QUOTES), false);
}
function Head($p1) {
echo '<!DOCTYPE html><html><head><meta charset="utf-8" /><title>'.$p1.'</title><meta name="keywords" content="" /><meta name="description" content="" /><link href="http://localhost/resource/style.css" rel="stylesheet"></head>';
}
function Menu () {
echo '<div class="MenuHead"><a href="/"><div class="Menu">Главная</div></a><a href="/register"><div class="Menu">Регистрация</div></a><a href="/login"><div class="Menu">Вход</div></a></div>';
}
function Footer () {
echo '<footer class="footer">Mr.Shift - <a href="https://www.youtube.com/channel/UCpEWlcj5rkU1H9vkIf9Lb5g" target="blank">Мой канал на You Tube</a> - Пишем свой движок на PHP</footer>';
}
?>
Файл register.php где вводят данные чтобы зарегистрироваться на сайте.
<?php Head('Главная страница') ?>
<body>
<div class="wrapper">
<div class="header"></div>
<div class="content">
<?php Menu() ?>
<div class="Page">
<h3>Заполните форму:</h3>
<form method="POST" action="/account/register">
<br><input type="text" name="login" placeholder="Логин">
<br><input type="email" name="email" required placeholder="E-mail">
<br><input type="password" name="password" required placeholder="Пароль">
<br><input type="text" name="name" required placeholder="Имя"><br>
<br><select size="1" name="country">
<option value="0">Не скажу</option>
<option value="1">Украина</option>
<option value="2">Россия</option>
<option value="3">США</option>
<option value="4">Канада</option>
</select><br>
<br><input type="file" name="avatar"><br>
<br><input type="submit" name="enter" value='Регистрация'> <input type="reset" value='Очистить'>
</form>
</div>
</div>
<?php Footer() ?>
</div>
</body>
</html>
Файл aсcount.php где идет проверка, валидация форм введенных в register.php
<?php
if ($Module == 'register' and $_POST['enter']) {
$_POST['login'] = FormChars($_POST['login']);
$_POST['email'] = FormChars($_POST['email']);
$_POST['password'] = FormChars($_POST['password']);
$_POST['name'] = FormChars($_POST['name']);
$_POST['country'] = FormChars($_POST['country']);
$_POST['avatar'] = FormChars($_POST['avatar']);
if (!$_POST['login'] or !$_POST['email'] or !$_POST['password'] or !$_POST['name']) {
exit('Ошибка валидации формы.');
}
else echo 'Валидация формы прошла успешно!';
}
?>
Спасибо всем за поддержку!