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

Как вывести ошибку в виде всплывающего окна?

26.11.2020, 21:33. Показов 2536. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый вечер! Искал я значит в интернете, как же мне сделать так, чтобы запрос обрабатывался в PHP, но не открывалась пустая страница с описанием ошибки , а высвечивалось в виде всплывающего окна, как когда сайт запрашивает уведомления. И все бы ничего, нор я чувствую, что без JS тут не обойтись, а я в нем ноль. Суть такова: человек вводит свои данные для регистрации или авторизациия, эти данные сравниваются с требованиями( при регистрации и авторизации) и осуществляют поиск в БД, предварительно очистившись от неподходящих знаков с помощью filter. Но , как только происходит проверка, при нахождении открывается пустой файл с нужной надписью, чего мне не надо. В идеале, чтобы все проверки осуществлялись еще в момент написания того или иного поля. Вот код:
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
<!DOCTYPE html>
<html lang="en">
<head>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <meta charset="UTF-8">
    <title>Регистрация</title>
</head>
<body>
    <div class="container mt-4">
        <div>
            <h1>Регистрация на сайте</h1>
            <form action="check.php" method="post">
                <input type="text" class="form-control" name="login" id="login" placeholder="Введите Ваш логин"><br>
                <input type="text" class="form-control" name="name" id="name" placeholder="Введите Ваше имя"><br>
                <input type="password" class="form-control" name="pass" id="pass" placeholder="Введите Ваш пароль"><br>
                <button class="btn btn-success" type="submit">Регистрация</button>
            </form>
        </div>
        <div>
            <h1>Авторизация на сайте</h1>
            <form action="auth.php" method="post">
                <input type="text" class="form-control" name="login" id="login" placeholder="Введите Ваш логин"><br>
                <input type="password" class="form-control" name="pass" id="pass" placeholder="Введите Ваш пароль"><br>
                <button class="btn btn-success" type="submit">Авторизация</button>
            </form>
        </div>
    </div>
</body>
</html>
и сам файл с проверкой:
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
<?php
    $login = filter_var(trim($_POST['login']),
        FILTER_SANITIZE_STRING);
    $name = filter_var(trim($_POST['name']),
        FILTER_SANITIZE_STRING);
    $pass = filter_var(trim($_POST['pass']),
        FILTER_SANITIZE_STRING);
    if(mb_strlen($login) < 5 || mb_strlen($login) > 30) {
        echo "Неверная длина имени ( Допустимая 5-30 символов";
        exit();
    } else if(mb_strlen($name) < 2 || mb_strlen($name) > 20) {
        echo "Неверная длина имени ( Допустимая 2-20 символов";
        exit();
    } else if(mb_strlen($pass) < 4 || mb_strlen($pass) > 20) {
        echo "Неверная длина пароля ( Допустимая 4-20 символов";
        exit();
    }
    $pass = md5($pass."werserusion12");
    $mysql = new mysqli('localhost', 'root', 'dTp7)9vjcYEB8?uL', 'register-bd');
    $mysql->query("INSERT INTO `users` (`login`, `pass`, `name`) 
    VALUES('$login', '$pass', '$name')");
    $mysql->close();
    header('Location: index.php');
    exit();
Тут могут быть еще ошибки, но если вы их найдете - напишите о них , пожалуйста, сюда! Заранее спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2020, 21:33
Ответы с готовыми решениями:

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

Как сделать чтобы XPages страница открылась в виде модального всплывающего окна
Здравствуйте! Поискал, но не нашел. Подскажите, пожалуйста... Как можно сделать, чтобы XPages страница при открытии открывалась в виде...

Telegram API. Сообщение в виде всплывающего окна
Добрый день! Не могу разобраться с одной штукой - в одном из ботов видел сообщение в виде всплывающей плашки. Она слайдом появляется...

1
 Аватар для brain-4-me
162 / 150 / 97
Регистрация: 24.12.2013
Сообщений: 744
Записей в блоге: 12
27.11.2020, 06:59
Лучший ответ Сообщение было отмечено RodionKr1 как решение

Решение

RodionKr1, привет!
Ну, как вариант, можно сделать как то так..
HTML5
1
<form action="check.php" method="post" class="myform>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
$(document).on('submit','.myform',function(e){
e.preventDefault()
var formdata = new FormData($(this).get(0))
$.ajax({
 url: $(this).attr('action'),
 type: $(this).attr('method')
 data: formdata,
 contentType: false,
 processData:false,
 success:function(data){
  alert(data)
 }
})
ну и соответственно в блок head поместить
HTML5
1
2
3
4
5
6
7
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <meta charset="UTF-8">
    <title>Регистрация</title>
 
</head>
и поменять немного а php
PHP
1
2
3
4
5
6
7
$pass = md5($pass."werserusion12");
    $mysql = new mysqli('localhost', 'root', 'dTp7)9vjcYEB8?uL', 'register-bd');
    $mysql->query("INSERT INTO `users` (`login`, `pass`, `name`) 
    VALUES('$login', '$pass', '$name')");
    $mysql->close();
    echo 'Вы зарегистрированы!';
    exit();
так же по аналогии сделать для второй формы

з.ы.
Для рекомендации я бы советовал как меня учили не ограничивать длину пароля. Т.е. можно ограничить что менее 4 символов нельзя, но не стоит ограничивать более скольки нельзя
PHP
1
mb_strlen($pass) > 20
это условия я бы убрал
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2020, 06:59
Помогаю со студенческими работами здесь

Как уменьшить размеры всплывающего окна?
Как уменьшить размеры всплывающего окна? Есть скрипт &lt;script language=javascript&gt; window.open('http://murashi.com.ru') ...

Как скопировать данные из всплывающего окна
Всем привет. Народ, столкнулся вот с какой проблемой. Есть некая система, в которой собраны данные по заявкам от клиентов: ...

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

Как сделать выравнивание всплывающего окна по центру (по оси Y)?
Есть pop-up на jQuery, который открывается по клику. Блок с информацией этого попапа помещен где-то посередине кода страницы, а ссылка, по...

Как из всплывающего окна отправить данные через родительское?
Здравствуйте уважаемые гуру JS! Идея такова: есть форма с кнопкой, по нажатию на которую, должна появиться форма во всплывающем окне....


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru