$ _POST Проверка номера и символа

Это повторный вопрос Проверьте, что $ _POST [‘id’] является числовым, затем сделайте это, если не делаете иначе

Но..

Приведенные ответы не отвечают на вопрос ИМХО.

Вопрос в том, чтобы проверить строку $ _POST, чтобы увидеть, является ли она числом или содержит нечисловые символы. Не меняйте код для использования $ _GET.

Оригинальный вопрос таков:

if (!empty($_POST['id'])) {
echo "empty";
} else {
if (is_numeric($_POST['id'])) {
echo "numeric!";
} else {
echo "not empty but not numeric how come?";
}
}

Я пытался, is_numeric (), но так как $ _POST доставляет переменную в виде строки, даже если это число, это бесполезно.

Я пытался, если (! Preg_match (‘# [^ 0-9] #’, $ id)), но я понятия не имею, почему это не работает.

ctype_digit () Я считаю, что все еще есть проблема с просмотром всех вещей из $ _POST в виде строк, так что ничего хорошего.

Должен быть способ, но я заблудился, как это сделать. И нет, я не могу использовать $ _GET.

ОБНОВИТЬ ОТВЕТ !!! (ТИПО !!!!! Черт возьми !!!!)

// test.php

// testing with $_POST['id'] from forum with id = 5 and another test where id = new

$id = $_POST['editid'] ;
echo "<br>---".$id."---<br>";

if (empty($id)) {
echo "<br>1: empty";
} else {
if (!is_numeric($id)) {
echo "<br>2: This is the number 5";
} else {
echo "<br>3: the must be the word new";
}
}

// test 2 ... ctype_digitif (empty($id)) {
echo "<br>4: empty";
} else {
if (!ctype_digit($id)) {
echo "<br>5: This is the number 5";
} else {
echo "<br>6: the must be the word new";
}
}

// test 3 ...if (empty($id)) {
echo "<br>7: empty";
} else {
if (!preg_match('#[^0-9]#',$id)) {
echo "<br>8: This is the number 5";
} else {
echo "<br>9: the must be the word new";
}
}

/**

result from 5---5---

3: the must be the word new
6: the must be the word new
8: This is the number 5

results from "new"**/

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]