Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde...
Estou fazendo uma classe de validação...
Dai surgiu a seguinte dúvida... como faria para validar uma variável que seja nula...
Pois eu utilizo o método post... daí digamos que um checkbox esteja desmarcado... a varíavel não vá existir... eu não gostaria de fazer o seguinte:
$var_check = (isset($_POST['check'])) ? $_POST['check'] : "Não existe" ;
Aí chamo minha classe:
if($_POST){
if($var_check != "Não existe" ){
var_dump($val->set($_POST['check'], "E-mail Login", true)->set_empty());
}
}
Entende, se eu setar post diretamente $_POST['check'] e essa variável não existe, vai dar erro no código:
Notice: Undefined index: check in C:\wamp\www\
Mas, se eu validar antes com Isset, não vai dar erro.... Mas eu gostaria de fazer essa validação com a classe, e não utilizando uma condição antes da classe....
Será que é possível fazer isso, validar dentro da classe, e não antes??
Se entendi, segue um exemplo breve e muito simples.
<?php
Class blabla {
public $campo;
public function Verif($campo)
{
$email_ok = (isset($campo) and !empty($campo)) ? $this->campo=$campo : 'Informe um email.';
print $email_ok;
}
}
$validar = new blabla;
if($_SERVER['REQUEST_METHOD']=='POST')
{
$validar->Verif($_POST['email']);
}
?>
<form name="blabla" method="POST" action="">
Email: <input type="text" name="email" id="email">
<input type="submit">
</form>
Abraço.Se for para verificar se é NULO vc pdoe usar:
is_null() ou $var === null
Bom dia Alaerte, a maneira que que fiz era muito semelhante a sua...
Mas o problema é, seu eu trocar:
$validar->Verif($_POST['carro']);Não vai ter essa varíavel... o php vai gerar um erro...
A classe vai validar, vai dizer que não existe, mas ela vai mostrar o erro...
Para esse erro não acontecer... eu teria que validar anteriormente com php, assim:
if(isset($_POST['email'])){
$validar->Verif($_POST['email']);
}Digamos um checkbox não marcado:
<input type="checkbox" name="email" id="email">Ele vai gerar erro se eu não checar antes de chamar o método... como demostrado acima:
O que eu gostaria de saber se é possível, é anular esse determinado erro esse erro do ISSET, quando utilzado no método, retornar o próprio erro da classe, sem mostrar o erro do php... entende..
apenas o erro ISSET, quando chamado no método...
<?php
error_reporting(0);
ini_set(“display_errors”, 0 );
?>
Abraços...Não vá por esse caminho "anular erros" não é uma boa idéia.
Vc deve conviver com eles e corrigi-los e não escondê-los em desenvolvimento.
Você testou o código proposto ? deu mesmo o referido erro ?
O que eu costumo fazer é ter uma função global para o GET e outra para o POST.
Mais ou menos assim:
$campo = getPost('email');e ai nessa função getPost:
function getPost($key) {
return isset($_POST[$key]) ? $_POST[$key]: '';
}Ou seja, dentro da aplicação, eu **nunca** utilizo $_POST ou $_GET e sim sempre a função que resolve eles para mim.Bom dia Bruno, a ideia para eu fazer o que quero, tenho total certeza que é essa... daí é só separar GET de POST , CONST, e uma váriavel não global e utilizar...
Até mais...
não entendi bem. se você precisa verificar a existência de um valor essa é a melhor maneira.