제작이유 : 스팸 게시글로 인하여 주문게시판이 오염됨
글작성자 : 해피정
제작방향 :
form 문서에서 넘어온 특정값이 숫자만 입력 (예를 들어 전화번호 등)만 넘어오는것을 고려하여 넘어온 값이 숫자만 온것인지 혹은 문자가 혼재된 것인지 체크
is_int , intval 등 각종 숫자 점검하는 PHP 함수를 사용하려 했으나 실패...
특히 is_int 함수의 경우 is_int(숫자) 인 경우 올바르게 작동하지만.. is_int($aaa) 와 같이 변수로 넘겨받는 경우 무조건 문자로 인식하는 버그가 발견됨...
자바스크립트가 아닌 php 페이지에서 체크하는 로직은 없는것 같아서 2일간 구글링 끝에 아래와 같이 정리하게 되었습니다.
더 좋은 방법이나 오류가 있음 조언 부탁드립니다. 감사합니다.
<%
/*
// 3-1. 숫자만 입력받기 , preg_match 활용
*/
if ( preg_match("/^([0-9]*){3,15}$/", $_POST[aaa]) ) {
echo "this is a integer 정수입니다.";
} else {
echo "this is a string 문자입니다";
}
/*
// 3-2. 숫자만 입력받기 , is_int 활용 , PHP 버그로 오작동
// 테스트 : PHP 4.4.7 , PHP 5.2.9
*/
// 상황1 : 오작동
if (is_int($_POST[aaa]))
echo "is_int 1 = 정수 this is a integer <br>";
else
echo "is_int 1 = 문자 this is a string <br>";
// 상황2 : 오작동
$aaa = $_POST[aaa];
if (is_int($aaa))
echo "is_int 2 = 정수 this is a integer <br>";
else
echo "is_int 2 = 문자 this is a string <br>";
// 상황3 : 정상
if (is_int(111))
echo "is_int 3 = 정수 this is a integer <br>";
else
echo "is_int 3 = 문자 this is a string <br>";
%>
글작성자 : 해피정
제작방향 :
form 문서에서 넘어온 특정값이 숫자만 입력 (예를 들어 전화번호 등)만 넘어오는것을 고려하여 넘어온 값이 숫자만 온것인지 혹은 문자가 혼재된 것인지 체크
is_int , intval 등 각종 숫자 점검하는 PHP 함수를 사용하려 했으나 실패...
특히 is_int 함수의 경우 is_int(숫자) 인 경우 올바르게 작동하지만.. is_int($aaa) 와 같이 변수로 넘겨받는 경우 무조건 문자로 인식하는 버그가 발견됨...
자바스크립트가 아닌 php 페이지에서 체크하는 로직은 없는것 같아서 2일간 구글링 끝에 아래와 같이 정리하게 되었습니다.
더 좋은 방법이나 오류가 있음 조언 부탁드립니다. 감사합니다.
<%
/*
// 3-1. 숫자만 입력받기 , preg_match 활용
*/
if ( preg_match("/^([0-9]*){3,15}$/", $_POST[aaa]) ) {
echo "this is a integer 정수입니다.";
} else {
echo "this is a string 문자입니다";
}
/*
// 3-2. 숫자만 입력받기 , is_int 활용 , PHP 버그로 오작동
// 테스트 : PHP 4.4.7 , PHP 5.2.9
*/
// 상황1 : 오작동
if (is_int($_POST[aaa]))
echo "is_int 1 = 정수 this is a integer <br>";
else
echo "is_int 1 = 문자 this is a string <br>";
// 상황2 : 오작동
$aaa = $_POST[aaa];
if (is_int($aaa))
echo "is_int 2 = 정수 this is a integer <br>";
else
echo "is_int 2 = 문자 this is a string <br>";
// 상황3 : 정상
if (is_int(111))
echo "is_int 3 = 정수 this is a integer <br>";
else
echo "is_int 3 = 문자 this is a string <br>";
%>
[이 게시물은 관리자님에 의해 2011-10-31 17:16:08 PHP & HTML에서 이동 됨]
댓글 2개
16년 전
http://gnucomun.net/sp/freetalk.26.1
제가 좋아하는 꽁수입니다~ ㅋㅋ
<?
if($_POST[aaa] == intval($_POST[aaa])) echo "$_POST[aaa] is an integer";
echo "$_POST[aaa] ISN't n integer";
?>
제가 좋아하는 꽁수입니다~ ㅋㅋ
<?
if($_POST[aaa] == intval($_POST[aaa])) echo "$_POST[aaa] is an integer";
echo "$_POST[aaa] ISN't n integer";
?>
16년 전
ctype_digit
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=49020&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%C4%B3%BD%C3&sop=and
http://www.phpschool.com/gnuboard4/bbs/board.php?bo_table=tipntech&wr_id=49020&sca=&sfl=wr_subject%7C%7Cwr_content&stx=%C4%B3%BD%C3&sop=and
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2530 |
|
15년 전 | 2612 | |
| 2529 |
|
15년 전 | 1325 | |
| 2528 | 15년 전 | 1029 | ||
| 2527 | 15년 전 | 1498 | ||
| 2526 | 15년 전 | 901 | ||
| 2525 | 15년 전 | 1198 | ||
| 2524 | 15년 전 | 1092 | ||
| 2523 | 15년 전 | 1492 | ||
| 2522 |
NY더지더지
|
15년 전 | 1632 | |
| 2521 | 15년 전 | 903 | ||
| 2520 |
|
15년 전 | 1310 | |
| 2519 |
|
15년 전 | 1102 | |
| 2518 | 15년 전 | 932 | ||
| 2517 |
|
15년 전 | 1007 | |
| 2516 | 15년 전 | 1321 | ||
| 2515 | 15년 전 | 762 | ||
| 2514 | 15년 전 | 946 | ||
| 2513 | 15년 전 | 2599 | ||
| 2512 |
|
15년 전 | 1417 | |
| 2511 |
|
15년 전 | 785 | |
| 2510 |
|
15년 전 | 815 | |
| 2509 | 15년 전 | 1260 | ||
| 2508 | 15년 전 | 1294 | ||
| 2507 | 15년 전 | 1550 | ||
| 2506 | 15년 전 | 1026 | ||
| 2505 | 15년 전 | 1395 | ||
| 2504 |
JMoon
|
15년 전 | 692 | |
| 2503 |
|
15년 전 | 1041 | |
| 2502 | 15년 전 | 1304 | ||
| 2501 | 15년 전 | 2718 | ||
| 2500 | 15년 전 | 1081 | ||
| 2499 | 15년 전 | 1052 | ||
| 2498 | 15년 전 | 951 | ||
| 2497 |
첫만남의감격
|
15년 전 | 827 | |
| 2496 |
|
15년 전 | 838 | |
| 2495 |
|
15년 전 | 3430 | |
| 2494 |
soulfuleyes
|
15년 전 | 2804 | |
| 2493 | 15년 전 | 1986 | ||
| 2492 | 15년 전 | 2433 | ||
| 2491 | 15년 전 | 1522 | ||
| 2490 | 15년 전 | 1067 | ||
| 2489 | 15년 전 | 1062 | ||
| 2488 | 15년 전 | 2338 | ||
| 2487 | 15년 전 | 881 | ||
| 2486 | 15년 전 | 1926 | ||
| 2485 |
못말리는크리스
|
15년 전 | 728 | |
| 2484 |
|
15년 전 | 1877 | |
| 2483 | 15년 전 | 811 | ||
| 2482 | 15년 전 | 2486 | ||
| 2481 | 15년 전 | 731 | ||
| 2480 | 15년 전 | 1163 | ||
| 2479 | 15년 전 | 713 | ||
| 2478 |
|
15년 전 | 2881 | |
| 2477 | 15년 전 | 1258 | ||
| 2476 | 15년 전 | 1290 | ||
| 2475 | 15년 전 | 1299 | ||
| 2474 | 15년 전 | 1364 | ||
| 2473 | 15년 전 | 977 | ||
| 2472 | 15년 전 | 1735 | ||
| 2471 | 15년 전 | 1263 | ||
| 2470 | 15년 전 | 845 | ||
| 2469 | 15년 전 | 2701 | ||
| 2468 | 15년 전 | 1091 | ||
| 2467 | 15년 전 | 1289 | ||
| 2466 | 15년 전 | 1087 | ||
| 2465 | 15년 전 | 1939 | ||
| 2464 | 15년 전 | 1953 | ||
| 2463 | 15년 전 | 1615 | ||
| 2462 | 15년 전 | 970 | ||
| 2461 | 15년 전 | 1207 | ||
| 2460 | 15년 전 | 901 | ||
| 2459 | 15년 전 | 839 | ||
| 2458 | 15년 전 | 1082 | ||
| 2457 | 15년 전 | 2444 | ||
| 2456 | 15년 전 | 2467 | ||
| 2455 | 15년 전 | 1448 | ||
| 2454 | 15년 전 | 994 | ||
| 2453 | 15년 전 | 1146 | ||
| 2452 | 15년 전 | 1157 | ||
| 2451 | 15년 전 | 1020 | ||
| 2450 | 15년 전 | 922 | ||
| 2449 | 15년 전 | 851 | ||
| 2448 | 15년 전 | 1212 | ||
| 2447 | 15년 전 | 1164 | ||
| 2446 | 15년 전 | 910 | ||
| 2445 | 15년 전 | 878 | ||
| 2444 | 15년 전 | 1052 | ||
| 2443 | 15년 전 | 1530 | ||
| 2442 | 15년 전 | 1055 | ||
| 2441 | 15년 전 | 1385 | ||
| 2440 |
|
15년 전 | 1222 | |
| 2439 | 15년 전 | 1893 | ||
| 2438 |
|
15년 전 | 2952 | |
| 2437 |
|
15년 전 | 2284 | |
| 2436 |
|
15년 전 | 884 | |
| 2435 |
|
15년 전 | 1894 | |
| 2434 |
|
15년 전 | 2084 | |
| 2433 |
|
15년 전 | 1381 | |
| 2432 | 15년 전 | 1361 | ||
| 2431 | 15년 전 | 2626 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기