제작이유 : 스팸 게시글로 인하여 주문게시판이 오염됨
글작성자 : 해피정
제작방향 :
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
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 2730 | 15년 전 | 641 | ||
| 2729 | 15년 전 | 1393 | ||
| 2728 |
|
15년 전 | 929 | |
| 2727 |
용다섯마리
|
15년 전 | 679 | |
| 2726 |
니콜크더만
|
15년 전 | 759 | |
| 2725 |
Insungbyun
|
15년 전 | 828 | |
| 2724 | 15년 전 | 1224 | ||
| 2723 | 15년 전 | 722 | ||
| 2722 | 15년 전 | 729 | ||
| 2721 | 15년 전 | 946 | ||
| 2720 | 15년 전 | 681 | ||
| 2719 |
|
15년 전 | 1422 | |
| 2718 | 15년 전 | 1050 | ||
| 2717 |
디이자이너
|
15년 전 | 2869 | |
| 2716 |
|
15년 전 | 1360 | |
| 2715 | 15년 전 | 646 | ||
| 2714 |
고추장불고기
|
15년 전 | 615 | |
| 2713 | 15년 전 | 768 | ||
| 2712 | 15년 전 | 1257 | ||
| 2711 | 15년 전 | 1187 | ||
| 2710 | 15년 전 | 665 | ||
| 2709 | 15년 전 | 792 | ||
| 2708 |
TWM소프트
|
15년 전 | 980 | |
| 2707 |
|
15년 전 | 1213 | |
| 2706 |
|
15년 전 | 1014 | |
| 2705 | 15년 전 | 993 | ||
| 2704 | 15년 전 | 1187 | ||
| 2703 |
|
15년 전 | 664 | |
| 2702 |
|
15년 전 | 646 | |
| 2701 | 15년 전 | 1055 | ||
| 2700 | 15년 전 | 641 | ||
| 2699 | 15년 전 | 1741 | ||
| 2698 | 15년 전 | 2238 | ||
| 2697 |
|
15년 전 | 809 | |
| 2696 | 15년 전 | 815 | ||
| 2695 | 15년 전 | 1472 | ||
| 2694 |
|
15년 전 | 879 | |
| 2693 | 15년 전 | 976 | ||
| 2692 | 15년 전 | 1382 | ||
| 2691 |
Homepix
|
15년 전 | 1538 | |
| 2690 | 15년 전 | 1645 | ||
| 2689 | 15년 전 | 1084 | ||
| 2688 |
sooram
|
15년 전 | 1756 | |
| 2687 |
terrorboys
|
15년 전 | 1562 | |
| 2686 |
진정한승리
|
15년 전 | 799 | |
| 2685 |
|
15년 전 | 1771 | |
| 2684 |
진정한승리
|
15년 전 | 917 | |
| 2683 |
dannykim
|
15년 전 | 775 | |
| 2682 | 15년 전 | 822 | ||
| 2681 | 15년 전 | 775 | ||
| 2680 | 15년 전 | 944 | ||
| 2679 | 15년 전 | 956 | ||
| 2678 | 15년 전 | 1171 | ||
| 2677 |
|
15년 전 | 3185 | |
| 2676 | 15년 전 | 1755 | ||
| 2675 | 15년 전 | 889 | ||
| 2674 | 15년 전 | 1585 | ||
| 2673 | 15년 전 | 762 | ||
| 2672 | 15년 전 | 895 | ||
| 2671 |
다케미카코
|
15년 전 | 1858 | |
| 2670 | 15년 전 | 1811 | ||
| 2669 | 15년 전 | 851 | ||
| 2668 |
terrorboys
|
15년 전 | 1113 | |
| 2667 | 15년 전 | 1069 | ||
| 2666 | 15년 전 | 1030 | ||
| 2665 | 15년 전 | 1220 | ||
| 2664 | 15년 전 | 950 | ||
| 2663 | 15년 전 | 977 | ||
| 2662 | 15년 전 | 897 | ||
| 2661 | 15년 전 | 1029 | ||
| 2660 | 15년 전 | 945 | ||
| 2659 | 15년 전 | 1539 | ||
| 2658 | 15년 전 | 777 | ||
| 2657 | 15년 전 | 748 | ||
| 2656 | 15년 전 | 1385 | ||
| 2655 | 15년 전 | 1285 | ||
| 2654 | 15년 전 | 1230 | ||
| 2653 | 15년 전 | 801 | ||
| 2652 | 15년 전 | 1591 | ||
| 2651 | 15년 전 | 976 | ||
| 2650 | 15년 전 | 1627 | ||
| 2649 |
windday
|
15년 전 | 1979 | |
| 2648 | 15년 전 | 1403 | ||
| 2647 | 15년 전 | 7604 | ||
| 2646 | 15년 전 | 1035 | ||
| 2645 | 15년 전 | 1249 | ||
| 2644 | 15년 전 | 981 | ||
| 2643 | 15년 전 | 1198 | ||
| 2642 | 15년 전 | 976 | ||
| 2641 | 15년 전 | 1188 | ||
| 2640 |
프리랜서개발자
|
15년 전 | 919 | |
| 2639 | 15년 전 | 2009 | ||
| 2638 | 15년 전 | 1021 | ||
| 2637 | 15년 전 | 928 | ||
| 2636 | 15년 전 | 1420 | ||
| 2635 | 15년 전 | 1314 | ||
| 2634 | 15년 전 | 1032 | ||
| 2633 | 15년 전 | 914 | ||
| 2632 | 15년 전 | 948 | ||
| 2631 | 15년 전 | 1231 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기