Member 13564659 Ответов: 2

Время проверки в PHP


я не могу проверить время, я использую 3 текстовых поля, в течение нескольких часов, минут, секунд

Что я уже пробовал:

$time=$_POST["time_tlp"];
	$menit=$_POST["menit_tlp"];
	$detik=$_POST["detik_tlp"];
	$jam_tlp = $_POST['time_tlp'].':'.$_POST['menit_tlp'].':'.$_POST['detik_tlp'];


if (isset($_POST['time_Tlp']  ) == ""  || !is_numeric($_POST['time_Tlp'])	|| ($_POST['time_Tlp'])>=23 ){
echo "<script>alert(' format jam salah ');window.history.go(-1);</script>";}
// $time = ( $_POST['jam_tlp'] );


elseif (isset($_POST['menit_tlp'] ) == ""  || !is_numeric($_POST['menit_tlp']) || ($_POST['menit_tlp'])>=59){
echo "<script>alert(' format menit salah ');window.history.go(-1);</script>";}
//$menit = ( $_POST['menit_tlp'] );



elseif (isset($_POST['detik_tlp'] ) == ""  || !is_numeric($_POST['detik_tlp']) || ($_POST['detik_tlp'])>=59){
echo "<script>alert(' format detik salah ');window.history.go(-1);</script>";}
	//$detik = ( $_POST['detik_tlp'] );

2 Ответов

Рейтинг:
14

Jochen Arndt

Вы сравниваете логическое значение PHP: isset - руководство пользователя[^] возвращает значение с пустой строкой.

if (isset($_POST['time_Tlp']  ) == "" 
чего никогда не бывает true.

PHP: is_numeric - руководство пользователя[^] проверяет наличие любого допустимого числового значения, включающего числа с плавающей запятой и отрицательные значения, которые также недопустимы для вашего случая. Лучшим решением было бы использование PHP: intval - руководство пользователя[^Но обратите внимание, что тогда вам придется обрабатывать специальные случаи "0" и "00".

Обратите также внимание, что значение 59 является допустимым (поэтому используйте > 59 или >= 60).


Рейтинг:
1

Member 13564659

своя работа

if (isset($_POST['time_tlp'] )== ""  || !is_numeric($_POST['time_tlp'])	|| ($_POST['time_tlp'])>=23) {
echo "<script>alert(' format jam salah ');window.history.go(-1);</script>";}


elseif (isset($_POST['menit_tlp'] ) == ""  || !is_numeric($_POST['menit_tlp']) || ($_POST['menit_tlp'])>=59){
echo "<script>alert(' format menit salah ');window.history.go(-1);</script>";}


elseif (isset($_POST['detik_tlp'] )== ""   || !is_numeric($_POST['detik_tlp']) || ($_POST['detik_tlp'])>=59){
echo "<script>alert(' format detik salah ');window.history.go(-1);</script>";}