Проблем с PHP Validation Code

Angel

Registered
Здравейте значи ето това ми създава ядове и винаги излиза грешка при него.
Код:
//Validate the age
if (is_numeric($_REQUEST['age'])) {
	$age = $_REQUEST['age'];
	if ($age =='0-29') {
		echo '<p><b>You are between 0-29 age</p></b>';
	}elseif ($age == '30-60') {
		echo '<p><b>You are between 30-60 age</p></b>';
	}elseif ($age == '60+') {
		echo '<p><b>You are over 60</p></b>';
	} else {
		$age = NULL;
		echo '<p class="error">You must enter your age!</p>';
}

Във форм-а кода за age e:
Код:
<p><b>Age:</b>
<select name="age">
<option value="0-29">Under 30</option>
<option value="30-60">Between 30 and 60</option>
<option value="60+">Over 60</option>
</select></p>

10x
 
накрая , слагаш $аge да е равно на NULL , мисля ,че няма нужда от това и ако го махнеш няма да ти дава грешки .. :?:
 
В твоя код има малко бъркотия с типа на данните. Ще се опитам да обясня подробно.

Първо си изпуснал една от затварящите скоби } на края, след последния else.

Код:
<option value="0-29">Under 30</option>
Стойността "0-29" не е число. "Число" означава всичко от 0 до 9, опционно може да съдържа плюс/минус, десетичен знак, и др. Това обаче което имаш в опцията е текст, някаква поредица от символи, но това не е число.

Код:
//Validate the age
if (is_numeric($_REQUEST['age'])) { 
.....
}
Тук чрез is_numeric проверяваш дали подадената стойност е число. Ако е число (ако проверката върне true), РНР влиза в if/else конструкцията и изпълвяна инструкциите там една по една. Но при този код, функцията is_numeric връща false и другите инструкции не се изпълняват.
 
Предполагам грешката идва от това, че имаш проверка is_numeric, а подаваш информация, която съдържа - и +.
 

Back
Горе