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

Как разрешить ввод в поле input только цифр, и только средствами PHP?

03.04.2024, 23:05. Показов 1023. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые специалисты, подскажите, пожалуйста, как разрешить пользователю в поле <input type="text" вводить только цифры? Интересует решение только средствами PHP. Как это сделать с помощью атрибута "pattern" я знаю. Как это сделать с помощью JavaScript или JQuery я тоже знаю. Но как это сделать только средствами PHP, и возможно ли такое?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.04.2024, 23:05
Ответы с готовыми решениями:

Разрешить ввод только цифр
столкнулся с тем что нужно сделать защиту от случайного ввода, тоесть нужно чтобы если в место строки, допустим, 2+2*2 введут а+2*2...

Разрешить ввод только цифр
В процессе ввода должна осуществляться проверка корректности данных. То есть если в строчке телефон пишешь буквами а не цифрами то...

Ограничение на ввод символов (разрешить ввод только цифр)
Всем доброго времени суток! Я начал изучать С++ и у меня возник такой вопрос: Как ограничить ввод символов (разрешить ввод только...

11
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3951 / 2060 / 829
Регистрация: 13.03.2010
Сообщений: 6,778
03.04.2024, 23:56
Лучший ответ Сообщение было отмечено gogolik как решение

Решение

Kuzma92, php выполняется на сервере. Или выводите js/html, запрещающий ввод, или обрабатывайте полученный ввод на сервере и выдавайте ошибку.
2
1 / 1 / 0
Регистрация: 06.03.2024
Сообщений: 113
04.04.2024, 01:00  [ТС]
gogolik, да, я знаю, что php выполняется на сервере. Но смотрите, если JS использовать смысла нет, потому как у пользователей он будет отключен, а атрибут "pattern" будет работать только на айфонах, Но пользователя по любому нужно заставить вводить в поле только цифры, как быть? Какое все же решение можно найти до момента "обрабатывайте полученный ввод на сервере и выдавайте ошибку" (т.е. до перезагрузки страницы)? Или вообще никак от слова совсем?
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
04.04.2024, 05:32
Kuzma92, в любом случае, посредством PHP обработать данные пользователя удастся лишь на сервере. Но страницу для этого необязательно перезагружать, можно ajax-запрос с данным отправить на сервер и там их проанализировать. Вернувшийся с сервера ответ анализируете на стороне клиента, и можно, например, к полю ввода добавить снизу текст ошибки.
1
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3951 / 2060 / 829
Регистрация: 13.03.2010
Сообщений: 6,778
04.04.2024, 07:28
Цитата Сообщение от Kuzma92 Посмотреть сообщение
а атрибут "pattern" будет работать только на айфонах
Чего это?
1
Эксперт PHP
 Аватар для liris
4393 / 1033 / 154
Регистрация: 16.01.2023
Сообщений: 2,557
04.04.2024, 09:14
Цитата Сообщение от Kuzma92 Посмотреть сообщение
если JS использовать смысла нет, потому как у пользователей он будет отключен
Подавляющее большинство пользователей не отключают JS. При помощи JS (и даже стандартных атрибутов HTML) вы можете пользователю помочь заполнить форму правильно (сделав подсказки и валидацию "на лету").

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

Всегда использую подход: на фронтенде валидация рекомендательная (подскажем пользователю что возможно он ошибся), на бэкенде строгая (проверяем что мы получили то, что ожидали).
1
Супер-модератор
Эксперт JSЭксперт HTML/CSSЭксперт PHP
 Аватар для gogolik
3951 / 2060 / 829
Регистрация: 13.03.2010
Сообщений: 6,778
04.04.2024, 10:19
Цитата Сообщение от liris Посмотреть сообщение
Всегда использую подход
И это правильно. Потому что запрос можно послать не из формы и тогда плевать на валидацию со стороны фронта.
1
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
04.04.2024, 11:25
Цитата Сообщение от Kuzma92 Посмотреть сообщение
Но как это сделать только средствами PHP, и возможно ли такое?
Как выше писали, отправляется форма - на стороне php принимаете запрос, делайте валидацию и отдаете ошибки. Чтоб не запустить операцию с некорректными данными.
Валидация на стороне сервера обязательна, на стороне фронта лишь для удобства пользователю.

Можно еще делать валидацию через ajax, делать отдельные запросы по какому-либо событию к примеру на onchange, отправляя туда введенную форму. Таким образом можно делать более сложные проверки, к примеру уникальность email и т.д.
1
1 / 1 / 0
Регистрация: 06.03.2024
Сообщений: 113
04.04.2024, 16:14  [ТС]
Или как вариант, только удалять все символы, оставляя только цифры, перед записью в файл?
В таком случае, подскажите, пожалуйста, а какой вариант будет более верный?
этот:
PHP
1
$str = preg_replace('/[^0-9]/', '', $str);
или этот:
PHP
1
$str = preg_replace('/[D]/', '', $str);
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,823
04.04.2024, 16:50
Цитата Сообщение от Kuzma92 Посмотреть сообщение
Или как вариант, только удалять все символы, оставляя только цифры, перед записью в файл?
Можно приводить еще к числу.. через (int)$var. Это уже как вы выстроите требования, если я введу "5qwerty6" - что должно получиться 5 или 56?

Но вообще я противник приведения входных данных (только если удаление лишних пробелов и т.п.)

Может пользователь напутал поля, опечататься, или не догнал что куда вводить и отправил вообще не ту форму, или если это api - дернули не тот end point, или банально баг на Фронте и т.д..
Да и боты могут присылать всякую аброкадабру..

Если вам пришли неизвестно откуда некорректные данные - вы уверены что их нужно приводить и запускать выполнение операции?
1
1 / 1 / 0
Регистрация: 06.03.2024
Сообщений: 113
04.04.2024, 21:35  [ТС]
sad67man, это поля такие, как например которые записывают время приготовления еды, или другие поля, где требуется вводить только цифры, ничего особенного =). Другими словами добавление публикаций уже зарегистрированными пользователями. К тому же, к каждому полю идет понятное пояснение, чтобы пользователь не путался. Поэтому, если он ввел
Цитата Сообщение от sad67man Посмотреть сообщение
если я введу "5qwerty6" - что должно получиться 5 или 56?
то должно получиться 56.
Ну а если он что-то и перепутал, то он легко всегда может отредактировать любое поле в отдельности, этот функционал уже имеется. Главная цель сейчас - чтобы на выводе не было так: "Время приготовления: 5qwerty6 минут", а лучше "Время приготовления: 56 минут", даже если оно отличается от реального. Ну как-то так)
0
Модератор
 Аватар для long399
2882 / 1836 / 933
Регистрация: 16.10.2013
Сообщений: 5,240
Записей в блоге: 15
05.04.2024, 04:47
А потом появится: "Время 3-го приготовления: десять мЕнут" и все полетит в тартарары... Я бы возвращал ошибки по таким данным. Ожидал от пользователя только числовое значение.

Я даже больше скажу, если пользователям дать большую свободу действий, они вам в это поле и рецепты со временем начнут писать: "Мелко нарезать лук, натереть морковь на средней терке..."
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.04.2024, 04:47
Помогаю со студенческими работами здесь

Разрешить ввод в Еdit только цифр
помогите сделать коректность ввода в Edit (вводить можно толькочисла , в случае ввода букв выскакиволо сообщение о неправильном вводе)

Разрешить ввод в текстбокс только цифр
Как можно сделать что-бы в текст бокс вводились только цыфры?, а лучше какую-нибудь маску ввода замутить??

Разрешить ввод в TextBox только цифр
у меня есть код ввода только цифр, при вводе буквы выходит ошибка, как сделать, чтобы выходило окно...к примеру, &quot;Буквы нельзя!!&quot;...

Разрешить ввод только цифр и запятой
if (e.KeyChar &lt; 48 || e.KeyChar &gt; 57 &amp;&amp; e.KeyChar == 44) { e.Handled = true; } Мне нужно...

Разрешить ввод только трех цифр в TextBox
скажите пожалуйста код , чтоб при вводе в текс бокс можно было вводить только 3 циры или 3 буквы , дайте пожалуйста только для букв и для...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru