Jump to content


Photo

Duas Dúvidas


  • Faça o login para participar
7 replies to this topic

#1 l3on4rdo

l3on4rdo

    O Mestre dos Mestres

  • Usuários
  • 159 posts
  • Sexo:Não informado
  • Localidade:São Carlos - SP

Posted 01/08/2009, 02:20

Galera,

A minha primeira dúvida é a seguinte :

Tenho uma página de cadastro em php, por ser o painel de controle, tenho as opções de editar,cadastrar e exibir.
Para não ter que criar várias páginas estava usando o seguinte :

Uma variavel acao ($acao) que, dependendo de seu valor, dava um include na página painel_controle.php.
Ex.

Tem o botão cadastrar. Ao clicar nele ele conteria o seguinte link : painel_controle.php?acao=cadastrar, e assim por diante em cada botao...
E aí numa determinada parte da pagina teriamos:

[codebox]if($acao == "cadastrar"){
include "cadastro.php";
}[/codebox]

Mas, ao entrar na pagina painel_controle.php, sem nenhuma ?acao = algo, ela fica em branco.

Estava tentando fazer:

[codebox]if(!isset($acao)){

$acao = "";
}

if($acao !=""){

$acao = $_GET['acao'];

}


if($acao == "cadastrar"){
echo "teste";
}
[/codebox]

Mas num ta dando...
Qual o problema nesse código ? Como resolvo ?

A segunda dúvida é mais simples...
Eu quero que, simplesmente, se o usuário entrar numa página e não estiver logado, a URL da página que ele visitou antes de ser redirecionado para a login.php por exemplo seja salva, e, após logar, ele seja redirecionado para essa página visitada antes do login !!

Obrigado e espero que entendam...

Edição feita por: l3on4rdo, 01/08/2009, 02:22.

Buscando um convite do TorrentLeech ! Se tiver um, me mande uma MP ! Ratio > 1 garantida !

#2 Ferlouko x)

Ferlouko x)

    Normal

  • Usuários
  • 72 posts
  • Sexo:Masculino
  • Localidade:Guararapes
  • Interesses:PHP, OOP, DESIGN PATTERNS, mySQL, XML, (X)HTML, CSS, TABLELESS, PHP-GTK, JAVA, C++.

Posted 01/08/2009, 13:44

Ao invés de usar isset, use empty(), isset checa se a variável está setada, seja ela vazia ou não.
if(empty($acao)){
  $acao = '';
}

Para saber a url que ele requisitou, use $_SERVER['SCRIPT_URI'], a partir daí vc pode redirecionar ele para outra página Ex : ?voltapara=http://, não se esqueça de usar urlencode(), para encodar a URI.
[]'s

Edição feita por: Ferlouko x), 01/08/2009, 22:54.

<?php
/**
* @author. . .Fernando Rodrigo Cardoso < ferlouko (at) gmail.com >
* @desc. . . .Desenv. PHP, (X)HTML, CSS, JS E AJAX, aprendiz JAVA, aprendiz C/C++ (...)
*/
?>

#3 l3on4rdo

l3on4rdo

    O Mestre dos Mestres

  • Usuários
  • 159 posts
  • Sexo:Não informado
  • Localidade:São Carlos - SP

Posted 02/08/2009, 01:02

Então eu solucionei da seguinte maneira o 1º problema, vejam se esta correto, caso sim, aqueles que buscarem por essa dúvida a teram respondido :

[codebox]
if(empty($_GET['acao'])){

$acao = "";

}else{

$acao = $_GET['acao'];

}
[/codebox]

Ja o da url vou tentar e post em seguida...
Obrigado !

Edição feita por: l3on4rdo, 02/08/2009, 01:33.

Buscando um convite do TorrentLeech ! Se tiver um, me mande uma MP ! Ratio > 1 garantida !

#4 '' sem.Ponto

'' sem.Ponto

    Super Veterano

  • Ex-Admins
  • 2098 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte

Posted 02/08/2009, 03:19

Eu só reduziria o código...

$acao = empty($_GET['acao']) ? '' : $_GET['acao'];

(ok2)
att,
Muller Dias
ex-administrador Fórum WMO

#5 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 02/08/2009, 10:32

Eu trocaria tudo isso por isso:

<?php

if (isset($_GET['acao'])) {
	switch($_GET['acao']) {
		// aqui vão as opções - no final use 'default' para opção padrão
	}
}

?>
Maiores informações no manual: www.php.net/switch

[]’s :DAté mais

#6 l3on4rdo

l3on4rdo

    O Mestre dos Mestres

  • Usuários
  • 159 posts
  • Sexo:Não informado
  • Localidade:São Carlos - SP

Posted 03/08/2009, 10:55

obrigado pelas dicas !!
Ainda não testei a testei as urls, vo tenta e ja posto aqui !!

Estou com outra duvida, tipo, usei o include num arquivo tipo painel de controle...
O problema eh q o arquivo q eh incluido (pelo include obviamente) é um html com form.
Ao pressionar o enviar, ele não chama o arquivo do "action" do html, ele passa os campos para o arquivo principal.
Como eu resolvo esse problema ?

Obrigado

Edição feita por: l3on4rdo, 03/08/2009, 11:37.

Buscando um convite do TorrentLeech ! Se tiver um, me mande uma MP ! Ratio > 1 garantida !

#7 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 03/08/2009, 14:22

Basta não informar nada no action.
Deixe o action em branco.

Até mais ^_^

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#8 l3on4rdo

l3on4rdo

    O Mestre dos Mestres

  • Usuários
  • 159 posts
  • Sexo:Não informado
  • Localidade:São Carlos - SP

Posted 04/08/2009, 10:52

Aproveitando, eu gostaria de saber uma coisa...
Estou montando um sistema de cadastro de usuario e para diferenciar admin de user comum criei uma variavel chama "tipousuario".
Caso ele seja o 0, ele eh adm, caso ele seja o 1, eh cliente....
Nas paginas de acesso restrito coloco o seguinte codigo :

[codebox]if($_SESSION['tipouser'] == 0){
//exibe a pagina
}else if($_SESSION['tipouser'] == 1){
//diz q nao pode, pois o acesso eh restrito
}[/codebox]
Gostaria de saber se fazer isso eh seguro ou nao, e qual eh a melhor maneira caso nao seja...

Tmb tenho um arquivo que faz o logout, ele contem o seguinte cod:
[codebox]session_start();
$erro = "";

if(empty($_GET['acao'])){
$acao = "inicio";
}else{
$acao = $_GET['acao'];
}

if($acao == "logout"){
if(session_destroy()){
$msg = "Logout efetuado com sucesso !";
$acao = "inicio";
}
}else if($acao == "cancelado"){
if($_SESSION['tipouser'] == 1){
header("Location:cp2.php");
}else if($_SESSION['tipouser'] == 2){
header("Location:exibir.php?id=".$_SESSION['id']."");
}
}[/codebox]
Ao escolher a $acao == "logout", eu quero q, apos o session_destroy() ele volte pra $acao == "inicio", mas ele nao ta voltando... Pq ?

Obrigado !
Buscando um convite do TorrentLeech ! Se tiver um, me mande uma MP ! Ratio > 1 garantida !




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq