fabiossmn 1 Denunciar post Postado Novembro 2, 2011 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
Matheus Tavares 167 Denunciar post Postado Novembro 2, 2011 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
vieira.rrafael 2 Denunciar post Postado Novembro 2, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 2, 2011 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
Matheus Tavares 167 Denunciar post Postado Novembro 2, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 3, 2011 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
Alaerte Gabriel 662 Denunciar post Postado Novembro 3, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 3, 2011 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
Alaerte Gabriel 662 Denunciar post Postado Novembro 3, 2011 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
fabiossmn 1 Denunciar post Postado Novembro 3, 2011 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
Matheus Tavares 167 Denunciar post Postado Novembro 3, 2011 <?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
fabiossmn 1 Denunciar post Postado Novembro 3, 2011 Resolvido Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Novembro 3, 2011 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