Publicação

PHP e as suas variáveis superglobais $_POST e $_GET

foto de
Gabriel Goulart CONTEÚDO EM DESTAQUE

    De forma bem direta,as variáveis superglobais do PHP são aquelas que podem ser acessadas por qualquer método em qualquer arquivo .php do seu projeto. Nesse post vou falar das variáveis mais usadas quando estamos tratando um formulário ou requisições na página. São elas as variáveis $_GET e $_POST.

    Vamos começar pela variável $_GET. De antemão gostaria de lembrar que todas essas variáveis são arrays. O uso da variável $_GET é muito simples porém perigoso. Você já viu algum link de algum site que você acessou que tinha algo do tipo "www.meusite.com.br/?nome=Gabriel&sobrenome=Goulart"? A variável pega justamente esses valores após o "/?" e cria um array associativo do tipo { "nome" => "Gabriel", "sobrenome" => "Goulart"}. Digamos que temos uma página de login chamada "login.php" como a seguinte:


<html>
    <body>
        <form action="perfil.php" method="get">
            Usuário: <input type="text" name="user" />
            Senha: <input type="password" name="password" />
            <button type="sub" > Enviar </button>
        </form>
    </body>
</html>
        

    Na página acima criamos um formulário que redireciona o usuário para a página "perfil.php" e colocamos o valor do atributo method de "get" para que o sistema saiba que estamos enviando uma requisição por get. Aqui temos a página "perfil.php" que tem o seguinte formato:


<html>
	<body>
        <h1>Bem Vindo!</h1>
        Seu nome de usuário é: <?php echo $_GET['user']; ?>
	</body>
</html>


    No exemplo a cima, usamos a variável superglobal para pegarmos as informações na URL e printarmos para o usuário. O problema da variável $_GET é que como ela pega as informações na URL, elas estão facilmente acessíveis e visíveis aos usuários e passar dados sensíveis sem os devidos cuidados pode permitir que alguém invada seu site e acesse páginas as quais ele não deveria ter acesso. No exemplo acima podemos ver que a senha do usuário, que é sensível, está a mostra na URL, o que pode ser muito perigoso.
   Para o uso de informações sensíveis, utilizamos o $_POST, pois não precisamos deixar as informações visíveis na URL para que elas sejam usadas por ele. Geralmente usado em formulários, o $_POST é muito útil para passar informações de uma página para outra. Digamos que temos um arquivo chamado "cadastro.php" que contém um formulário com nome, email e idade. Queremos que ao completar esse cadastro o usuário seja levado a uma página "bem_vindo.php" que mostra as informações do cadastro na tela. O arquivo "cadastro.php" teria uma estrutura parecida com a do código abaixo:

<html>
    <body>
	    <form action="bem_vindo.php" method="post">
	        Nome: <input type="text" name="nome" />
             Email: <input type="text" name="email" />
	        Idade: <input type="text" name="idade" />
	        <button type="submit" >Enviar </button>
	    </form>
	</body>
</html>

    O atributo action na tag form nos informa para onde nosso formulário enviará as ações e o "post" no atributo method indica que usaremos a variável $_POST para enviar essas informações. Ao clicar no botão enviar, o usuário é redirecionado para a página bem_vindo.php (Lembrando que isso é se ela estiver na mesma pasta do arquivo cadastro.php, senão usaríamos o caminho relativo até chegar no arquivo) e para mostramos suas informações na tela a página ficaria assim:

<html>
	<body>
        <h1>Bem Vindo!</h1>
        Seu nome é: <?php echo $_POST['nome'] ?> <br>
        Seu email é: <?php echo $_POST['email'] ?> <br>
        Sua idade é: <?php echo $_POST['idade'] ?>
	</body>
</html>

    Feito isso, podemos ver que as informações aparecem corretamente na tela e a URL se mantem apenas "www.meusite.com.br/bem_vindo.php" sem que haja alguma informação sendo passada no link. Com isso, podemos passar dados sensíveis sem a preocupação de que eles estejam visíveis na URL e que ao mudar algum dado na URL um usuário possa acessar um local indevido do nosso site!
    Existem outras variáveis superglobais bem interessantes do php como a $_FILES ou a $_SESSION que valem a pena serem estudadas!

Comentários