выдает ошибку Notice: Undefined index: user_login
что делать, как правильно?
про отключение вывода ошибок уровня «E_ALL &~NOTICE» не говорить.
хочу разобраться в чем проблема.
если значения посылать через аргументы, тогда почему если я обращаюсь к функции внутри класса (ей не нужны те аргументы, просто не использует) вылазят ошибки, что я не указал аргументы?
да и при использовании аргументов, теже нотайсы.
Выдает ошибку Notice: Undefined index: Hall_Theatre_idTheatre in C:\xampp\htdocs\CourseWork\FindSeance.php on line 7
прошу помощи. Создаю выпадающее меню с помощью MySQL, PHP и JavaScript. Пользователь должен выбрать.
Notice: Undefined index
Всем привет) На локальном хосте все работало, однако при загрузке на хостинг Бегет отказывается.
ошибка Notice: Undefined index
поменял на серваке версию php после чего появились такие вот сообщения Notice: Undefined index.
Notice: Undefined index: page
Всем добрый день. Хочу сделать постраничную навигацию, для этого в начале скрипта определяю.
ну как по мне — то не стоит так переопределять данные, лучше их передавать туда..
а во вторых — тогда хотя бы вот так
$auth_obj->user_login = isset($_POST['user_login']) ? $_POST['user_login'] : ''; $auth_obj->user_password = isset($_POST['user_password']) ? $_POST['user_password'] : ''; $auth_obj->ok = isset($_POST['ok']) ? $_POST['ok'] : '';
Сообщение от stupidstudent
а проблема в том, что пока вы не отправите данные формы — этих данных просто не существует, вот и все.
Сообщение от KOPOJI
$auth_obj->user_login = !isset($_POST['user_login']) ? $_POST['user_login'] : ''; $auth_obj->user_password = !isset($_POST['user_password']) ? $_POST['user_password'] : ''; $auth_obj->ok = !isset($_POST['ok']) ? $_POST['ok'] : '';
ясно, были теже нотайсы при выводе массива ошибок (если чтото ввел не правильно) и я делал точно также (но с isset’ом не работало, только empty) — как не догадаться
Сообщение от KOPOJI
Сообщение от stupidstudent
ясно, были теже нотайсы при выводе массива ошибок (если чтото ввел не правильно) и я делал точно также (но с isset’ом не работало, только empty) — как не догадаться
как «так» не стоит?
можно подробнее? а то не понятно, что в гугл ввести для дальнейшего изучения.
Сообщение от Василий Макогон
empty — Это можно сказать обратный аналог isset. только empty чуть больше значений проверяет
Добавлено через 1 минуту
Сообщение от stupidstudent
я имел в виду то, что обычно почти все свойства класса делают приватными, иногда protected. Инкапсуляция — почитайте)
Добавлено через 4 минуты
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
class foo { private $user = ''; private $pass = ''; private $ok = ''; function __construct(array $arr) { //плюс еще очистки $this->user = $arr['user']; $this->pass = $arr['pass']; $this->ok = $arr['ok']; } } $bar = new foo((isset($_POST['кнопка'])) ? $_POST : array('','','')); //или еще лучше так: if(isset($_POST['кнопка'])) { $bar = new foo($_POST); }
Правельней будет инициализацию данных класса поместить в конструктор класса он как раз и для этого был и придуман
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
class auth { // какие то поля // функции .. public function __construct(){ $auth_obj->user_login = validateUserLogin($_POST['user_login']); $auth_obj->user_password = validateUserPassword($_POST['user_password']); $auth_obj->ok = $_POST['ok']; } public function validateUserLogin($userLogin){ // делаем проверку данних return $userLogin; } public function validateUserPassword($user_password){ // делаем проверку данних return $user_password } }
По хорошему на чистом ооп для твоей задачи должно быть как минимум 4 класса:
1.класс аутентификация — отвечает за авторизацию пользователя
2.Класс пользоваеть — отвечает за хранение данных о пользователе и тд
3.класс request — которий реализует интерфейс из post | get
4.класс валидация — отвичает за проверку данних
Сообщение от Tamplar
Сообщение от Tamplar
30 строк для авторизации, при том, что я сразу после того как пользователь авторизовался вызаваю метод для логирования данных в файлик и метод для проверки онлайна.
Если классы будут раздельны как, эм, это соединить не совсем понимаю.
Сообщение от Tamplar
Сообщение от Tamplar
Сообщение от Tamplar
мне класс в классе подключать, чтоли? Валидация вроде должна идти в одной коробке как и авторизация, нет? почему?
А мб Вы имели в виду это:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
require './autoload.php'; $db_obj = new connectdb(); $db_obj->go(); if(isset($_POST['ok'])) { $valid_obj = new validate($_POST); $valid_obj = okay(); } $on_obj = new online(); $on_obj->chek_online(); $auth_obj = new auth($_POST); $auth_obj->auth_go();
также остается вопрос:
юзер проходит авторизацию, далее если лог-пасс найдены, тогда пройдет условие, под условием записываю его в сессию, а после этого $this->online();(кто онлайн) $this->log_auth;(кто авторизовался — запись времени, ника и т.п. в файлик). И не понятно, как также вытворять с разными классами.
На данный момент у меня в классе auth методы, что я перечислил выше, также методы get_ip(), check_form() — проверка форм и auth_go — проверка лог-пасс, в нем все методы сливается воедино. Говнокодтак делать нельзя?
KOPOJI, также интересно, как вызвать метод если он не использует агрументов переданных в констуктор? но объект их требует.
я про:
Catchable fatal error: Argument 1 passed to auth::__construct() must be an array, none given, called in
Undefined index login in php
Здравствуйте.
Я конструирую первую регистрацию и столкнулся с проблемой.
После регистрации, всё нормально, данные заносятся в БД и приходит в браузер сообщение что регистрация успешна.
После регистрации когда меня перекидывает на form_processing.php (где и высвечивается что регистрация прошла успешно), если я нажму в адресной строке и Enter вылетает Notice.
Предполагаю что это из-за htmlspecialchars.
Notice: Undefined index: login in C:\www\form_processing.php on line 4 Notice: Undefined index: sin in C:\www\form_processing.php on line 5 Notice: Undefined index: pass in C:\www\form_processing.php on line 6 Notice: Undefined index: email in C:\www\form_processing.php on line 7 Notice: Undefined index: question in C:\www\form_processing.php on line 8 Notice: Undefined index: answer in C:\www\form_processing.php on line 9 Notice: Undefined index: phone in C:\www\form_processing.php on line 10 Notice: Undefined index: skype in C:\www\form_processing.php on line 11 Notice: Undefined index: icq in C:\www\form_processing.php on line 12 Notice: Undefined index: login in C:\www\form_processing.php on line 15 Пожалуйста исправьте следующую ошибку: Введите ваше имя!
Е-mail адрес не существует"); > $pass = base64_encode(sha1($pass, true)); $sel = "SELECT * FROM accounts WHERE login = '$login'"; $res = mysql_query($sel); $num = mysql_num_rows($res); if($num == 0) < $query = "INSERT INTO `accounts` (`login`, `password`, `email`, `lastIP`, `question`,`answer`,`phone`,`skype`, `icq`) VALUES ('$login', '$pass', '$email', '".$_SERVER['REMOTE_ADDR']."', '$question', '$answer', '$phone', '$skype', '$icq')"; $result = mysql_query($query); if($result) < echo "Вы зарегистрированы!"; >> else < echo "Пользователь с таким именем существует! "; >?> На Главную >>>
return $data; > function show_error($myError) < ?> Пожалуйста исправьте следующую ошибку:
?>
Ошибка — Notice: Undefined index
Приветствую
есть форма для регистрации и авторизации. Регистрация работает, а вот с авторизацией проблемка небольшая, выдает ошибки, что-то не то с переменными:
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:
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
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 "Проверочный код введен неправильно. "; } 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; } } ?> .error if ($auth) { echo ""; } else { if (isset($_POST["reg"])) { if ($reg_success) echo "Регистрация прошла успешно!"; else echo "Ошибка при регистрации!"; } elseif (isset($_POST["auth"])) { if ($auth_success) echo "Авторизация прошла успешно!"; else echo "Ошибка при авторизации!"; } [B]include "form_reg.php";[/B] }?>
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">Нет аккаунта? 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" /> /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">Войти на сайт: 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>
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
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") 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(); } } ?>