Регистрация и авторизация

выдает ошибку 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
Всем добрый день. Хочу сделать постраничную навигацию, для этого в начале скрипта определяю.

Эксперт HTML/CSSЭксперт PHP

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

$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) — как не догадаться

как «так» не стоит?
можно подробнее? а то не понятно, что в гугл ввести для дальнейшего изучения.

ЦитатаСообщение от Василий Макогон Посмотреть сообщение

Эксперт HTML/CSSЭксперт PHP

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.класс валидация — отвичает за проверку данних

Читайте также:  Phpmyadmin docker php ini

ЦитатаСообщение от 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) < ?>

Пожалуйста исправьте следующую ошибку:

?>

Источник

Читайте также:  Умножение матриц алгоритм java

Ошибка — 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(); } } ?>

Источник

Оцените статью