문제

다른 페이지로 전달 된 URL 변수에 사용할 수있는보다 신뢰할 수 있고, 더 잘 및 안전한 방법입니다. 1). URL 매개 변수로 세션 변수를 사용하거나

2). 일반 쿼리 문자열 매개 변수.

"더 안정적이고, 더 좋고 안전하다"와 관련하여 : 1. 사용자가 쿠키를 비활성화하는 경우와 같이 클라이언트 측에서 파생되는 문제를 방지합니다. 2. 브라우저 호환성 3. API 호출 만들기 (일부 API의 제한 사항 및 호환성 문제가 있으므로) 4. 자원 및 메모리 사용 및 처리 속도

URL의 쿼리 문자열 파라미터의 양이 사용자 입력을 기반으로 (URL에서 전달 될 잠재적으로 9 개의 값)이 달라질 수 있습니다. URL 매개 변수에서 모든 해당 (9)을 모두 수행하는 것보다 세션 변수에 변수 값을 저장하는 것이 더 쉽게 보일 것입니다. 그러나 위에서 언급 한 4 가지 우려로 인해 세션 변수를 사용하는 주저합니다.

조언을 주셔서 감사합니다!

ps. URL 매개 변수는 동적으로 구축됩니다 다음과 같이 $ URL 변수로 :

$keyword = trim($_GET["Keyword"]);

$url = "webpage.php?";
$url .= "&Keyword=$keyword";

$shopByStore = $_GET["store"];
if (!empty($shopByStore)) {
$url .= "&store=$shopByStore";
}
// with 7 more GET methods potentially retrieving values for the URL parameters 
.

URL은 다음과 같습니다.

<a href="<?php echo $url; ?>">anchor text</a><br>
.

및 물론 세션 가변 경로가되면 사용자 입력 값은 URL 클릭으로부터 설정되고 세션이 끝날 때까지 세션 변수에 저장됩니다.

if (isset($_GET["store"])) {
$_SESSION["shopByStore"] = $_GET["store"];
}  
.

도움이 되었습니까?

해결책

물론 세션 변수에서 검색에 대해 제출 된 키워드를 저장할 수 있습니다.

그러나 유용합니까?아닙니다.

세션 변수는 세션이 파괴 될 때 모든 것을 잊어 버릴 것입니다.어쩌면 사용자가 검색을 저장하거나 다른 사용자에게 제공 하려는가?

GET-PARACTERSED에 문제가 없으므로 전체 URL을 복사하고 안전하게 복사하십시오.

그러나 SESSION 매개 변수가 있는가?가능하지 않습니다.각 사용자는 자체 세션을 가지고 있으며 다음에 사용자가 사이트를 방문 할 때 다른 세션을 가져옵니다 (예 : 사용자가 브라우저를 이전에 브라우저를 닫은 경우).

세션에서 사용자 특정 정보 만 저장해야합니다.예를 들어 사용자 ID, 사용자 이름 또는 바구니 항목.

SESSION vs GET의 일부 포인트 일뿐입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top