Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 16.03.2015
Сообщений: 79
1

Ошибка - Notice: Undefined index

04.06.2015, 00:14. Показов 2627. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую
есть форма для регистрации и авторизации. Регистрация работает, а вот с авторизацией проблемка небольшая, выдает ошибки, что-то не то с переменными:
Notice: Undefined index: login in C:\USBWebserver - 8.6\root\registration\lib\user_class.php on line 42
Notice: Undefined index: password in C:\USBWebserver - 8.6\root\registration\lib\user_class.php on line 43
Notice: Undefined index: login in C:\USBWebserver - 8.6\root\registration\lib\user_class.php on line 42
Notice: Undefined index: password in C:\USBWebserver - 8.6\root\registration\lib\user_class.php on line 43
.
прошу помочь)
вот полный код рег. и авторизации, здесь 3 файла, ошибка в последнем выложенном
файл registration.php:
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
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
    header('Content-Type: text/html; charset=CP-1251');
    require_once "lib/user_class.php";
    $user = User::get_object();
    $auth = $user->is_auth();
    
    
    if (isset($_POST["reg"]))
    { 
    if($_POST['kapcha'] == $_SESSION['rand_code'])
        {
         $login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
         $password = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
         $reg_success = $user->reg_user($login, $password);
        }
        else echo "<span class='error'>Проверочный код введен неправильно. </span>";
    }
 
    elseif (isset($_POST["auth"]))
    {
        $auth_success = $user->login($login, $password);
        if ($auth_success)
        {
            $login = filter_var($_POST['login'], FILTER_SANITIZE_STRING);
            $password = filter_var($_POST['password'], FILTER_SANITIZE_STRING);
            header("Location: registration/registration.php");
            exit;
        }
    }
?>
<!DOCTYPE html>
<html>
<head>
    <title>Регистрация и авторизация</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel='StyleSheet' href='/css/login.css' type='text/css'>
    <style>
      .error{color:red;margin-left:15px; font-size: 17px; font-family: 'Lobster', cursive;}
    </style>
</head>
<body>
<?php 
        if ($auth)
        {
            echo "<html><head><meta    http-equiv='Refresh' content='0; URL=/index.php'></head></html>";
        }
        else 
        {
            if (isset($_POST["reg"]))
            {
                if ($reg_success) echo "<span class='error'>Регистрация прошла успешно!</span>";
                else echo "<span style='font-size: 17px; color:red; font-family: Lobster, cursive;margin-left:5px;'>Ошибка при регистрации!</span>";
            }
            elseif (isset($_POST["auth"]))
            {
                if ($auth_success) echo "<span class='error'>Авторизация прошла успешно!</span>";
                else echo "<span class='error'>Ошибка при авторизации!</span>";
            }
            [B]include "form_reg.php";[/B]
}?>
 
</body>
</html>
файл form_reg.php(формочка для рег. и авторизации):
HTML5
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
<div id="close_auth">
<div id="login_container">
    <div id="form_container">
        <p class="login-text">Авторизация на сайте</p>
        <form name="auth" action="index.php" method="post">
    
                    <input type="text" name="login" placeholder='Логин' class='text_input'/>
                
                
                    <input type="password" name="password" placeholder='Пароль' class='text_input'/>
            
            
                    <input type="submit" name="auth" value="Войти" class="dop_text1" style="width:80px; margin:15px 0px 0px 105px"/>
        </form>
        <p class="login-text">Нет аккаунта? &nbsp;&nbsp;<input class="text_1" value="Регистрация" type='submit'  onClick="document.getElementById('close_auth').style.display = 'none';document.getElementById('open_reg').style.display = 'block' "/></p>
</div>
</div>
</div>
<div id="open_reg" style="display:none">
<div id="login_container_reg">
    <div id="form_container_reg">
        <p class="login-text1">Регистрация на сайте</p>
        <form method='POST' name="reg"  action="/index.php">
            <table><tr><td><input class='text_input_reg' placeholder="Введите код с картинки..."  type = "text" name = "kapcha" />&nbsp;</td><td><img src = "/kapcha/captcha.php" width="78" height="32"/></td></tr> </table></center>
            <input type='text' placeholder='Логин'  name='login'  class='text_input' />
            <input type='text' placeholder='Пароль'  name='password'  class='text_input' />
            <p><input type='submit' value="Зарегистрироваться" class="dop_text1" name="reg" /></p>
        </form> 
            <p class="login-text">Войти на сайт: &nbsp;&nbsp;<input class="text_1" value="Назад" type='submit' onClick="document.getElementById('open_reg').style.display = 'none';document.getElementById('close_auth').style.display = 'block' "/></p>
    </div>
</div>
</div>
файл user_class.php(там где ошибка-стр. 42-43):
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
session_start();
class User
{   
    private $db;
    
    private static $user = null;
    
    private function __construct()
    {       
        $this->db = new mysqli("localhost","root","usbw","diplom");
        $this->db->query("SET NAMES 'utf8'");
    }
    
    public static function get_object()
    {
        if (self::$user === null) self::$user = new User();
        return self::$user;
    }
    
    public function reg_user($login, $password)
    {
        if ($login == "") return false;
        if ($password == "") return false;
        $password = md5($password);
        $query = "INSERT INTO `users`(`login`, `password`, `regdate`) VALUES('$login', '$password', '" . time() . "')";
        return $this->db->query($query);
    }
    
    private function check_user($login, $password)
    {
        $resultset = $this->db->query("SELECT `password` FROM `users` WHERE `login` = '$login'");
        $user = $resultset->fetch_assoc();
        $resultset->close();
        if (!$user) return false;
        return $user["password"] === $password;
    }
    
    public function  is_auth()
    {
        
        $login = $_SESSION["login"];
        $password = $_SESSION["password"];
        //if ($_SESSION["login"] = "administrator") {echo "Hellow!!!";} 
        return $this->check_user($login, $password);
    }
    
    public function login($login, $password)
    {
        $password = md5($password);
        if ($this->check_user($login, $password))
        {
            $_SESSION["login"] = $login;
            $_SESSION["password"] = $password;
            return true;
        }
        else return false;
    }
    
    public function __destruct()
    {
        if ($this->db) $this->db->close();
    }
}
?>
как вы поняли, ошибка в последнем файле- user_class.php
буду благодарен очень за помощь
Миниатюры
Ошибка - Notice: Undefined index  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.06.2015, 00:14
Ответы с готовыми решениями:

Ошибка Notice: Undefined index
Здравствуйте. Возникла проблема с работой сессии. На последний сборке денвера все работает, а на...

Ошибка Notice: Undefined index:
Помогите пожалуйста, у меня форма обратной связи выдает вот такие ошибки: Notice: Undefined...

Ошибка Notice: Undefined index
Добрый день! Пожалуйста, помогите победить ошибку: PHP Notice: Undefined index: master ...

Ошибка Notice: Undefined index: act in
Мне для сайта дали готовый код типа мини-игры но в строке что ниже показывает ошибку:...

4
20 / 20 / 9
Регистрация: 04.03.2013
Сообщений: 148
04.06.2015, 00:35 2
Это не ошибка, а предупреждение на сколько я знаю. Скорее всего не получается считать данные из ассоциативного массива сесcии.
0
1 / 1 / 0
Регистрация: 16.03.2015
Сообщений: 79
04.06.2015, 00:45  [ТС] 3
FireUnix, спасибо, вроде ошибки те больше не появляются, но теперь опять проблема другая, после ввода данных на форме авторизации, при нажатии на кнопку "войти", выдает такую ошибку, вообще странно, теперь строка 32, в том же файле -> user_class.php. Синтаксических ошибок же нету, не понимаю
Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '�оль FROM users WHERE login = 'заказчик'' at line 1
скрин сам: Битая ссылка
0
36 / 36 / 47
Регистрация: 20.04.2015
Сообщений: 198
04.06.2015, 10:49 4
Алекс_,
Я думаю в базе данных существует данная запись.
Попробуйте сделать truncate и заново сделать авторизацию.
0
20 / 20 / 9
Регистрация: 04.03.2013
Сообщений: 148
04.06.2015, 17:01 5
Цитата Сообщение от Solitaire Raven Посмотреть сообщение
Алекс_,
Я думаю в базе данных существует данная запись.
Попробуйте сделать truncate и заново сделать авторизацию.
Кажись вы тут ошиблись. Запись и должна существовать! Для этого мы и делаем выборку SELECTом. И truncate делать ни в коем случае нельзя, уйдут все аккаунты из базы.
0
04.06.2015, 17:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.06.2015, 17:01
Помогаю со студенческими работами здесь

Ошибка - Notice: Undefined index: antirobot
if ($_POST &amp;&amp; $_POST == &quot;capthaantirobot&quot;) { $to = &quot;hayk-avagimyan@mail.ru&quot;; $subject = &quot;Письмо...

ассоциативный массив, ошибка notice: Undefined index:
У меня массив вида $lat=array('А'=&gt;'A','Б'=&gt;'B','В'=&gt;'V',.....); То есть служит для перекодировки...

Сайт на opencart ошибка PHP Notice: Undefined index: email
Доброго дня. Есть интернет магазин на opencart, перестали открываться страницы товаров. В логе...

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


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru