Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tiujhou

Como validar isset em uma class

Recommended Posts

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??

Compartilhar este post


Link para o post
Compartilhar em outros sites

não entendi bem. se você precisa verificar a existência de um valor essa é a melhor maneira.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.