Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2014, 14:24   #1
Parallelogram
Недотепа
Форумчанин
 
Регистрация: 18.01.2011
Сообщений: 174
По умолчанию Проверка на ввод чисел в текстовое поле

Помогите сделать проверку на ввод чисел. Нужно чтобы было возможно вводить в поле: числа, буквы, знаки или оставить пустое поле, но при отправке, в файл не записывалось ничего кроме модуля числа, в противном случае все введенное сбрасывалось к первоначальному полю.
Вроде бы, как я понял это можно сделать через проверку на ввод чисел is_numeric и проверку на пустое поле is_null. Но как этим воспользоваться я не понимаю((

Конечно, можно сделать через type="number", но тогда все равно нужно: 1. избавиться от отрицательных значений 2. Проверять на пустое поле, чтобы не удалялась информация с zap.txt


PHP код:
<form name="qw0" id="qw0" method="post">
  
   <input type="text" name="q1" value=""> 
   <input type="submit">                         
</form> 
<?php
 $dst 
fopen('zap.txt''w'); 
 
fputs($dst,$_POST['q1']);
 echo (
file_get_contents('zap.txt'));
 echo 
"<br>";
 
$a 300;
 
$b file_get_contents('zap.txt');
 if (
$a $b) {
    echo 
"a больше, чем b";
}  else {
    echo 
"a меньше, чем b";
}
 
?>

Последний раз редактировалось Parallelogram; 31.01.2014 в 14:31.
Parallelogram вне форума Ответить с цитированием
Старый 31.01.2014, 14:51   #2
Metandrostenalon
Форумчанин
 
Регистрация: 03.04.2009
Сообщений: 108
По умолчанию

проверить на пустоту num !== '', проверить регуляркой, /^[\w\d\+\-а-яё]*$/ui удалить ненужное регуляркой /[^\d]/ модуль числа abs(num)
php,javascript
Metandrostenalon вне форума Ответить с цитированием
Старый 31.01.2014, 16:17   #3
Parallelogram
Недотепа
Форумчанин
 
Регистрация: 18.01.2011
Сообщений: 174
По умолчанию

PHP код:
if (ereg("[0-9]",$string)) echo "yes"elso echo "no"
Пытаюсь сделать через такое условие проверку на число, выдает ошибку Deprecated: Function ereg() is deprecated
Что я делаю не правильно? (кроме того, что я не программист)

Получилось через
PHP код:
if (preg_match('/^\d+$/'$string)) echo "yes"; else echo "no" 

Последний раз редактировалось Parallelogram; 31.01.2014 в 16:41.
Parallelogram вне форума Ответить с цитированием
Старый 01.02.2014, 13:15   #4
Parallelogram
Недотепа
Форумчанин
 
Регистрация: 18.01.2011
Сообщений: 174
По умолчанию

Подскажите, пожалуйста, как сделать проверку до записи в файл, а не после?
PHP код:
<form name="qw0" id="qw0" method="post">
  
   <input type="text" name="q1" value=""> 
   <input type="submit">                         
</form> 
<?php
 $dst 
fopen('zap.txt''w');
 
fputs($dst,$_POST['q1']);
 
$string file_get_contents('zap.txt');
 
$a 300;
 
$b file_get_contents('zap.txt');
 if (
preg_match('/^\d+$/'$string)) 
   {
    if (
$a $b) {echo "a больше, чем b";}
    else {echo 
"a меньше, чем b";}
   }
 else echo 
"no";
?>
Я делаю так (по-другому не знаю как), но это уже после записи. Как сделать так, чтобы после нажатия "отправить" данные проверялись, и если данные не соответствуют условию, то не записываются в zap.txt ?

Последний раз редактировалось Parallelogram; 01.02.2014 в 13:17.
Parallelogram вне форума Ответить с цитированием
Старый 02.02.2014, 01:16   #5
Fenex
Форумчанин
 
Аватар для Fenex
 
Регистрация: 15.02.2012
Сообщений: 821
По умолчанию

Вот так:
Код:
<form name="qw0" id="qw0" method="post">
   <input type="text" name="q1" value=""> 
   <input type="submit">                         
</form> 
<?php
	$a = 300;
	if(preg_match('/^\d+$/', $POST['q1'])) {
		if ($a > $b) {
			echo "a больше, чем b";
			$dst = fopen('zap.txt', 'w');
			fputs($dst, $_POST['q1']);
		} else {
			echo "a меньше, чем b";
		}
	} else {
		echo "no";
	}
?>
^-.-^ My GitHub
Fenex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
JavaScript текстовое поле Валенсия34 JavaScript, Ajax 1 01.10.2012 20:19
Проверка на ввод целых чисел в Паскале посимвольно Nataly026 Паскаль, Turbo Pascal, PascalABC.NET 7 22.03.2012 19:02
Задание с циклами: ввод и проверка чисел.(Pascal) swillrocker Помощь студентам 4 04.05.2011 20:37
текстовое поле Артэс Win Api 4 10.02.2011 05:05
ID текстовое поле и хранение записи в 1 строке Droid SQL, базы данных 2 05.02.2011 08:23