CI 묻고 답하기

제목 form_validation 이 작동을 안합니다..
글쓴이 경량 작성시각 2013/04/08 01:27:34
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 15152   RSS
컨트롤러의 test.php 파일입니다..
 
<?
class Test extends CI_Controller {
function index() {
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
 
$this->form_validation->set_rules('keyword', 'keyword', 'required');
 
if ($this->form_validation->run() == FALSE) {
echo '실패';
echo validation_errors();
} else {
echo '성공';
}
}
}
?>

index.php는 죽여 놓았고

http://localhost/test?keyword=12345

이런식으로 접근해도 분명 keyword는 존재 하는데

실패 메시지가 뜹니다.. 더군다나 validation_errors(); 에러는 뜨지도 않습니다...

한참 찾아봐도 어디가 잘못된지 모르겠네요.. 답변좀 부탁드립니다....ㅠㅠ
 
 다음글 2차 도메인의 rewrite rule 질문 입니다. (3)
 이전글 textarea가 데이터를 넘겨 받았는데. (7)

댓글

니삼 / 2013/04/08 04:39:52 / 추천 0
참고할수있게 form도 올려주시겠어요 ?
경량 / 2013/04/08 06:36:55 / 추천 0
ajax로 들어온값체크 하려고 만든 로직 입니다 흐흐 폼검증이 제대로 작동하나 확인 하려고 테스트를 했는데 역시나 작동이 안되더라구요 ㅠㅠ
경량 / 2013/04/08 06:50:47 / 추천 0
 <!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form acti method="post">
<input type="text" name="keyword">
<input type="submit">
</form>
</body>
</html>

말씀듣고 혹시나 post로 폼으로 날렸더니 잘되네요 get으로 날리면 똑같이 실패 뜨고 에러가 안 나고 ..
저 라이브러리 자체가 $_SERVER['REQUEST_METHOD'] 가 post일때만 작동되는 것 같습니다..

저 라이브러리로 ajax에서 get으로 날라온 값들 검증 하려면 어떻게 해야 하나요??
(매뉴얼 해당 부분 뒤져봐도 method 에 대해서는 안 보이던데..)
get으로 사용하고 싶은데 말이죠 ㅠㅠ ajax로 post로 날리니 잘 수행되긴 하는데 ...


변종원(웅파) / 2013/04/08 10:03:10 / 추천 0
ci라는 프레임워크는 get방식은 배제(?, 쓸수는 있지만)하고 만들었다가 제 생각입니다.

form_validation은 폼전송을 post로 한다고 전제하고 시작을 합니다.

라이브러리 파일 열어보면 $_POST 의 배열갯수가 0 일 경우 false를 반환합니다.
경량 / 2013/04/08 12:05:31 / 추천 0
답변 감사합니다.

구글링 해보니 라이브러리 쓰기전에 $_POST = $_GET; 하면 된다고 하길래 그렇게 하니 되긴 하네요


웅파님께서는 get을 사용 잘 안하시는지 궁금합니다;;
혹시 사요하신다면 폼 검증은 어떻게 하시나요??



따로 라이브러리 만들어서 하시는지.. 아니면 그때 그때 유효성 검사 하시는지 말이죠..

초보라 배울게 많습니다 (_ _)
니삼 / 2013/04/08 17:54:20 / 추천 0
일반적으로 form으로 전송되는 값은 대부분 post를 씁니다.
그 이유는 get의 문자열 길이 제한이 가장 크다고 생각됩니다.
파일 같은걸 get으로 넘겨줄수 없으니까요.

변종원(웅파) / 2013/04/08 18:53:23 / 추천 0
경량/ 페이징은 $_POST로 넘기고 주소를 변조하는 형태로 사용합니다. (포럼 소스 참고)

그외의 변수들은 form_validation에서 set_value로 뷰에서 사용할 수 있어서요.

ajax 처리할때는 jquery로 뷰에서 한번 체크하고 ajax action하는 쪽에서 한번 더 체크하는 방식으로 합니다.
강동원 / 2017/01/28 23:11:20 / 추천 0
cordova로 어플을 제작 중인데 많은 도움이 되었습니다. 고맙습니다.