habibe 0 Denunciar post Postado Julho 5, 2003 Tenho este Codigo, e gostaria que passasse para o php 4.3.1 COmo posso fazer? <?php//inicia a sessaosession_start(); //chave secreta - modifique a vontade$CHAVE_SECRETA = "133dde6a93c3205abf91c73100e7517d";session_register("login");session_register("senha");function Autenticar($login,$senha){ //pegamos as variaveis globais p/ usarmos na funcao GLOBAL $HTTP_SERVER_VARS, $CHAVE_SECRETA, $usuario; $cone=mysql_connect($host,$login,$senha) or die ("Não foi possivel conectar"); mysql_select_db($banco,$cone) or die ("Não foi possivel selecionar o bando de dados"); $sql = "SELECT * FROM cliente where login = '$login' AND senha = PASSWORD('$senha')"; $qconsulta=mysql_query($sql,$cone) or die ("Nao foi possivel realizar a consulta"); $query = mysql_query($sql); if (mysql_num_rows($query) == 1) { /* pega dados p/ gerar a chave publica */ $user = mysql_fetch_object($query); $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; $hora = time(); /* gera a chave e guarda as informacoes na sessao */ $chave = md5($user->nome . $CHAVE_SECRETA . $ip . $hora); $usuario = array($user->nome,$hora,$chave); session_register("usuario"); return 1; } else echo '<script LANGUAGE="JavaScript"> alert("Usuário não encontrado!"); </SCRIPT>'; session_unregister("login"); session_unregister("senha"); return 0;}function Logado(){ GLOBAL $HTTP_SERVER_VARS, $HTTP_SESSION_VARS, $CHAVE_SECRETA; $ip = $HTTP_SERVER_VARS["REMOTE_ADDR"]; list($nome,$hora,$chave) = $HTTP_SESSION_VARS["usuario"]; //chave nao combina if($chave != md5($nome . $CHAVE_SECRETA . $ip . $hora)) return 0; //desloga por inatividade tbm if($hora + (15 * 60) < time()) return 0; //atualiza o horario de acesso $hora = time(); //recria a chave $chave = md5($nome . $CHAVE_SECRETA . $ip . $hora); $usuario = array($nome,$hora,$chave); $HTTP_SESSION_VARS["usuario"] = $usuario; return 1;} //usuario ainda nao logou if(!session_is_registered("usuario")) { //tentando logar if(isset($HTTP_POST_VARS["login"]) && isset($HTTP_POST_VARS["senha"])) { $login = $HTTP_POST_VARS["login"]; $senha = $HTTP_POST_VARS["senha"]; if(Autenticar($login,$senha)) { } else { echo '<script LANGUAGE="JavaScript"> alert("Não foi possivel autenticar, tente novamente!"); </SCRIPT>'; } } } //usuario logado - certeza? else { //usuario fajuto ou tempo limite expirado if(!Logado()) { echo '<script LANGUAGE="JavaScript"> alert("Usuário desconectado por tempo de inatividade!"); </SCRIPT>'; session_unregister("usuario"); } }?> Compartilhar este post Link para o post Compartilhar em outros sites
rneto@gmx.net 0 Denunciar post Postado Julho 6, 2003 rapaz indica os erros pra gente poupar tempo. Compartilhar este post Link para o post Compartilhar em outros sites
habibe 0 Denunciar post Postado Julho 6, 2003 O problemas é o seguinte:Eu estava hospedando em um servidor que tinha suporte a php antigos, e este script funcionava direitinho. Ele faz o seguinte. Após você digitar seu login e senha em uma página, ele procura, atraves deste script se o usuario esta registrado e mostra a seguinte mensagem: "Bem vindo usuario" bem no inicio da página. Se não estiver cadastrado, aparece uma mensagem de erro tipo "usuario nao encontrado" e você clicka ok! e volta a pagina com os campos de login e senha para digitar. Entendeu? se não acesse www.baladacafe.com para visualizar.Oq acontece é que no servidor que estou hospedando agora, só dá suporte ao php 4.3.1 e este script não funciona nele. Primeiro ele diz que é impossivel dar "session_start();"depois, se você tirar este session_start(), session_register("usuario");session_unregister("login");session_unregister("senha");session_unregister("usuario");ele consegue logar, porém, não registra em GLOBALS. pq se você muda de página, ele aparece que você não esta logado.Isso que acontece. Por favor qual seria o problema? Compartilhar este post Link para o post Compartilhar em outros sites