strlen 명령에 2 개의 숫자를 추가하고 싶습니다. 여기 내 PHP 코드는 다음과 같습니다if 문에 여러 조건 추가
$name = mysql_real_escape_string($_POST['dgt']);
if(strlen($name) != "32") {
print "This is not a name.";
} else {
길이가 나는 길이 내가 그렇게 할 수있는 방법을 32 또는 40 인 경우 검사 할 32 인 경우는 확인?
strlen 명령에 2 개의 숫자를 추가하고 싶습니다. 여기 내 PHP 코드는 다음과 같습니다if 문에 여러 조건 추가
$name = mysql_real_escape_string($_POST['dgt']);
if(strlen($name) != "32") {
print "This is not a name.";
} else {
길이가 나는 길이 내가 그렇게 할 수있는 방법을 32 또는 40 인 경우 검사 할 32 인 경우는 확인?
을 PHP: Logical Operators - Manual에서, 당신은 원하는 어느 쪽이든 사용
$a or $b Or TRUE if either $a or $b is TRUE.
$a || $b Or TRUE if either $a or $b is TRUE.
그래서, 당신은 당신은`mysql_real_escape_string를 적용하지 않아야이
$len = strlen($name); // just get the length once and then
// use it to compare however many times....
if (!($len == 32 or $len == 40))
아래 코드와 같이 and
연산자 "& &"을 조건부로 사용하십시오.
if(strlen($name) != 32 && strlen($name) != 40)
당신이 name
이 길이 32 또는 40 다음 or
연산자를 사용하는 경우 확인을하고 싶은 경우 "||" 아래 코드와 같습니다.
user2910265
if(strlen($name) == 32 || strlen($name) == 40)
strlen()
의 반환 값을 할당, 좋은 점을 가지고있다.
$length = strlen($name);
if(!($length == 32 || $length == 40))
print "this is not a name.";
} else {
strlen을 변수 이름에 넣어 두 번이 아니라 한 번만 호출되도록합니다. 통역사는 당신을 위해 이것을 할만큼 똑똑하지 않을 것입니다. – user2910265
오, 나는 또는을 사용하는 두 번째 조건절에 대해 이야기하고 있다고 생각했습니다. OP의 질문은 혼란 스럽습니다. 왜냐하면 코드가 실제로 길이가 32가 아닌지 검사 할 때 문자열이 32인지 검사하기 때문에 응답이 혼란 스럽습니다. –
우선 mysql_real_escape_string()
; 이전 mysql_
API는 사용되지 않으므로 대신 PDO 또는 mysqli으로 전환하는 것이 좋습니다.
둘째, 입력 필터링 사용을 고려해야합니다. $_POST['dgt']
은 전혀 존재하지 않을 수 있으므로 filter_input()
을 사용하십시오.
세 번째로 숫자 값을 사용하여 strlen()
의 출력과 비교해야합니다. PHP는 "32"
을 숫자로 취급하지만 명시 적으로하는 것이 좋습니다. 이름이 하나가 32 또는 40 긴, 당신은 단순히 조건을 추가 할 수 있습니다이어야합니다
마지막 : 또는
$name = filter_input(INPUT_POST, 'dgt', FILTER_UNSAFE_RAW);
if (empty($name) || (strlen($name) != 32 && strlen($name) != 40)) {
print "This is not a name.";
}
을 in_array()
사용
if (empty($name) || !in_array(strlen($name), array(32, 40))) {
print "This is not a name.";
}
같은 것을 사용할 수 있습니다 (이 양식은 높은 우선 순위를 가지고)()'즉시 쿼리에 사용하지 않는. –
왜 32 주위에 따옴표를 사용합니까 ?? ... 따옴표를 제거하십시오 –
Btw, 길이가 32 또는 40 인 이름은 무엇이 특별한가요? –