Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Ошибка в области переменной или неправильный if, Ругается на if ($Module == 'register' and $_POST[
novamap  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 43449
На форуме: 2 месяца, 9 дней
Карма:




Добрый вечер. Использую последнюю версию XAMPP c версией PHP 7.0.9

Делаю сайт с валидацией формы по уроку на ютубе:

https://youtu.be/Epej2kWxH8M?list=PLB8wmVoWIIx5vDttXncH_WXF_JjC7PIjc
На 20 минуте этого видео идет проверка валидации формы - у меня же выводит ошибку
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 'Валидация формы прошла успешно!';

}

?>



Спасибо всем за поддержку!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Stave  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 138
Пользователь №: 40254
На форуме: 2 года, 3 месяца, 6 дней
Карма: 4




Прошу прощения, если оффтоп.

Учитесь вкладывать в себя, то что вы пишите на хампе и ему подобных может не работать на хостинге!

Выкупить хостинг за 2000р на ГОД использования, и работать с комфортом - это как минимум правильный шах в саморазвитии себя как программиста


--------------------
Если долго в одних стенах живешь, ты с ними сростаешься
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Guest  
Дата
Цитировать сообщение


Гость пожелал остаться неизвестным

Unregistered









novamap

Undefined variable: Module

С англ совсем плохо?
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
novamap  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 2
Пользователь №: 43449
На форуме: 2 месяца, 9 дней
Карма:




Цитата (Guest @ 2.10.2016 - 00:06)
novamap

Undefined variable: Module

С англ совсем плохо?

Забыл строку в index.php

$Module = array_shift($URL_Parts);


Но теперь - просто белый экран )))

Я понимаю немного английский - и написал что теряется переменная ... но как решить на php не в курсе.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Astin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 592
Пользователь №: 42519
На форуме: 9 месяцев, 28 дней
Карма: 7




Зачем тебе вообще проверять переменную $Module? Ты же проверяешь валидацию формы, заполнена или нет, так что просто
if(isset($_POST['enter']))
//если кнопка нажата то проверяем валидацию ну и что то еще делаем

А так вообще выкинь этот г..код в помойку
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса