수색…


소개

슈퍼 전역 변수는 모든 범위에서 항상 사용할 수있는 기본 제공 변수입니다.

PHP에서 미리 정의 된 여러 변수는 "슈퍼 전역"이므로 스크립트 전체에서 모든 범위에서 사용할 수 있습니다. global $variable; 를 수행 할 필요는 없습니다 global $variable; 함수 또는 메소드 내에서 액세스 할 수 있습니다.

PHP5 슈퍼 전역

아래는 PHP5 SuperGlobals입니다.

  • $ GLOBALS
  • $ _REQUEST
  • $ _GET
  • $ _POST
  • $ _FILES
  • $ _SERVER
  • $ _ENV
  • $ _ 쿠킹
  • $ _SESSION

$ GLOBALS :이 슈퍼 전역 변수는 전역 변수에 액세스하는 데 사용됩니다.

<?php    
$a = 10;    
function foo(){
    echo $GLOBALS['a'];
}    
//Which will print 10 Global Variable a
?>

$ _REQUEST :이 SuperGlobal 변수는 HTML 양식에 의해 제출 된 데이터를 수집하는 데 사용됩니다.

<?php
if(isset($_REQUEST['user'])){
    echo $_REQUEST['user'];
}
//This will print value of HTML Field with name=user submitted using POST and/or GET MEthod
?>

$ _GET :이 슈퍼 전역 변수는 get 메소드로 HTML Form에 의해 제출 된 데이터를 수집하는 데 사용됩니다.

<?php
if(isset($_GET['username'])){
    echo $_GET['username'];
}
//This will print value of HTML field with name username submitted using GET Method
?>

$ _POST :이 슈퍼 전역 변수는 post 메소드로 HTML Form에 의해 제출 된 데이터를 수집하는 데 사용됩니다.

<?php
if(isset($_POST['username'])){
    echo $_POST['username'];
}
//This will print value of HTML field with name username submitted using POST Method
?>

$ _FILES :이 슈퍼 전역 변수는 HTTP POST 메소드를 통해 업로드 된 파일의 정보를 보유합니다.

<?php
if($_FILES['picture']){
    echo "<pre>";
    print_r($_FILES['picture']);
    echo "</pre>";
}
/**
This will print details of the File with name picture uploaded via a form with method='post and with enctype='multipart/form-data'
Details includes Name of file, Type of File, temporary file location, error code(if any error occured while uploading the file) and size of file in Bytes.
Eg.

Array
(
    [picture] => Array
        (
            [0] => Array
                (
                    [name] => 400.png
                    [type] => image/png
                    [tmp_name] => /tmp/php5Wx0aJ
                    [error] => 0
                    [size] => 15726
                )
        )
)

*/
?>

$ _SERVER :이 슈퍼 전역 변수는 스크립트, HTTP 헤더 및 서버 경로에 대한 정보를 포함합니다.

<?php
    echo "<pre>";
    print_r($_SERVER);
    echo "</pre>";
    /**
    Will print the following details
    on my local XAMPP 
    Array
(
    [MIBDIRS] => C:/xampp/php/extras/mibs
    [MYSQL_HOME] => \xampp\mysql\bin
    [OPENSSL_CONF] => C:/xampp/apache/bin/openssl.cnf
    [PHP_PEAR_SYSCONF_DIR] => \xampp\php
    [PHPRC] => \xampp\php
    [TMP] => \xampp\tmp
    [HTTP_HOST] => localhost
    [HTTP_CONNECTION] => keep-alive
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_UPGRADE_INSECURE_REQUESTS] => 1
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36
    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*;q=0.8
    [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch
    [HTTP_ACCEPT_LANGUAGE] => en-US,en;q=0.8
    [PATH] => C:\xampp\php;C:\ProgramData\ComposerSetup\bin;
    [SystemRoot] => C:\Windows
    [COMSPEC] => C:\Windows\system32\cmd.exe
    [PATHEXT] => .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    [WINDIR] => C:\Windows
    [SERVER_SIGNATURE] => Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12 Server at localhost Port 80
    [SERVER_SOFTWARE] => Apache/2.4.16 (Win32) OpenSSL/1.0.1p PHP/5.6.12
    [SERVER_NAME] => localhost
    [SERVER_ADDR] => ::1
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => ::1
    [DOCUMENT_ROOT] => C:/xampp/htdocs
    [REQUEST_SCHEME] => http
    [CONTEXT_PREFIX] => 
    [CONTEXT_DOCUMENT_ROOT] => C:/xampp/htdocs
    [SERVER_ADMIN] => postmaster@localhost
    [SCRIPT_FILENAME] => C:/xampp/htdocs/abcd.php
    [REMOTE_PORT] => 63822
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /abcd.php
    [SCRIPT_NAME] => /abcd.php
    [PHP_SELF] => /abcd.php
    [REQUEST_TIME_FLOAT] => 1469374173.88
    [REQUEST_TIME] => 1469374173
)
*/
?>

$ _ENV :이 SuperGlobal 변수 쉘 환경 변수 PHP가 실행되는 세부 정보.

$ _COOKIE :이 SuperGlobal 변수는 주어진 Key로 쿠키 값을 검색하는데 사용됩니다.

<?php
$cookie_name = "data";
$cookie_value = "Foo Bar";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
}
else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}

/**
    Output
    Cookie 'data' is set!
    Value is: Foo Bar
*/
?>

$ _SESSION :이 SuperGlobal 변수는 서버에 저장된 세션 값을 설정 및 검색하는 데 사용됩니다.

<?php
//Start the session
session_start();
/**
    Setting the Session Variables
    that can be accessed on different
    pages on save server.
*/
$_SESSION["username"] = "John Doe";
$_SESSION["user_token"] = "d5f1df5b4dfb8b8d5f";
echo "Session is saved successfully";

/**
    Output
    Session is saved successfully
*/
?>

Suberglobals 설명

소개

간단히 말해서, 이들은 스크립트의 모든 범위에서 사용할 수있는 변수입니다.

즉, 함수의 매개 변수로 전달할 필요가 없으며 다른 범위에서 사용할 수 있도록 코드 블록 외부에 저장하지 않아도됩니다.

슈퍼 글로벌이란 무엇입니까 ??

이들이 슈퍼 영웅과 같다고 생각한다면 - 그렇지 않습니다.

PHP 버전 7.1.3에서 9 개의 슈퍼 전역 변수가 있습니다. 그들은 다음과 같습니다 :

  • $GLOBALS - 전역 범위에서 사용 가능한 모든 변수를 참조합니다.
  • $_SERVER - 서버 및 실행 환경 정보
  • $_GET - HTTP GET 변수
  • $_POST - HTTP POST 변수
  • $_FILES - HTTP 파일 업로드 변수
  • $_COOKIE _ 쿠키 - HTTP 쿠키
  • $_SESSION - 세션 변수
  • $_REQUEST - HTTP 요청 변수
  • $_ENV - 환경 변수

설명서를 참조하십시오.

더 말해줘, 더 말해줘.

그리스 참조로 유감입니다! 링크

이 슈퍼 영웅 전역에 대한 설명을 할 시간입니다.

$GLOBALS

현재 스크립트의 전역 범위에 정의 된 모든 변수에 대한 참조를 포함하는 연관 배열입니다. 변수 이름은 배열의 키입니다.

암호

$myGlobal = "global"; // declare variable outside of scope

function test()
{
    $myLocal = "local"; // declare variable inside of scope
    // both variables are printed
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

test(); // run function
// only $myGlobal is printed since $myLocal is not globally scoped
var_dump($myLocal);
var_dump($myGlobal);

산출

string 'local' (length=5)
string 'global' (length=6)
null
string 'global' (length=6)

위의 예제에서 $myLocaltest() 함수 내부에서 선언 된 후 함수가 닫힌 후에 소멸되기 때문에 두 번째로 표시되지 않습니다.

세계화되기

이 문제를 해결하려면 두 가지 옵션이 있습니다.

옵션 1 : global 키워드

function test()
{
    global $myLocal;
    $myLocal = "local";
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

global 키워드는 글로벌 범위의 일부가되도록 변수의 접두사입니다.

global 키워드와 동일한 명령문에서 변수에 값을 할당 할 수 없습니다. 그러므로 왜 내가 아래에 값을 지정해야만 했는가? (새로운 행과 공백을 없애면 가능하지만 global $myLocal; $myLocal = "local" ).

옵션 2 : $GLOBALS 배열

function test()
{
    $GLOBALS["myLocal"] = "local";
    $myLocal = $GLOBALS["myLocal"];
    var_dump($myLocal);
    var_dump($GLOBALS["myGlobal"]);
}

이 예제에서는 $GLOBAL["myLocal"] 의 값을 $myLocal 다시 할당했습니다. 연관 배열보다 변수 이름을 쓰는 것이 더 쉽기 때문입니다.

$_SERVER

$ _SERVER는 헤더, 경로 및 스크립트 위치와 같은 정보가 들어있는 배열입니다. 이 배열의 항목은 웹 서버에서 만듭니다. 모든 웹 서버가 이들을 제공 할 것이라는 보장은 없습니다. 서버는 일부를 생략하거나 여기에 나열되지 않은 다른 서버를 제공 할 수 있습니다. 즉, 많은 변수가 CGI / 1.1 사양 에서 설명되므로 예상 할 수 있어야합니다.

이 예제 출력은 다음과 같습니다 (WAMP를 사용하여 Windows PC에서 실행).

C:\wamp64\www\test.php:2:
array (size=36)
    'HTTP_HOST' => string 'localhost' (length=9)
    'HTTP_CONNECTION' => string 'keep-alive' (length=10)
    'HTTP_CACHE_CONTROL' => string 'max-age=0' (length=9)
    'HTTP_UPGRADE_INSECURE_REQUESTS' => string '1' (length=1)
    'HTTP_USER_AGENT' => string 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36' (length=110)
    'HTTP_ACCEPT' => string 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' (length=74)
    'HTTP_ACCEPT_ENCODING' => string 'gzip, deflate, sdch, br' (length=23)
    'HTTP_ACCEPT_LANGUAGE' => string 'en-US,en;q=0.8,en-GB;q=0.6' (length=26)
    'HTTP_COOKIE' => string 'PHPSESSID=0gslnvgsci371ete9hg7k9ivc6' (length=36)
    'PATH' => string 'C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;E:\Program Files\ATI Technologies\ATI.ACE\Core-Static;E:\Program Files\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\AMD\ATI.ACE\Core-Static;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Intel\Intel(R) Managemen'... (length=1169)
    'SystemRoot' => string 'C:\WINDOWS' (length=10)
    'COMSPEC' => string 'C:\WINDOWS\system32\cmd.exe' (length=27)
    'PATHEXT' => string '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY' (length=57)
    'WINDIR' => string 'C:\WINDOWS' (length=10)
    'SERVER_SIGNATURE' => string '<address>Apache/2.4.23 (Win64) PHP/7.0.10 Server at localhost Port 80</address>' (length=80)
    'SERVER_SOFTWARE' => string 'Apache/2.4.23 (Win64) PHP/7.0.10' (length=32)
    'SERVER_NAME' => string 'localhost' (length=9)
    'SERVER_ADDR' => string '::1' (length=3)
    'SERVER_PORT' => string '80' (length=2)
    'REMOTE_ADDR' => string '::1' (length=3)
    'DOCUMENT_ROOT' => string 'C:/wamp64/www' (length=13)
    'REQUEST_SCHEME' => string 'http' (length=4)
    'CONTEXT_PREFIX' => string '' (length=0)
    'CONTEXT_DOCUMENT_ROOT' => string 'C:/wamp64/www' (length=13)
    'SERVER_ADMIN' => string '[email protected]' (length=29)
    'SCRIPT_FILENAME' => string 'C:/wamp64/www/test.php' (length=26)
    'REMOTE_PORT' => string '5359' (length=4)
    'GATEWAY_INTERFACE' => string 'CGI/1.1' (length=7)
    'SERVER_PROTOCOL' => string 'HTTP/1.1' (length=8)
    'REQUEST_METHOD' => string 'GET' (length=3)
    'QUERY_STRING' => string '' (length=0)
    'REQUEST_URI' => string '/test.php' (length=13)
    'SCRIPT_NAME' => string '/test.php' (length=13)
    'PHP_SELF' => string '/test.php' (length=13)
    'REQUEST_TIME_FLOAT' => float 1491068771.413
    'REQUEST_TIME' => int 1491068771

거기에 가져 가야 할 것이 많으므로 아래 중요한 것들을 골라 낼 것입니다. 당신이 그들 모두에 대해 읽고 싶다면 그 문서의 색인 섹션 을 참고하십시오.

나는 그들을 하루 아래에 모두 더할지도 모른다. 아니면 누군가가 아래의 좋은 설명을 편집하고 추가 할 수 있습니까? 힌트, 힌트 ;)

아래의 모든 설명에서 URL이 http://www.example.com/index.php 라고 가정합니다 .

  • HTTP_HOST - 호스트 주소입니다.
    그러면 www.example.com 이 반환됩니다.
  • HTTP_USER_AGENT - 사용자 에이전트의 내용. 이것은 운영 체제를 포함하여 클라이언트의 브라우저에 대한 모든 정보가 들어있는 문자열입니다.
  • HTTP_COOKIE - 연결된 문자열의 모든 쿠키 (세미콜론 구분 기호 포함).
  • SERVER_ADDR - 현재 스크립트가 실행중인 서버의 IP 주소입니다.
    이것은 93.184.216.34 반환 93.184.216.34
  • PHP_SELF - 현재 실행 된 스크립트의 파일 이름. 문서 루트와 관련됩니다.
    이것은 /index.php 반환합니다.
  • REQUEST_TIME_FLOAT - 마이크로 초 정밀도의 요청 시작 타임 스탬프. PHP 5.4.0부터 사용 가능합니다.
  • REQUEST_TIME - 요청 시작의 시간 소인. PHP 5.1.0부터 사용 가능합니다.

$_GET

URL 매개 변수를 통해 현재 스크립트에 전달 된 변수의 연관 배열입니다.

$_GET 은 모든 URL 매개 변수를 포함하는 배열입니다. 이것들은 무엇이든지 후에 무엇입니까? URL에

http://www.example.com/index.php?myVar=myVal 을 예로 사용합니다. 이 URL의이 정보는 $_GET["myVar"] 형식으로 액세스하면 얻을 수 있으며 그 결과는 myVal 이됩니다.

독서를 싫어하는 사람들을 위해 몇 가지 코드를 사용합니다.

// URL = http://www.example.com/index.php?myVar=myVal
echo $_GET["myVar"] == "myVal" ? "true" : "false"; // returns "true"

위의 예제는 삼항 연산자를 사용 합니다.

$_GET superglobal을 사용하여 URL에서 값에 액세스하는 방법을 보여줍니다.

이제 또 다른 예! 헐떡 거림

// URL = http://www.example.com/index.php?myVar=myVal&myVar2=myVal2
echo $_GET["myVar"]; // returns "myVal"
echo $_GET["myVar2"]; // returns "myVal2"

앰퍼샌드 ( & ) 문자로 구분하여 URL을 통해 여러 변수를 보낼 수 있습니다.

보안 위험
URL을 통해 민감한 정보를 보내지 않는 것이 매우 중요합니다.이 정보는 컴퓨터의 기록에 남으며 브라우저에 액세스 할 수있는 모든 사람에게 표시됩니다.

$_POST

요청에서 HTTP Content-Type으로 application / x-www-form-urlencoded 또는 multipart / form-data를 사용할 때 HTTP POST 메소드를 통해 현재 스크립트에 전달 된 변수의 연관 배열입니다.

한 곳에서 다른 곳으로 데이터가 전송된다는 점에서 $_GET 과 매우 유사합니다.

나는 곧바로 모범으로 나아갈 것입니다. (이것은 폼이있는 페이지로 정보를 전송하기 때문에 action 속성을 생략했습니다).

<form method="POST">
    <input type="text" name="myVar" value="myVal" />
    <input type="submit" name="submit" value="Submit" />
</form>

위는 데이터를 전송할 수있는 기본 양식입니다. 실제 환경에서 value 속성은 양식이 비어 있음을 의미하는 것으로 설정되지 않습니다. 그러면 사용자가 입력 한 모든 정보가 전송됩니다.

echo $_POST["myVar"]); // returns "myVal"

보안 위험
POST를 통해 데이터를 보내는 것도 안전하지 않습니다. HTTPS를 사용하면 데이터가보다 안전하게 보호됩니다.

$_FILES

HTTP POST 메서드를 통해 현재 스크립트에 업로드 된 항목의 연관 배열입니다. 이 배열의 구조는 POST 메서드 업로드 섹션에 설명되어 있습니다.

기본 양식부터 시작해 보겠습니다.

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myVar" />
    <input type="submit" name="Submit" />
</form>

action 애트리뷰트가 생략되었다는 것을주의하자. 또한 enctype="multipart/form-data" . 이는 파일 업로드를 처리 할 모든 양식에 중요합니다.

// ensure there isn't an error
if ($_FILES["myVar"]["error"] == UPLOAD_ERR_OK)
{
    $folderLocation = "myFiles"; // a relative path. (could be "path/to/file" for example)
    
    // if the folder doesn't exist then make it
    if (!file_exists($folderLocation)) mkdir($folderLocation);

    // move the file into the folder
    move_uploaded_file($_FILES["myVar"]["tmp_name"], "$folderLocation/" . basename($_FILES["myVar"]["name"]));
}

이것은 하나의 파일을 업로드하는 데 사용됩니다. 때로는 둘 이상의 파일을 업로드 할 수 있습니다. 그 속성은 multiple 이라고 불립니다.
모든 것에 대한 속성이 있습니다. 죄송 해요

다음은 여러 파일을 제출하는 양식의 예입니다.

<form method="POST" enctype="multipart/form-data">
    <input type="file" name="myVar[]" multiple="multiple" />
    <input type="submit" name="Submit" />
</form>

여기에 변경된 내용을 기록하십시오. 단지 몇 가지가 있습니다.

  • input 이름에는 대괄호가 있습니다. 이는 파일 배열이므로 이제 파일 배열을 선택하도록 양식을 말하기 때문입니다. 대괄호를 생략하면 후자의 대부분의 파일이 $_FILES["myVar"] 로 설정됩니다.
  • multiple="multiple" 속성. 이것은 단지 사용자가 하나 이상의 파일을 선택할 수 있다는 것을 브라우저에 알려줍니다.
$total = isset($_FILES["myVar"]) ? count($_FILES["myVar"]["name"]) : 0; // count how many files were sent
// iterate over each of the files
for ($i = 0; $i < $total; $i++)
{
    // there isn't an error
    if ($_FILES["myVar"]["error"][$i] == UPLOAD_ERR_OK)
    {
        $folderLocation = "myFiles"; // a relative path. (could be "path/to/file" for example)
        
        // if the folder doesn't exist then make it
        if (!file_exists($folderLocation)) mkdir($folderLocation);

        // move the file into the folder
        move_uploaded_file($_FILES["myVar"]["tmp_name"][$i], "$folderLocation/" . basename($_FILES["myVar"]["name"][$i]));
    }
    // else report the error
    else switch ($_FILES["myVar"]["error"][$i])
    {
        case UPLOAD_ERR_INI_SIZE:
            echo "Value: 1; The uploaded file exceeds the upload_max_filesize directive in php.ini.";
            break;
        case UPLOAD_ERR_FORM_SIZE:
            echo "Value: 2; The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
            break;
        case UPLOAD_ERR_PARTIAL:
            echo "Value: 3; The uploaded file was only partially uploaded.";
            break;
        case UPLOAD_ERR_NO_FILE:
            echo "Value: 4; No file was uploaded.";
            break;
        case UPLOAD_ERR_NO_TMP_DIR:
            echo "Value: 6; Missing a temporary folder. Introduced in PHP 5.0.3.";
            break;
        case UPLOAD_ERR_CANT_WRITE:
            echo "Value: 7; Failed to write file to disk. Introduced in PHP 5.1.0.";
            break;
        case UPLOAD_ERR_EXTENSION:
            echo "Value: 8; A PHP extension stopped the file upload. PHP does not provide a way to ascertain which extension caused the file upload to stop; examining the list of loaded extensions with phpinfo() may help. Introduced in PHP 5.2.0.";
            break;
        
        default:
            echo "An unknown error has occured.";
            break;
    }
}

이는 매우 간단한 예제이며 허용되지 않는 파일 확장명이나 PHP 코드로 명명 된 파일 (예 : PHP에 해당하는 SQL 삽입과 같은)을 처리하지 못합니다. 설명서를 참조하십시오.

첫 번째 프로세스는 파일이 있는지 확인하는 것입니다. 그렇다면 총 파일 수를 $total 설정하십시오.

for 루프를 사용하면 $_FILES 배열을 반복하고 각 항목을 한 번에 하나씩 액세스 할 수 있습니다. 해당 파일에 문제가 발생하지 않으면 if 문이 참이고 단일 파일 업로드의 코드가 실행됩니다.
문제가 발생하면 스위치 블록이 실행되고 특정 업로드에 대한 오류에 따라 오류가 표시됩니다.

HTTP 쿠키를 통해 현재 스크립트에 전달 된 변수의 연관 배열입니다.

쿠키는 데이터를 포함하고 클라이언트의 컴퓨터에 저장되는 변수입니다.

앞에서 설명한 슈퍼 전역과 달리 쿠키는 함수로 만들어야하며 값을 할당하지 않아야합니다. 국제 대회는 아래와 같습니다.

setcookie("myVar", "myVal", time() + 3600);

이 예제에서는 쿠키에 이름이 지정되고 (이 예제에서는 "myVar"), 값이 주어집니다 (이 예제에서는 "myVal"이지만 변수를 전달하여 쿠키에 값을 할당 할 수 있음). 만료 시간이 주어집니다 (이 예제에서는 3600 초가 1 분이므로 1 시간입니다).

다른 쿠키를 만드는 규칙에도 불구하고 다른 쿠키와 동일한 방식으로 액세스됩니다.

echo $_COOKIE["myVar"]; // returns "myVal"

쿠키를 삭제하려면 setcookie 를 다시 호출해야하지만 만료 시간은 과거의 어느 시간으로 설정됩니다. 아래를 참조하십시오.

setcookie("myVar", "", time() - 1);
var_dump($_COOKIE["myVar"]); // returns null 

이렇게하면 쿠키가 해제되고 클라이언트 컴퓨터에서 쿠키가 제거됩니다.

$_SESSION

현재 스크립트에서 사용할 수있는 세션 변수를 포함하는 연관 배열입니다. 이것을 사용하는 방법에 대한 자세한 내용은 Session 함수 문서를 참조하십시오.

세션은 서버 측을 제외하고는 쿠키와 매우 유사합니다.

세션을 사용하려면 세션의 활용을 허용하기 위해 스크립트 맨 위에 session_start() 를 포함해야합니다.

세션 변수 설정은 다른 변수 설정과 동일합니다. 아래 예를 참조하십시오.

$_SESSION["myVar"] = "myVal";

세션을 시작할 때 임의의 ID는 쿠키로 설정되고 "PHPSESSID"라고하며 현재 세션의 세션 ID를 포함합니다. 이 함수는 session_id() 함수를 호출하여 액세스 할 수 있습니다.

unset($_SESSION["myVar"]) 가 그 변수를 파괴 할 수 있도록 unset($_SESSION["myVar"]) unset 함수를 사용하여 세션 변수를 파괴 할 수 있습니다.
또 다른 방법은 session_destory() 를 호출하는 것입니다. 이렇게하면 전체 세션이 파괴되어 모든 세션 변수가 더 이상 존재하지 않게됩니다.

$_REQUEST

기본적으로 $_GET , $_POST$_COOKIE 의 내용을 포함하는 연관 배열입니다.

PHP 문서에서 알 수 있듯이 이것은 $_GET , $_POST$_COOKIE 를 하나의 변수로 모두 정렬 한 것입니다.

이 세 배열 모두에 동일한 이름의 색인이있을 수 있기 때문에 php.ini 파일에 request_order 라는 설정이 있습니다.이 설정은 세 가지 항목 중 우선 순위가있는 항목을 지정할 수 있습니다.
예를 들어, "GPC" 로 설정 되었다면, $_REQUEST$_GET , $_POST , $_COOKIE 의 값을 왼쪽에서 오른쪽으로 읽음으로써 $_COOKIE 의 값이 사용됩니다. 그리고 $_COOKIE$_REQUEST 에있는 값인 마지막 값이기 때문입니다.
이 질문을 참조하십시오.

$_ENV

환경 메소드를 통해 현재 스크립트에 전달 된 변수의 연관 배열입니다.

이 변수는 PHP 파서가 실행되는 환경에서 PHP의 전역 네임 스페이스로 가져옵니다. 많은 것들은 PHP가 실행되는 쉘에 의해 제공되며 다른 시스템은 다른 종류의 쉘을 돌릴 가능성이 있습니다. 최종 목록은 불가능합니다. 정의 된 환경 변수 목록은 쉘 설명서를 참조하십시오.

다른 환경 변수에는 PHP가 서버 모듈 또는 CGI 프로세서로 실행되는지 여부에 관계없이 CGI 변수가 포함됩니다.

$_ENV 저장된 것은 PHP가 실행되는 환경의 것입니다.

$_ENVphp.ini 허용하는 경우에만 채워집니다.
$_ENV 가 채워지지 않은 이유에 대한 자세한 내용은 이 답변 을 참조하십시오.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow