Ir para conteúdo

POWERED BY:

Arquivado

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

fabiossmn

[Resolvido] Verificar se existe $_GET

Recommended Posts

Bom, nao estou conseguindo colocar para verificar duas get's dentro do if, explicando melhor:

 

é que tenho uma página cujo get é ?acao=criar e ?acao=atualizar

ae eu queria que o ele identificasse quando seria ?acao=criar e ?acao=atualizar se não ele manda manda escolher um link desses.

 

dois tipos que tentei usar e não deu certo:

 

if(isset($_GET['acao'] == "criar") && ($_GET['acao'] == "atualizar")){
	echo("conteudo");

       }else{
	echo("Selecione uma Link!");
	}

if(isset($_GET['acao'] == "criar") || ($_GET['acao'] == "atualizar")){
	echo("conteudo");

       }else{
	echo("Selecione uma Link!");
	}

 

o que estaria errado?

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra que esse isset? Leia com atenção o que você escreveu...

 

if( $_GET[ 'acao' ] == 'criar' || $_GET['acao'] == 'atualizar' ){ //se acao for criar OU atualizar
   echo 'conteudo';
} else {//se nao for nenhum dos dois:
   echo 'Selecione uma Link!';
}

 

Assim deve resolver o problema, uma vez que retiramos o isset desnecessário, permitindo que a comparação seja feita corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites
switch($_GET['acao']){
   case 'criar':
       require_once('um_arquivo.php');
       break;
   case 'atualizar':
       require_once('outro_arquivo.php');
       break;
   default:
       require_once('default.php');
       break;        
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

vlw funcionou certinho agora :D

mais no caso o isset seria para que?

que vejo sempre os programadores colocarem o isset para ver se existe tal variavel, neste caso ela é desnecessaria?

obg por me ajudar :D

 

ops flei que deu certo mais nao deu nao ;/

ele retornou esse erro:

 

Notice: Undefined index: acao in C:\wamp2\www\site\adm_loja\empresa.php on line 45

duas vezes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Exato.. o isset apenas verifica se existe uma variável.

Você queria apenas comparar o conteúdo da variável para saber se é X ou Y.

 

<?php
$var = 'qualquer coisa';
if ( isset( $var ) ) echo $var;

 

retorno: qualquer coisa

 

- Edit:

 

O notice não é um erro. É somente um aviso para que você saiba que a variável que você está tentando comparar é inexistente.

Você pode usar o isset para verificar se a variável existe ANTES de compará-la. Assim o notice sumirá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o codigo ta assim:

 

<?php

	if($_GET['acao'] == 'criar' || $_GET['acao'] == 'atualizar'){
	echo("conteudo");

       }else{
	echo("Selecione um Link!");
	}

	?>

 

e como eu uso o isset pro notice sumir?

uahuahua

Compartilhar este post


Link para o post
Compartilhar em outros sites
Pra que esse isset? Leia com atenção o que você escreveu...

 

Essa pergunta sua é um pecado. :no: :cry: :skull: :ban: rsrrsr

 

ops flei que deu certo mais nao deu nao ;/

ele retornou esse erro:

 

Notice: Undefined index: acao in C:\wamp2\www\site\adm_loja\empresa.php on line 45

duas vezes

 

VIU SÓ O QUE VOCÊ FEZ COM O RAPAZ FAZENDO ELE RETIRAR O ISSET ? :ermm:

 

Melhor do que você trabalhar diretamente com o get é usar as variáveis de servidor, tipo: $_SERVER['QUERY_STRING'] aí sim, você não precisaria do isset.

 

<?php

if($_SERVER['REQUEST_METHOD'] == 'GET' AND $_SERVER['QUERY_STRING'] == 'acao=criar'){

  echo 'função pra criar.';

}elseif($_SERVER['REQUEST_METHOD'] == 'GET' AND $_SERVER['QUERY_STRING'] == 'acao=atualizar'){

  echo 'funçao pra atualizar';

}else{

  echo 'Selecione um link';

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pior que não sei nada de $_SERVER['QUERY_STRING'], iniciante é phoda!

se tiver alguma coisa onde possa ler, que não faço a minima ideia pra que isso serve ;/

 

só queria saber como ficaria o codigo:

if($_GET['acao'] == 'criar' || $_GET['acao'] == 'atualizar')

com isset... que tinha sido minha primeira perguna :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, pode ler aqui: http://php.net/manual/pt_BR/reserved.variables.server.php

 

Com isset seu código ficaria assim:

 

 

if(isset($_GET['acao']) AND $_GET['acao'] == 'criar'){...}elseif(isset($_GET['acao']) AND $_GET['acao'] == 'atualizar'){...}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, pode ler aqui: http://php.net/manual/pt_BR/reserved.variables.server.php

 

Com isset seu código ficaria assim:

 

 

if(isset($_GET['acao']) AND $_GET['acao'] == 'criar'){...}elseif(isset($_GET['acao']) AND $_GET['acao'] == 'atualizar'){...}

beleza funcionou certinho.

mais nao tem como fazer tudo em uma linha?

tipo como eu postei no começo...

tipo assim:

if($_GET['acao'] == 'criar' || $_GET['acao'] == 'atualizar')

só que com o

isset

uhauhauah

se não é pedir de mais ;D

vlw

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
if ( isset( $_GET['acao'] ) && ($_GET['acao'] == 'criar' || $_GET['acao'] == 'atualizar' ) ) echo 'ok';
//ou ainda, verificar se a chave 'acao' existe na array $_GET
if ( array_key_exists( 'acao' , $_GET ) && ($_GET['acao'] == 'criar' || $_GET['acao'] == 'atualizar' ) ) echo 'ok';

 

Assim o problema estará resolvido. Use a opção que preferir.

 

Alaerte, nada do que eu disse está incorreto ou foi um 'pecado'... dá uma relida no meu post :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem... eu achei que a ação CRIAR iria criar um registro e a ação atualizar iria atualizar, mais você está utilizando uma ou outra para fazer uma ação só, desse jeito, realmente só precisa uma linha. :joia:

 

 

Alaerte, nada do que eu disse está incorreto ou foi um 'pecado'... dá uma relida no meu post

 

Pois é amigo, infelizmente foi um pecado. A prova disso é que ele não consegue fazer o que ele quer sem o ISSET, sem que lhe retorne um NOTICE; que não é elegante, pior ainda seria ele ter que usar o "@" para inibir o NOTICE de index indefinida ;)

 

Por isso, para estes casos, utilize sempre o isset, ele te dar maior segurança de que você está tratando uma var que existe. :graduated:

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.