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 ) : bool
Linguagem 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ãoINPUT_GET
,INPUT_POST
,INPUT_COOKIE
,INPUT_SERVER
ouINPUT_ENV
.$var_name
é o nome da variável a ser verificada.
A filter_has_var()
função retorna true
se $var_name
existir no $input_type
ou false
caso 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.php
Linguagem de código: Python ( python )
Segundo, adicione o seguinte código ao index.php
arquivo:
<?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.php
arquivo carrega o formulário do get.php
arquivo. Caso contrário, carrega o código para processamento do formulário no post.php
arquivo.
Terceiro, crie um formulário no get.php
arquivo:
<!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.php
arquivo, utilize a filter_has_var()
função para verificar se os dados do formulário contêm a $name
variá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 true
se uma variável for declarada e não null
. Por exemplo, o seguinte verifica se a name
variável está na $_POST
matriz:
<?php
if(isset($_POST['name'])) {
// process the name
}
Linguagem de código: Python ( python )
Neste exemplo, isset()
verifica se a $_POST
variável possui uma chave 'name'
e $_POST['name']
não é nula. Porém, isset()
não verifica se a name
variá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 email
variá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 $_POST
array. 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, incluindoINPUT_POST
,INPUT_GET
, , ou .INPUT_COOKIE
INPUT_SERVER
INPUT_ENV