Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
Raisin Zn
100 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 929
1

Notice: Undefined variable

27.12.2013, 10:20. Просмотров 4675. Ответов 23
Метки нет (Все метки)

Доброго дня Вам!
При переходе на страницу входа, под формой появляется такая ошибка:
PHP
1
Notice: Undefined variable: login in /var/www/vh131297/data/www/live.danfa.ru/user.php on line 102 Notice: Undefined variable: password in /var/www/vh131297/data/www/live.danfa.ru/user.php on line 104 Извините, введённый вами логин или пароль неверный.
По номерам этих строк находятся код:
PHP
1
2
3
4
5
           
        $login = stripslashes($login);
        $login = htmlspecialchars($login);
        $password = stripslashes($password);
        $password = htmlspecialchars($password);
собственно на что грешит сообщение с ошибкой. Пробую добавить isset, то есть вот так:
PHP
1
2
3
4
        $login = stripslashes(isset($login));
        $login = htmlspecialchars(isset($login));
        $password = stripslashes(isset($password));
        $password = htmlspecialchars(isset($password));
Тогда пользователь не может войти в систему.
Подскажите как это поправить?
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2013, 10:20
Ответы с готовыми решениями:

Как исправит Notice: Undefined index: sessy in и undefined variable
Доброго времени суток! Возможно это мелочь и с высоты опытного программиста это...

Notice: Undefined variable:
Помогите пожалуйста разобраться! Есть небольшой набросок интернет магазина....

Notice: Undefined variable:
Приветствую, народ! Все работает, но выводит: Notice: Undefined variable:...

Notice: Undefined variable
Привет всем. Вот код<?php $datesunday = date("d", strtotime("Sunday"));...

Notice: Undefined variable
В общем ошибка: Notice: Undefined variable: data in W:\domains\test\mysql.php...

23
Raisin Zn
100 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 929
28.12.2013, 02:48  [ТС] 21
Цитата Сообщение от lyod Посмотреть сообщение
А сообщения сродни первым ошибкам, с которыми вы начали эту тему?
Я имею введу сообщения об ошибках: Введите пожалуйста логин!, Введите пароль и Извините, введённый вами логин или пароль неверный.
Если над формой заинклудить еще шаблон, то эти сообщения буду выходить не над формой, а в самом верху.
0
Para bellum
Эксперт PHP
4154 / 3088 / 1000
Регистрация: 06.01.2011
Сообщений: 9,023
28.12.2013, 08:12 22
Цитата Сообщение от Raisin Zn Посмотреть сообщение
Если над формой заинклудить еще шаблон, то эти сообщения буду выходить не над формой, а в самом верху.
А вот тут уже начинаются проблемы с логикой распределения шаблонов

Добавлено через 14 минут
Можно вот так сделать (это конечно, не сильно меняя ваш сайт, я бы конечно делал бы на MVC):
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
if ( isset( $_GET['p'] ) && $_GET['p'] == 'login')
{
    # Тут будут содержаться данные
    $content = NULL;
    
    try
    {
        if (isset($_POST['submit'])){
            $login = isset( $_POST['login'] ) ? trim( $_POST['login'] ) : ''; # Логин
            $password = isset( $_POST['password'] ) ? trim( $_POST['password'] ) : ''; # Пароль
            
            # Если логин пуст
            if ( empty( $login ) ) {
                throw new Exception("Введите пожалуйста логин!");
            }
            
            # Если пароль пуст
            if ( empty( $password ) ) {
                throw new Exception("Введите пароль");
            }
            
            # Обрабатываем логин для защиты от SQL инъекции
            $login = mysql_real_escape_string( $login );
            
            # Хэшируем пароль
            $password = md5( $password );
            
            $user = mysql_query("SELECT `id` FROM `user` WHERE `login` = '$login' AND `password` = '$password'");
            $id_user = mysql_fetch_array($user);
            if (empty($id_user['id'])){
                throw new Exception("Извините, введённый вами логин или пароль неверный.");
            }
            else {
                $_SESSION['password'] = $password; 
                $_SESSION['login'] = $login; 
                $_SESSION['id'] = $id_user['id'];               
            }
            header("location: index.php");      
        }
    }
    catch ( Exception $error )
    {
        $content = $error->getMessage();
    }
    
    # Подключаем файл с формой
    require_once  'путь_до_шаблона/login.tpl';   
}
?>
И в login.tpl впишите над формой (именно там, где вы хотите, чтобы отображались ошибки):
PHP
1
<?=$content?>
И в php.ini проверьте - директива short_open_tag должна быть в значении On, иначе
PHP
1
<?=$content?>
не будет работать. Если же ваша версия php >= 5.4.0, не нужно в php.ini менять эту директиву, запись <?= будет доступна и без этого.
1
Raisin Zn
100 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 929
29.12.2013, 08:00  [ТС] 23
header нельзя вставлять после форм, а сразу после этого:
PHP
1
if (isset($_GET['p']) && $_GET['p'] == 'login') {
можно вставлять проверку:
PHP
1
2
3
if(!isset($_SESSION['login']) && !isset($_SESSION['id'])) {
header("location: index.php");
}
???
Это проверка определяет авторизован пользователь или нет, если авторизован, то отправляет его на главную страницу, то есть вошедшему форма входа больше не доступна.
Спасибо.
0
Para bellum
Эксперт PHP
4154 / 3088 / 1000
Регистрация: 06.01.2011
Сообщений: 9,023
29.12.2013, 13:36 24
Да, конечно можно. Но главное, чтобы перед <?php в данном случае не было никаких символов, даже пробелов.
1
29.12.2013, 13:36
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.12.2013, 13:36

Notice: Undefined variable
&lt;? if($a_1 == true OR $a_2 == true OR $a_3 == true OR $a_4 == true OR $a_5...

Notice: Undefined variable. Но где?
Здравствуйте. Решил сделать на сайте древовидные комментарии по видеоурокам....

Notice: Undefined variable: good in - ?
Вот из-за этого возникает ошибка: &quot;Notice: Undefined variable: good in&quot; Скрипт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru