질문Q #22172
ci4 form submit 404 - File Not Found
세르피르2020-02-27 18:16:50

안녕하세요..

CI4가 정식으로 출시되어 기쁘게 하나하나 기능을 익혀가고 있습니다.

그런데 3에서 변경된 부분이 많아 많이 해매고 있습니다.. 그래도 나름대로 재미를 느끼며 공부중입니다.

그런 form부분에서 완전 막혀 있습니다.

 

<?php echo form_open_multipart('/test/item');?>
   <label for="title">Title</label>
   <input type="input" name="title" /><br />

   <label for="body">Text</label>
   <textarea name="body"></textarea><br />
   <input type="submit" name="submit" value="submit" />
<?php echo form_close();?>

 

이렇게 하고 submit을 클릭하면..

404 - File Not Found

컨트롤러 또는 해당 메서드를 찾을 수 없습니다: App\Controllers\Test::item

메시지가 나옵니다.

그런데..

<form action="/test/item">

으로 하면 되네요.. ㅠㅡㅠ

Headers 를 보면 Referrer Policy:no-referrer-when-downgrade  나오는걸로 봐서...

CSRF 로인해 오류가 발생하는것 같은데 어떻케 해야 할지.. 간단한 예제라도 보고 싶은데.. 도움 부탁드립니다.

 

답변2
#1 한대승(불의회상) 2020-02-28 09:09:35
브라우져의 소스보기 기능을 사용하여 뷰로 출력되는 html이 어떻게 생성되는지 부터 살펴보세요.
#2 세르피르 2020-02-28 09:56:06
<form action="http://testlocal/index.php/test/item" enctype="multipart&#x2F;form-data" method="post" accept-charset="utf-8">
<input type="hidden" name="csrf_test_ver_1" value="c29c29e735492b9c3c86db557daaa4da" /> <label for="title">Title</label>
<input type="input" name="title" /><br />
<label for="body">Text</label>
<textarea name="body"></textarea><br />
<input type="submit" name="submit" value="Create news item" />
</form>
 
위와같이 소스가 생성됩니다.

그러고보니 도메인 주소가 같이 나오는데 저 도메인 주소가 안나오도록 하려면 어떻케 해야하는지.. 

도움 도움 부탁드립니다.