itsource

PHP의 GET URL 매개 변수

mycopycode 2022. 9. 27. 23:54
반응형

PHP의 GET URL 매개 변수

php에서 URL 파라미터로 URL을 전달하려고 하는데 이 파라미터를 얻으려고 해도 아무것도 표시되지 않습니다.

다음 URL 폼을 사용하고 있습니다.

http://localhost/dispatch.php?link=www.google.com

나는 그것을 통과시키려 하고 있다:

$_GET['link'];

하지만 아무것도 돌아오지 않았다.뭐가 문제죠?

$_GET는 함수나 언어구성이 아닙니다.그냥 변수(배열)입니다.시험:

<?php
echo $_GET['link'];

특히 슈퍼글로벌입니다.PHP에 의해 채워지고 모든 범위에서 사용할 수 있는 내장 변수입니다(global 키워드 없이 함수 내부에서 사용할 수 있습니다).

변수가 존재하지 않을 수 있으므로 코드가 다음과 같은 방법으로 알림을 트리거하지 않도록 할 수 있습니다.

<?php
if (isset($_GET['link'])) {
    echo $_GET['link'];
} else {
    // Fallback behaviour goes here
}

또는 수동 인덱스 검사를 건너뛰고 검증을 추가할 경우 필터 확장을 사용할 수 있습니다.

<?php
echo filter_input(INPUT_GET, 'link', FILTER_SANITIZE_URL);

마지막으로 null 병합 연산자(PHP/7.0 이후 사용 가능)를 사용하여 누락된 매개 변수를 처리할 수 있습니다.

echo $_GET['link'] ?? 'Fallback value';

코드를 올려주세요.

<?php
    echo $_GET['link'];
?>

또는

<?php
    echo $_REQUEST['link'];
?>

을 하다

사용방법:

$parameter = $_SERVER['QUERY_STRING'];
echo $parameter;

또는 다음을 사용합니다.

$parameter = $_GET['link'];
echo $parameter ;

모든 종류의 불필요한 코드를 삽입하지 않고 항상 안전한지 확인하려면 FILTER를 사용합니다.

echo filter_input(INPUT_GET,"link",FILTER_SANITIZE_STRING);

php.net 함수 filter_input에 대한 자세한 내용은 다른 필터에 대한 설명을 참조하십시오.

인정된 답변은 좋습니다.그러나 다음과 같은 시나리오가 있는 경우:

http://www.mydomain.me/index.php?state=California.php#Berkeley

명명된 앵커는 다음과 같이 쿼리 문자열로 처리할 수 있습니다.

http://www.mydomain.me/index.php?state=California.php&city=Berkeley

다음으로 다음과 같이 액세스합니다.

$Url = $_GET['state']."#".$_GET['city'];
$Query_String  = explode("&", explode("?", $_SERVER['REQUEST_URI'])[1] );
var_dump($Query_String)

어레이 ( [ 0 ] = > link = www.google.com )

난 아무 것도 얻지 못했어$_GET["..."](예:print_r($_GET)빈 어레이를 제공했습니다).$_SERVER['REQUEST_URI']물건이 있어야 한다는 걸 보여줬죠결국 웹페이지에 접속한 것은 .htaccess가 웹페이지를 리다이렉트하고 있었기 때문입니다(404 핸들러는 같은 .php 파일이며 테스트 시 브라우저에 오타가 있었습니다).

단순히 이름을 바꾼다는 것은 404 리다이렉션이 시작되지 않았을 때 같은 php 코드가 작동했다는 것을 의미합니다.

그래서 방법이 있다. $_GETphp 코드가 정확해도 아무것도 반환할 수 없습니다.

언급URL : https://stackoverflow.com/questions/5884807/get-url-parameter-in-php

반응형