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

Как проще исправить или добавить, в регистрации на PHP

18.08.2014, 19:15. Показов 7964. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!

Где исправить или добавить,...(я новичок в php)

Если из файла reg.php перебрасывается на файл save_user.php и выводится ошибки(например: вы не правильно ввели логин и или пароль, либо другие ошибки, например: вы успешно зарегистрированы....) То как сделать проще чтобы не перебрасывался на save_user.php. А сразу выводились эти предупреждения(покажите пожалуйста из моего кода пару примеров)

Вот код
файл save_user.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
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
 
 
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit ("<script>alert('Вы ввели не всю информацию, вернитесь назад и заполните все поля!');</script>"); 
}
 
//.... 
 
// если такого нет, то сохраняем данные
$result2 = mysql_query ("INSERT INTO users (login,password,avatar) VALUES('$login','$password','$avatar')");
// Проверяем, есть ли ошибки
if ($result2=='TRUE')
{
 echo "<script>alert('Вы успешно зарегистрированы!');</script>";
// echo "Вы успешно зарегистрированы!";
//echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
}
 
else {
exit ( "<script>alert('Ошибка!Вы не зарегистрированы.!');</script>");
     }
файл reg.php (Чтобы на этой страничке выводились эти предупреждение в alert)

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
<html>
<head>
<title>Регистрация</title>
</head>
<body>
<h2>Регистрация</h2>
<form action="save_user.php" method="post" enctype="multipart/form-data">
<!-- save_user.php - это адрес обработчика. То есть, после нажатия на кнопку "Зарегистрироваться", данные из полей отправятся на страничку save_user.php методом "post" -->
  <p>
    <label>Ваш логин *:<br></label>
    <input name="login" type="text" size="15" maxlength="15">
  </p>
<!-- В текстовое поле (name="login" type="text") пользователь вводит свой логин -->  
  <p>
    <label>Ваш пароль *:<br></label>
    <input name="password" type="password" size="15" maxlength="15">
  </p>
<!-- В поле для паролей (name="password" type="password") пользователь вводит свой пароль -->  
 
  <p>
    <label>Выберите аватар. Изображение должно быть формата jpg, gif или png:<br></label>
    <input type="FILE" name="fupload">
  </p>
<!-- В переменную fupload отправится изображение, которое выбрал пользователь. --> 
<p>
<input type="submit" name="submit" value="Зарегистрироваться">
<!-- Кнопочка (type="submit") отправляет данные на страничку save_user.php  -->  
</p></form>
Звездочками (*) обозначены поля, обязательные для заполнения.
 
</body>
</html>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.08.2014, 19:15
Ответы с готовыми решениями:

Мерцание картинки OpenGL. Как исправить или что нужно добавить?
Начинаю знакомиться с OpenGL, задание было нарисовать картинку: белый треугольник, пурпурный и белый круг. Я сделала, все работало, потом...

Как добавить онлайн оплату или банковские переводы в страницу через PHP или через JavaScript
Здравствуйте ребята))) подскажите пожалуйста, как добавить онлайн оплату или банковские переводы в страницу через PHP или через...

Создание простого приложения для Windows 9x/NT, решил как смог. Пожалуйста подскажите что исправить или добавить
задание: окно фон зелёный размер 500х400 курсор IDT_HAND При закрытии окна вывести ФИО Мой вариант: ...

3
 Аватар для ISerg1986
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
18.08.2014, 19:42
Лучший ответ Сообщение было отмечено niknam как решение

Решение

Как вариант - на примере одной ошибки.
Для множества ошибок, нужно немного изменить код - передавать много "значений" методом гет.
(reg.php?empty_password&empty_username&e rror_1&all_wrong&ololo)
Значения без ошибок можно (и нужно) тоже передать. Мы же не любим вводить ВСЁ заново? Но тут отдельная история (гет пост, сессии -на ваш выбор).

save_user.php
PHP
1
2
3
4
//Если пароль пустой
if ($password =='')
//Пересылаем юзера назад, на регистрацию и передаём методом гет empty_password
{header('Location: reg.php?empty_password';exit;}
reg.php
PHP
1
2
3
4
5
6
7
8
9
//Если пароль пустой
if (isset($_GET['empty_password']))
{
echo'А пароль то пустой!';
//Тут ваши алерты
//или if else конструкция <input name="password" type="password" size="15" maxlength="15"> Пароль не может быть пустым
//
 
}
1
0 / 0 / 1
Регистрация: 18.08.2014
Сообщений: 36
19.08.2014, 01:33  [ТС]
Мы же не любим вводить ВСЁ заново? Но тут отдельная история (гет пост, сессии -на ваш выбор).
Покажите пожалуйста этот пример пост или гет или ( сессии - просто иногда у пользователя отключены)
0
 Аватар для ISerg1986
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
19.08.2014, 08:32
Лучший ответ Сообщение было отмечено niknam как решение

Решение

Цитата Сообщение от niknam Посмотреть сообщение
сессии - просто иногда у пользователя отключены

Сессия - не кука. Сессия - она создаётся на сервере. Пользователь ничего с этим сделать не может.
Впрочем, даже если речь идёт о куках, то их отключение признак "нездорового пользователя".

Цитата Сообщение от niknam Посмотреть сообщение
Покажите пожалуйста этот пример
Суть примера - два в одном. А именно - форма регистрации и сама регистрация в одном файле.
Это не есть гуд (нормальный код писать и писать, подключать сторонние скрипты, ajax красивости и т.д.) - зато просто и решает вашу задачу.
Проверку данных можно сделать выше формы регистрации или ниже формы.
Сделаем ниже формы т.к. это проще, но не так красиво как выше. Просто будем выводить сообщения внизу.

Пример для 2х полей - логин, пароль

Файл register.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
//Вывод формы регистрации
echo'
<html>
<head>
<title>Регистрация</title></head>
<body>
<form action="register.php?end" method="post">
Логин <input type="text" name="login" value="'.$_POST["login"].'">
Пароль <input type="text" name="userlogin" value="'.$_POST["password"].'">
<input type="submit" value="Зарегистрироваться" />
</form>
</body>
</html>';
 
 
//Проверка данных и вывод сообщений об ошибке
 if (isset($_GET['end']))
{
 
//Получаем данные
$login =$_POST['userlogin'];
$pass =$_POST['userpass'];
 
 
//Проверка логина
if ( !preg_match("/[A-Za-z0-9]/",$login))
{echo '<font color="red">Некорректный логин. Логин может состоять из английских букв, цифр.</font>';
exit;}
 
 
if ($pass =='')
{echo '<font color="red">Пароль не может быть пустым.</font>';
exit;}
 
//Всё нормально? Логин и пароль норм? Значит ниже код регистрации.
 
 
 
}

Что происходит:
При первом запуске выводится форма регистрации. Значения (что написано) полей логин и пароль - пустые т.к. элементы массива $_POST["login"], $_POST["password"] пустые.
Пользователь вводит логин и пароль, нажимает Зарегистрироваться.
Скрипт - "обработчик формы" это register.php?end т.е. тот же скрипт но его "раздел" (назовём это так) end.
Php файл читается интерпретатором сверху вниз, в поиске end. Но выше end (Проверка данных и вывод сообщений об ошибке) идёт Вывод формы регистрации.
Значит она выводится. Т.к. элементы массива $_POST["login"], $_POST["password"] уже содержат значения, то в поля логин и пароль будут подставлено то, что туда ввёл пользователь (ура!, пользователю не надо повторно ничего вводить).
Скрипт загружается до end и начинает проверять данные. Если данные некорректны - то выводит сообщения и останавливается.
Результат - форма регистрации есть, повторно вводить ничего не надо, сообщения об ошибках выводятся.

Примечание
В данном учебном примере показана только логика и не соблюдена структура html. Это только простой пример.
В реальности, всё можно (и нужно) сделать немного по другому, написав код выше и ниже формы, подключив другие файлы и т.д.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.08.2014, 08:32
Помогаю со студенческими работами здесь

Как сделать подгружаемую область без PHP проще
а то начитался там литературы всякой, в голове такая каша... Есть страница, в центральную обасть которой нужно подгружать текст и фото...

Добавить свои кнопки на Google map /Как можно было проще/ на jQuery
Есть у меня не большое решение этой проблемы на js с небольшим вкраплением jQuery: function ControlBorder(controlDiv, id, title) { ...

Как исправить систему регистрации?
Добрый день! Пишу небольшой проект, скачал бесплатный шаблон. Коротко напишу ключевые моменты: Индекс сделал так чтобы все запросы...

Интерполяция или как проще это сделать
Возник вопрос по реализации функции подобной екЦелевкой -'Тенденция' Вот сам вопрос существует таблица: 52,5 65 75 32...

Добавить проверку или исправить баг
Не хватает какой-то проверки или тут мелкий косяк, помогите найти internal override string GetVersion() { var...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru