Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Как разрешить ввод в поле input только цифр?
Kuzma92  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 81
Пользователь №: 46556
На форуме: 1 год, 15 дней
Карма:




Уважаемые специалисты, подскажите, пожалуйста, как разрешить пользователю в поле <input type="text" вводить только цифры? Интересует решение только средствами PHP. Как это сделать с помощью атрибута "pattern" я знаю. Как это сделать с помощью JavaScript или JQuery я тоже знаю. Но как это сделать только средствами PHP, и возможно ли такое?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 6460
Пользователь №: 35718
На форуме: 12 лет, 4 месяца, 2 дня
Карма: 208




Проверка данных на стороне сервера называется валидация. Запретить вводить нельзя, можно проверить цифра введена или текст. И если не цифра, то выдать ошибку.

https://www.php.net/manual/ru/function.filter-input
https://www.php.net/manual/ru/function.filt...input-array.php

Прочти наконец хотя бы одну книгу по РНР, большинство вопросов отпадёт, и научишься грамотно ставить задачи перед собой.


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kuzma92  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 81
Пользователь №: 46556
На форуме: 1 год, 15 дней
Карма:




Цитата (Valick @ 4.04.2024 - 01:57)
Прочти наконец хотя бы одну книгу по РНР

Через 11 лет выйду на пенсию, обязательно прочту, и не одну. А сейчас извините, некогда, приходится на ходу делать/изучать.
Да, конечно, я знаю, что такое валидация. Я об этом впервые узнал еще в 98м, когда делал свой первый сайт, подключаясь к интернету через скрипящие (но такие на тот момент магически волшебные) звуки модема, работая еще на 386 компе в ОС DOS. Тогда еще сайт Фоменко был одним из самым популярных, может быть помните? Хотя нет, вру, термин "валидация", кажется, впервые был озвучен (только вот уже не помню конкретики) еще при изучении мной на уроках информатики в конце 80-х первого языка Бейсик, на котором я уже писал первые программки (одни писал, другие пытался взламывать). Но вот php я к сожалению про&бал, и очень жалею, что не выучил этот язык в свое время. Так что вот сейчас работаю и изучаю параллельно. А книги, Valick, на пенсии через 11 лет, всё чтение будет на пенсии, в очах да при лампе с лупой. Ну как-то так, что ли.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 6460
Пользователь №: 35718
На форуме: 12 лет, 4 месяца, 2 дня
Карма: 208




Зачем мне эта куча ненужной информации?
Что бы эффективно получать помощь на форуме нужна база, которой у тебя нет (базовые знания с огромными пробелами = отсутвие знаний). Одну книгу можно прочитать в течение двух-трёх недель даже при "отсутвии времени". В противном случае получается неоправданная трата времени на изобретение велосипедов и молотков.
Ну и в конце концов, если читать книгу по PHP не интересно и не увлекательно, то надо бросать программирование в принципе. И просто заказать нужный сайт у сторонних программистов. А если читать интересно, то ничто не остановит, ни отсутвие времени, ни мечты о пенсии.

P.S. Я на форуме для того что бы помогать, и не важно что и как я говорю (обращаюсь к собеседнику на ты или на вы) главное это результат.


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



חשב את עצמו
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6963
Пользователь №: 1
На форуме: 19 лет, 1 месяц, 15 дней
Карма: 145




Навскидку:

if( $_POST['numer'] != intval($_POST['numer']) )echo "требуется вводить только цифры!";


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 6460
Пользователь №: 35718
На форуме: 12 лет, 4 месяца, 2 дня
Карма: 208




FatCat, да я же там скинул ссылки на штатные функции.
Хочеться чего-то болшего пожалуйста https://habr.com/ru/articles/521292/
Ну и intval() уже много лет как деприкейтед, надо приведение к типу (int) юзать wink.gif


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



חשב את עצמו
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6963
Пользователь №: 1
На форуме: 19 лет, 1 месяц, 15 дней
Карма: 145




Цитата (Valick @ 4.04.2024 - 12:45)
Ну и intval() уже много лет как деприкейтед, надо приведение к типу (int) юзать

И это плохо, ибо увеличивает объем и ухудшает читаемость кода, и увеличивает потребление ресурсов:
$numer = (int) $_POST['numer'];
if( $_POST['numer'] != $numer )echo "требуется вводить только цифры!";


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



חשב את עצמו
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6963
Пользователь №: 1
На форуме: 19 лет, 1 месяц, 15 дней
Карма: 145




Цитата (Valick @ 4.04.2024 - 12:45)
я же там скинул ссылки на штатные функции

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

Прочитал по твоей ссылке про filter_input. Да, это, наверное, годится. Но…
Но если мне нужна только одна проверка, мне нет никакого резона тащить целый пакет возможностей. Иначе я приду к тому же, к чему пришли мы все. Игра вульфенштайн, весившая 3 метра и летавшая на 286 компьютере без памяти с современными библиотеками будет весить 3 гектара и потребует как минимум i3 процессор с парой гектаров памяти.
Я так не хочу.
И в медицине, если я могу услышать пневмлнию стетоскопом, я не погоню больного на компьютерную томографию, а сразу дам и антибиотики, и отхаркивающие, и он вылечится раньше, чем дождался бы бесплатной очереди на томографию.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
brevis  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 690
Пользователь №: 39616
На форуме: 10 лет, 10 месяцев, 8 дней
Карма: 71




Цитата (Valick @ 4.04.2024 - 14:45)
Ну и intval() уже много лет как деприкейтед, надо приведение к типу (int) юзать wink.gif

В документации об этом молчат https://www.php.net/manual/ru/function.intval.php
Вообще если бы задеприкейтили intval() -- это была бы катастрофа.


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 6460
Пользователь №: 35718
На форуме: 12 лет, 4 месяца, 2 дня
Карма: 208




Цитата (FatCat @ 4.04.2024 - 16:18)
Я же не программист. Я врач.

Я знаю об этом, поэтому там смайкик ;)

Цитата (FatCat @ 4.04.2024 - 16:05)
И это плохо, ибо увеличивает объем и ухудшает читаемость кода


if( $_POST['numer'] != (int)$_POST['numer'] ) {
echo "требуется вводить только цифры!";
}

Цитата (FatCat @ 4.04.2024 - 16:18)
нет никакого резона тащить целый пакет возможностей

О каком пакете речь? filter_ Это функция PHP такая-же как и все остальные и является неотъемлимой частью вне зависимости используется она или нет. Вот ссылка про валидаторы, там да, там классы (библиотеки) которые надо подключать.


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



חשב את עצמו
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6963
Пользователь №: 1
На форуме: 19 лет, 1 месяц, 15 дней
Карма: 145




Цитата (Valick @ 4.04.2024 - 16:16)
if( $_POST['numer'] != (int)$_POST['numer'] )

Не знал, что такой синтаксис допустим.
Тогда ровно то же самое, что intval.


Цитата (Valick @ 4.04.2024 - 16:16)
Это функция PHP такая-же как и все остальные

Да.
Но сам вызов этой функции скушает ресурсов намного больше, чем приведение одного типа.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 6460
Пользователь №: 35718
На форуме: 12 лет, 4 месяца, 2 дня
Карма: 208




brevis, виноват, запамятовал. Для меня всё что шторм зачёркивает автоматом
деприкейт. В любом случае никакой катастрофы нет в использовании Int вместо intval.


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 6460
Пользователь №: 35718
На форуме: 12 лет, 4 месяца, 2 дня
Карма: 208




Цитата (FatCat @ 4.04.2024 - 17:32)
Но сам вызов этой функции скушает ресурсов намного больше, чем приведение одного типа.

Да унас вроде как 2024 год на дворе, нет смысла экономить на спичках.
А вот привыкать ходить в лоток грамотно писать код надо чем раньше тем лучше.
Эдак мы и ООП объявим анафему :-)


--------------------
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kuzma92  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 81
Пользователь №: 46556
На форуме: 1 год, 15 дней
Карма:




Хорошо, такой вопрос. Я выполняю следующую проверку:

    $_POST['numer']=intval($_POST['numer']);
if($_POST['numer'] <= 0 ) $info="Обязательное поле";


Подскажите, пожалуйста, как правильно добавить сюда же (не создавая новую) дополнительную проверку на заполнение только цифр?

Это сообщение отредактировал Kuzma92 - 4.04.2024 - 19:44
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



חשב את עצמו
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 6963
Пользователь №: 1
На форуме: 19 лет, 1 месяц, 15 дней
Карма: 145




Цитата (Kuzma92 @ 4.04.2024 - 17:43)
Я выполняю следующую проверку:

Если ввести «1бублик», твоя проверка признает ввод правильным.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса