게시물 요청이있는 GET 스타일 URL로 이동하면 어떻게됩니까?

StackOverflow https://stackoverflow.com/questions/421378

  •  05-07-2019
  •  | 
  •  

문제

내가 전화 한 페이지가 있다고 가정 해 봅시다 display.php 그리고 사용자는보고 있습니다 display.php?page=3. 사용자가 게시물 요청을 통해 투표와 같은 조치를 취한 다음에있는 페이지로 다시 가져오고 싶습니다. 그래서, 내가 포스트 요청을한다면 display.php?page=3 페이지 정보가 스크립트에서도 사용할 수 있습니까?

도움이 되었습니까?

해결책

간단한 대답은 '예'입니다. Get 스타일 URL을 게시 양식의 제출 URL로 사용할 수 있습니다. PHP는 포스트를 모두 가지고 있으며 양식이 제출 될 때 일반적인 방식으로 정보를 사용할 수 있습니다.

이것은 당신을 말하는 것이 아닙니다 ~해야 한다 이렇게하지만 작동합니다.

다른 팁

PHP에서는 특수 글로벌 어레이에서 요청 변수를 얻을 수 있습니다.

$_GET['page'] (for GET requests)
$_POST['page'] (for POST requests)
$_REQUEST['page'] (for either)

"Post 후 리디렉션"을 찾고있는 것처럼 들립니다. display.php 및 vote.php를 별도의 파일로 분리하는 것이 좋습니다. 투표는 다음과 같이 보입니다.

<?php
//vote.php
$page_number = (int)$_REQUEST['page'];
vote_for_page($page_number); //your voting logic
header('Location: display.php?page=' . $page_number); //return to display.php

맹목적으로 수용되지 않은 양식 데이터를 맹목적으로 받아들이는 것은 앱에 위험 할 수 있습니다.

편집 : 일부 사람들은 두 경우를 모두 처리하기 위해 $ _request를 사용하는 것이 나쁜 형태를 고려합니다. 위험은 게시물을 예상 할 때 얻을 수있는 경우 오류를 신호를 보낼 수 있다는 것입니다. 일반적으로 GET은보기를 위해 예약되어 있으며 게시물은 변경을 위해 예약되어 있습니다 (생성/업데이트/삭제 작업). 이것이 실제로 문제인지 여부는 응용 프로그램에 따라 다릅니다.

예, get 배열은 요청 메소드에 관계없이 항상 URL 매개 변수로 채워집니다. 다음과 같은 간단한 페이지로 시도 할 수 있습니다.

<form action="test.php?a=b" method="post">
    <input name="a"/>
    <input type="submit"/>
</form>
<pre>
POST:
<?php print_r($_POST); ?>
GET:
<?php print_r($_GET); ?>
</pre>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top