Filtro PHP_has_var

Resumo : neste tutorial, você aprenderá sobre a filter_has_var()função e como usá-la para verificar se existe uma variável em uma entrada.

Introdução à função filter_has_var()

A filter_has_var()função verifica se existe uma variável de um tipo especificado. Aqui está a sintaxe da filter_has_var()função:

filter_has_var ( int $input_type , string $var_name ) : boolLinguagem de código:  Python  ( python )

A filter_has_var()função possui o seguinte parâmetro:

  • $input_typeé o tipo de entrada que você deseja pesquisar em uma variável. Os tipos de entrada válidos são INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVERou INPUT_ENV.
  • $var_nameé o nome da variável a ser verificada.

A filter_has_var()função retorna truese $var_nameexistir no $input_typeou falsecaso contrário.

O exemplo da função PHP filter_has_var()

Criaremos um formulário bem simples para demonstrar a filter_has_var()função.

Primeiro, crie os seguintes arquivos e diretórios:

.
├── css
│   └── style.css
├── inc
│   ├── get.php
│   ├── post.php
│   └── .htaccess
└── index.phpLinguagem de código:  Python  ( python )

Segundo, adicione o seguinte código ao index.phparquivo:

<?php

if ($_SERVER['REQUEST_METHOD'] === 'GET') {
	require 'inc/get.php';
} else {
	require 'inc/post.php';
}Linguagem de código:  Python  ( python )

Se a solicitação for GET, o index.phparquivo carrega o formulário do get.phparquivo. Caso contrário, carrega o código para processamento do formulário no post.phparquivo.

Terceiro, crie um formulário no get.phparquivo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/style.css">
    <title>PHP filter_has_var Demo</title>
</head>
<body>
    <div class="container">
        <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']) ?>" method="post" class="shaddow">
            <label for="name">Name:</label>
            <input type="text" name="name" id="name">
            <input type="submit" value="Submit">
        </form>
    </div>
</body>
</html>Linguagem de código:  HTML, XML  ( xml )

Por fim, no post.phparquivo, utilize a filter_has_var()função para verificar se os dados do formulário contêm a $namevariável:

<?php

// check the name variable in the post request
if (filter_has_var(INPUT_POST, 'name')) {
	echo 'The name variable exists:' . htmlspecialchars($_POST['name']);
} else {
	echo 'The name is required!';
}Linguagem de código:  HTML, XML  ( xml )

filter_has_var vs.

A isset()função retorna truese uma variável for declarada e não null. Por exemplo, o seguinte verifica se a namevariável está na $_POSTmatriz:

<?php

if(isset($_POST['name'])) {
    // process the name
}Linguagem de código:  Python  ( python )

Neste exemplo, isset()verifica se a $_POSTvariável possui uma chave 'name'e $_POST['name']não é nula. Porém, isset()não verifica se a namevariável vem da solicitação HTTP ou não. Por exemplo:

<?php

$_POST['email'] = '[email protected]';

if(isset($_POST['email'])) { // return true
    // ...
}Linguagem de código:  Python  ( python )

Neste exemplo, primeiro definimos manualmente $_POST['email']um valor. E então usamos a isset()função para verificar se a emailvariável existe. Como resultado, a isset()função retorna true.

Ao contrário da isset()função, a filter_has_var()função não lê o conteúdo do $_POSTarray. Ele verifica as variáveis ​​no corpo da solicitação. Portanto, o exemplo a seguir retorna false:

<?php

$_POST['email'] = '[email protected]';

if(filter_has_var(INPUT_POST, 'email')) { // return false
    // ...
}Linguagem de código:  Python  ( python )

Resumo

  • Use a função para verificar filter_has_var()se existe uma variável em um tipo especificado, incluindo INPUT_POST, INPUT_GET, , ou .INPUT_COOKIEINPUT_SERVERINPUT_ENV

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *