Ir para conteúdo

POWERED BY:

Arquivado

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

Neto Carvalho

[Resolvido] PHP

Recommended Posts

Bom pessoal,

 

sou novo aqui no fórum e também em programação php. O meu problema é o seguinte: tenho 3 páginas .php(index.php, frmLogin, login_usuario.php ou login_operador.php). Na página index.php, o usuario digita o seu login e senha e no form do index.php eu envio os dados para a pagina frmLogin.php, que por sua vez válida os dados obtem o codigo do usuario e envia ou para a pagina login_usuario.php ou login_operadorphp . E ai está o problema, porque eu só consigo redirecionar com o metodo GET, e isto é uma falha de segurança "grotesca". Aqui vai codigo que eu fiz:

 

frmLogin

 

<?php 	include '../Allfuncoes.php';
	$cpf = $_POST["cpf"];	
	$senha = $_POST["senha"];
	
	//busca o codigo do usuario pelo cpf
	$usuario = buscaCodUsuario($cpf);
	
	//verifica se existe o codigo do usuario
	if($usuario>0){
		//caso o usuario seja comum redireciona para login_usuario para acesso aos dados do curriculo
		if(getTipo($usuario)==0 && getSenha($usuario)==$senha && getCpf($usuario)==$cpf){?>
		<script type="text/javascript" language="javascript">window.location = '../login/login_usuario.php?ws12='+<? echo $usuario;?>;</script> <?	
		//caso o usuario seja administardor ou operador redireciona ´para login_operador
     	} if((getTipo($usuario)==1 || getTipo($usuario)==2)  && getSenha($usuario)==$senha && getCpf($usuario)==$cpf){?>
		<script type='text/javascript' language='javascript'>window.location = '../login/login_operador.php?ws12='+<? echo $usuario; ?>;</script>
        
     <? }
	 // se não existir o usuario retorna para a tela de login
	 }else ?>
	 	<script type="text/javascript" language="javascript">
	 				window.location = '../index.php';</script>   

login_operador

<?php 
	include '../AllFuncoes.php';
	$usuario = $_GET['ws12'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
<title>Multiplica - Administraçao</title>
</head>
	
 <body onload="makeRequest()">  
    <table align="center">
        <tr>
        	<td style=" font-weight:bold"><? echo "Seja Bem Vindo ".getNome($usuario)."!";?></td>
            <td><a href="../index.php">Sair</a></td>
        </tr>
    	<tr>
        	<td><a href="../consulta.php?ws12=<? echo $usuario;?>">Consulta de Candidato</a></td>
        </tr>
    </table>

</body>
</html>

se alguem puder me ajudar fico muito agradecido isso é urgente, tenho ate a proxima semana para terminar esta parte de programação e ja estou a 2 dias tentando corrigir esta falha! Será que teria como enviar estes dados via POST sem usar form? ja tentei ajax e session mas não consegui, por favor detalhem a solução !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Primeiramente Bem Vindo ao fórum Imasters

Sua dúvida deveria estar no fórum de PHP

 

Poste seu código de como estar fazendo esse redirecionamentos.

 

De qualquer forma de uma olhada nesse post:

http://blog.andresa....ormulario-html/

 

E sempre utilize a CODE nos seus códigos

Veja esse link: http://forum.imasters.com.br/index.php?/topic/212439-como-criar-um-topico-para-o-seu-problema/

Compartilhar este post


Link para o post
Compartilhar em outros sites

não precisa criar outro tópico la

 

aguarde que algum modera da área vai mover seu tópico ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara o post se vai enviar assim.

 

<form method="post" action="frmLogin.php" />

E no frmLogin.php você pode criar uma SESSION com o tipo de usuário.

 

Para isso no inicio do seu PHP, antes de qualquer coisa, você coloca.

 

session_start();

Após isso você pode passar valores de uma página para outra via sessão.

 

Então dentro da frmLogin.php se poderia fazer algo do gênero.

 

frmLogin.php (de forma resumida)

session_start();

$_SESSION['tipo_usuario'] = $tpUser; // tpUser seria o valor que vem do banco tipando o usuário, ele será armazenado na sessão.

header("location: login.php"); // redireciona para login.php

login.php

if ($_SESSION['tipo_usuario'] == "usuario"){
     include "login_usuario.php";
}elseif($_SESSION['tipo_usuario'] == "operador"){
     include "login_operador.php";
}else{
     echo "Você não está encaixado como nenhum tipo de usuário";
}

Desta forma a pagina login será para acesso das duas áreas, mas dependendo do que foi passado na seção ele exibira uma parte ou a outra, mas com a mesma url.

 

=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nicolas valeu ai a resposta rápida... mas ainda não entendi como funciona o metodo $_SESSION, ele armazena o valor de uma variável php? como tu aplicaria isso no meu codigo acima?

 

 

ps.: Thelon, eu tentei colocar o <code> mas naum funcionou, eu escrevi errado? me diga como eu devo colocar que eu edito sem problemas !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, é simples cara, com o session_start(); no inicio do seu código

(deve estar em todas as páginas que você deseja resgatar as sessões)

 

Você pode salvar o valor em uma sessão e resgatar quando quiser.

 

Por exemplo, se na página index.php eu gravo a seguinte session.

$_SESSION['tipo'] = "visitante";

Eu posso navegar em quantas paginas quiser, caso eu não sobrescreva esse valor em nenhuma URL, colocando em alguma página

$_SESSION['tipo'] = "administrador";

Em qualquer página que eu botar

echo $_SESSION['tipo'];

Ele me mostrará a palavra visitante.

 

É como se você estivesse passando o valor por $_GET ou $_POST, mas assim como o $_POST ele não é exibido ao usuário a não ser que você queria exibir.

 

E ele pode ser resgatado em qualquer página, funciona como cookie, porém não depende do usuário estar com cookie habilitado no navegador pois a session não é rodada no navegador e sim no servidor.

 

Para limpar todas as sessões só usar o comando.

session_destroy();

Em uma página de logout por exemplo.

 

E pode ser destruida também fechando o navegador.

 

Diferente do cookie você não consegue salvar uma sessão e falar que ela só vai expirar em 1 ano, pra acontecer como aqui no fórum por exemplo, que você sai da internet, desliga o computador e volta depois de 5 dias e você ainda ta logado.

 

Então Session (ou sessão) quando você fechar o navegador ela já expira.

 

Mas independente do computador ou navegador que o cliente estiver acessando, ela sempre funcionará.

 

E o uso é como de uma variavel normal, se salva o valor que quer que ela fique e puxa quando achar necessário.

 

E o bom é que da pra salvar arrays tb.

 

$_SESSION['usuario']['nome'] = "Nícolas";
$_SESSION['usuario']['idade'] = "22 anos";
$_SESSION['usuario']['cidade'] = "São Paulo";

 

=)

 

---

 

Ahh.. e o code você aplica com o padrão BBCODE... ou seja.

 

Colchetes ^^

 

[code]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow cara, funcinou perfeitamente, muito obrigado Nicolas, tu eh o cara! E é facinho mermo, só falta de atenção da minha parte!BURRÃO eu! hehehe

 

Eu tenho que alterar o status do topico como resolvido? ou algo do tipo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pow cara, funcinou perfeitamente, muito obrigado Nicolas, tu eh o cara! E é facinho mermo, só falta de atenção da minha parte!BURRÃO eu! hehehe

 

hehhe, disponha.. qualquer coisa só dar um berro ^^

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.