fsf 0 Denunciar post Postado Janeiro 17, 2007 Fabyo, Tá dando esse erro na pagina de protecao: Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\arquivos de programas\apache group\Apache\htdocs\teste\protecao.php:2) in c:\arquivos de programas\apache group\Apache\htdocs\teste\protecao.php on line 3Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\arquivos de programas\apache group\Apache\htdocs\teste\protecao.php:2) in c:\arquivos de programas\apache group\Apache\htdocs\teste\protecao.php on line 3Warning: Cannot modify header information - headers already sent by (output started at c:\arquivos de programas\apache group\Apache\htdocs\teste\protecao.php:2) in c:\arquivos de programas\apache group\Apache\htdocs\teste\protecao.php on line 36 você tem alguma idéia do que esta acontecendo? protecao.php <?session_start();//função anti sql injectionfunction anti_injection($txt){//Verifico se esta ativado magic_quotes caso esteja desativado uso a função addslashes$txt = get_magic_quotes_gpc() == 0 ? addslashes($txt) : $txt;//referencia://http://www.php.net/get_magic_quotes_gpc//http://www.php.net/addslashes// retiro da variavel esses caracteres (--, #, *,;) return preg_replace("@(--|\#|\*|;|=)@s", "", $txt); }function verifica_usuario($nome, $senha){//conecto ao servidor de banco de dados passo o nome do servidor usuario e senhainclude "Connections/conexao.php";/*faço uma pesquisa perguntando a quantidade de usuarios com o nome e a senha passada pelo usuario usando o count ele conta a quantidade de ocorrencias no select essa maneira é a forma mais rapida e correta desse tipo de pesquisa, muitas pessoas usam o select * from e pega com mysql_num_rows() dessa forma prejudica muito mais o acesso ao banco podendo travar se tiver muitos acessos simutaneos*/$re = pg_query("select count(*) as total from tb_usuario where nome = '$nome' and senha = md5('$senha')");//referencia: http://www.php.net/md5 e http://www.php.net/mysql_result$total = pg_fetch_result($re, 0, "total");pg_close();/* se o total for diferente de 1 é porque o usuario nao esta cadastrado usando dessa forma o resultado esperado sempre sera 1 porque você precisa tbm criar um sistema de cadastros que deixe apenas um usuario ser cadastrado evitando usuarios repetidos */if($total != 1){// redireciono para pagina de loginheader("Location: login.html");exit;} // se nao existir ja a sessao eu gravo elaif(!isset($_SESSION["dados"])){$dados["nome"] = $nome;$dados["senha"] = $senha;//gravo a sessao por padrao o php hj ja passa o serialize automaticamente nao precisa mais passar ela$_SESSION["dados"] = serialize($dados);} } //verifico se existe a sessao e ja pego os dados que nela contemif(isset($_SESSION["dados"])){$dados = unserialize($_SESSION["dados"]);$nome = $dados["nome"];$senha = $dados["senha"];verifica_usuario($nome, $senha);}else{//aqui eu verifico se o usuario esta vindo de um formulario e pego os valores$nome = isset($_POST["nome"]) ? anti_injection($_POST["nome"]) : "";$senha = isset($_POST["senha"]) ? anti_injection($_POST["senha"]) : "";verifica_usuario($nome, $senha);}?> Compartilhar este post Link para o post Compartilhar em outros sites
fsf 0 Denunciar post Postado Janeiro 18, 2007 Resolvi o problema do session_start() !!!to usuando o ob_start(); Compartilhar este post Link para o post Compartilhar em outros sites
fsf 0 Denunciar post Postado Janeiro 18, 2007 Agora é outro!!Java script: Linha:127Caractere:4Erro Linguagem é nulo ou não é um objeto!!Também tem outro!Digito o usuario e a senha e enviar, mas não vai para lugar algum!! Compartilhar este post Link para o post Compartilhar em outros sites
SiNot 0 Denunciar post Postado Janeiro 29, 2007 Fabyo, eu estou com uma duvida. Eu tenho um servidor de um jogo e estou fazendo o sistema de login com as devidas opções do jogo mas tudo isso prescisa ser em MD5 e a pagina de cadastro contem esse codigo <html><head><title>Cadastro</title><body><?php$ps_loginname = stripslashes($_POST['ps_loginname']);$ps_email = stripslashes($_POST['ps_email']);$ps_password = stripslashes($_POST['ps_password']);$ps_repassword = stripslashes($_POST['ps_repassword']);$extcode = stripslashes($_POST['extcode']);$extcode1 = stripslashes($_POST['extcode1']);$sql_email_check = mssql_query("SELECT mail_addr FROM MEMB_INFO WHERE mail_addr='$ps_email'"); $sql_username_check = mssql_query("SELECT memb___id FROM MEMB_INFO WHERE memb___id='$ps_loginname'"); $email_check = mssql_num_rows($sql_email_check); $username_check = mssql_num_rows($sql_username_check); if (empty($ps_loginname) || empty($ps_email) || empty($ps_password) || empty($ps_repassword) || empty($extcode) || empty($extcode1)) { echo "Algum campo foi deixado em branco"; $Error=1;}elseif (($email_check > 0) || ($username_check > 0)){ if($email_check > 0){ echo "E-Mail em uso, por favor escolha outro<br>"; $Error=1; } if ($username_check > 0){ echo "Login em uso, escolha outro por favor"; $Error=1; } }elseif ($ps_password != $ps_repassword) { echo "As senhas nao sao identicas"; $Error=1;}elseif ($extcode != $extcode1) { echo "Voce inseriu o codigo errado"; $Error=1;}if ($Error!=1){$msquery2 = "SET IDENTITY_INSERT MEMB_INFO ON";$msquery3 = "INSERT INTO MEMB_INFO (memb_guid,memb___id,memb__pwd,memb_name,sno__numb,post_code,addr_info,addr_deta,tel__numb,mail_addr,phon_numb,fpas_ques,fpas_answ,job__code,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('1','$ps_loginname','$ps_password','$ps_name', '1','1234','11111','$ps_person_id','12343','$ps_email','$ps_email','$ps_recquest','$ps_recans','1','2003-11-23','2003-11-23','2003-11-23','2003-11-23','1','0','1')";$msquery4 = "INSERT INTO VI_CURR_INFO (ends_days,chek_code,used_time,memb___id,memb_name,memb_guid,sno__numb,Bill_Section,Bill_value,Bill_Hour,Surplus_Point,Surplus_Minute,Increase_Days ) VALUES ('2005','1',1234,'$ps_loginname','$ps_name',1,'7','6','3','6','6','2003-11-23 10:36:00','0' )";$msresults= mssql_query($msquery2);$msresults= mssql_query($msquery3);$msresults= mssql_query($msquery4);?>Sua conta foi criada com sucesso!<?php}?></body></head></html> No caso eu estou pretendendo usar o seu sistema de login, e queria perguntar se está pagina esta configurada coretamente para, o sistema de login indentificar a senha em MD5 necessaria no Sistema de Login Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
mauricio.imbe 0 Denunciar post Postado Fevereiro 10, 2007 Olá pessoal,Como faço para "administrar" as página de acordo com "nivel_acesso", por exemplo deixar um página restrita ao nivel_acesso 2 (admin) ??Obrigado à todos. Compartilhar este post Link para o post Compartilhar em outros sites
Pauloooo 0 Denunciar post Postado Fevereiro 12, 2007 opa galera..pelo que entendi..esse sistema pega o usuario que esta cadastrado em uma tabela...correto??como que eu faço para pegar um usuario do banco de dados???e também verificar o nivel de acessofalou Compartilhar este post Link para o post Compartilhar em outros sites
Guilherme André 0 Denunciar post Postado Fevereiro 15, 2007 No meu caso eu estava com problema no login, mais já resolvi... em todas as paginas coloquei session_start(); e ta funcionando perfeitamente, porque antes a cada pagina que abria pedia login e senha! Compartilhar este post Link para o post Compartilhar em outros sites
mauricio.imbe 0 Denunciar post Postado Fevereiro 15, 2007 Como solucionei. Não a forma mais "elegante", mas funciona! Colocar este código no topo das páginas que quiser proteger por nivel_acesso. <?include("./protecao.php");/////////////////////////////////////////////////////////////////////////////////////////// condição de acesso por nível de usuário///////////////////////////////////////////////////////////////////////////////////////// mysql_connect("localhost", "login", "senha"); mysql_select_db("nomedobanco"); //nivel acesso $select_user = mysql_query ("SELECT * FROM nomedatabela WHERE login = '$dados[login]'"); while($row = mysql_fetch_array($select_user)) { $nivel = $row["nivel_acesso"]; $mostra_nome = $row["nome"]; } if($nivel != 2) // aqui define a condição de qual nível entra na página (0 - nada, 1 - comum, 2 - administrador) { echo "<p> </p> <p> </p> <table width=\"350\" border=\"1\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\" bordercolor=\"#FF0000\"> <tr> <td> <center>Você precisa ser Administrador para acessar a página - Gerenciar Login!</center> </td> </tr> </table>"; exit(); }//echo"$nivel<br>";//echo"$mostra_nome";//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////?> Compartilhar este post Link para o post Compartilhar em outros sites
Lucio KrioK 0 Denunciar post Postado Fevereiro 15, 2007 http://forum.imasters.com.br/public/style_emoticons/default/cry.gif Fabyo, estou tentando usar seu sistema de login e ocorreu os seguintes erros.Primeiro: Ocorre quando eu erro a senha na linha 25 que é o comando ( header("Location: teste.htm");) Warning: Cannot modify header information - headers already sent by (output started at c:\windows\serv-n\www\paginas\senha\protecao.php:9) in c:\windows\serv-n\www\paginas\senha\protecao.php on line 25Substitui pelo comando (include "login.html";) Não sei se é a mesma coisa, mas funcionou.Segundo: Bom funcionando com o comando (include "login.html";), quando eu vou para a pagina2, volta para o login, e eu não consigo de forma alguam logar novamente.Terceiro:Inclui uma pagina3, porem como eu disse anteriormente, quando eu estou na pagina principal e tento ir para pagina2 eu volto para o login.Você poderia ver o que acontece?coloca @ na frente da linha, assim: @header("Location: login.html"); =D Compartilhar este post Link para o post Compartilhar em outros sites
ATS# 0 Denunciar post Postado Fevereiro 24, 2007 Ola a todos, comecei php a poucos dias e comecei logo fazendo sistema em php, tow apanhando muito, e vi este sistema de login e senha e quem fez esta de parabens e muito bom mesmo, e acompanhei as perguntas e vi que faltava um LOGOUT, tentei fazer aki e acho que esta certo se naum estiver por favor me corrija. principal.php <?// incluo a pagina de protecao que faz a verificação do usuarioinclude "nprotecao.php";?><p><a href="npagina2.php">Pagina2</a></p><form name="form1" method="post" action="nlogout.php"> <input type="submit" name="Submit" value="logout"></form> logout.php <?php// Inicializa uma sessão.// Se você está usando session_name("something"), não esqueça!session_start();// Eliminar todas as variáveis de sessão.session_unset();// Finalmente, destruição da sessão.session_destroy();header("Location: login.html"); /* Redirect browser *//* Tenha certeza que o código abaixo não seja executado qunado nós redirecionamos. */exit;?> Um abraço Compartilhar este post Link para o post Compartilhar em outros sites
ATS# 0 Denunciar post Postado Fevereiro 25, 2007 rsrsrsrsrsrsrs.... Puts que vacilo, estava ontem tarde da noite lendo os posts da primeira pagina ai nem me liguei que tinha uma segunda e cometi a maior erro, de tentar responder uma duvida, mais pelo menos espero que esteja certo. Mais pra recompensar tow tentando responder ouutro post naum respondido ao amigo Everton Denis, o lance certo e assim amigo. cad_login2.php: <form id="formulario" name="formulario" action="cad_login2.php" method="post" > <table width="228" border="0" align="center"> <tr> <td width="68">Nome</td> <td width="244"><input type="text" name="nome" /></td> </tr> <tr> <td>Senha</td> <td><input type="password" name="senha" /></td> </tr> <tr> <td>E mail </td> <td><input type="text" name="email" /></td> </tr> <tr> <td>Nivel</td> <td><input type="text" name="nivel" /></td> </tr> <tr> <td colspan="2"><div align="center"> <input name="submit" type="submit" value="Cadastrar" /> </div></td> </tr> </table></form></body></html>inclui_usuario.php: <body><p align="center"> <? mysql_connect("localhost", "root", ""); mysql_select_db("banco"); $nome = $_POST["nome"]; $senha = $_POST["senha"]; $email = $_POST["email"]; $nivel = $_POST["nivel"]; if ( get_magic_quotes_gpc() ) { $nome = stripslashes($_POST["nome"]); $senha = stripslashes($_POST["senha"]); $email = stripslashes($_POST["email"]); $nivel = stripslashes($_POST["nivel"]); } $nome = mysql_escape_string($nome); $senha = mysql_escape_string($senha); $email = mysql_escape_string($email); $nivel = mysql_escape_string($nivel); $chave = md5( md5(strtolower(trim($nome))) . md5(strtolower(trim($senha))) ); $senha = md5($senha);$sql = "INSERT INTO usuarios (id_usuario, nome, senha, email, nivel_acesso, chave) VALUES (NULL, '$nome', '$senha', '$email', '$nivel', '$chave')";//echo $sql;//$rs = mysqlexecuta($sql);$re = mysql_query(sprintf($sql));?></p><div align="center">Cadastro efetuado com sucesso!!! </div><p align="center"></p><meta HTTP-EQUIV="REFRESH" CONTENT="3; URL=cad_login2.php"></body></html> Valeu ai...um abraço Compartilhar este post Link para o post Compartilhar em outros sites
nb-master 0 Denunciar post Postado Março 1, 2007 amigo nao testei o script ainda mas aconselho a usaur um if e else para tippo validar os usuariotipo - if usuario + senha no BD correto mostra pagina prategidaelse usuario + senha no BD nao-correto mostra pagina loginta ai uma dica... Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Março 2, 2007 FABIO, estou com um problema nesse sistema novo que você colocou... eu não gosto de usar o 'md5' utilizo o 'sha1', pois o nivel de segurança e maior... porem eu alterei ja a interpretação do sistema de md5 pra sha1, mais não consigo fazer o sistema funcionar... a chave eu nao sei ao certo como funciona, pois eu estou cadastrando direto no banco de dados... entao você poderia me explicar como fazer isso? NB-MASTER: posta ai pra gente as alterações que você sugeriu beleza? http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif Abraços. Compartilhar este post Link para o post Compartilhar em outros sites
Everton Denis 0 Denunciar post Postado Março 2, 2007 rsrsrsrsrsrsrs....Puts que vacilo, estava ontem tarde da noite lendo os posts da primeira pagina ai nem me liguei que tinha uma segunda e cometi a maior erro, de tentar responder uma duvida, mais pelo menos espero que esteja certo.Mais pra recompensar tow tentando responder ouutro post naum respondido ao amigo Everton Denis, o lance certo e assim amigo.cad_login2.php: <form id="formulario" name="formulario" action="cad_login2.php" method="post" > <table width="228" border="0" align="center"> <tr> <td width="68">Nome</td> <td width="244"><input type="text" name="nome" /></td> </tr> <tr> <td>Senha</td> <td><input type="password" name="senha" /></td> </tr> <tr> <td>E mail </td> <td><input type="text" name="email" /></td> </tr> <tr> <td>Nivel</td> <td><input type="text" name="nivel" /></td> </tr> <tr> <td colspan="2"><div align="center"> <input name="submit" type="submit" value="Cadastrar" /> </div></td> </tr> </table></form></body></html>inclui_usuario.php:<body><p align="center"> <? mysql_connect("localhost", "root", ""); mysql_select_db("banco"); $nome = $_POST["nome"]; $senha = $_POST["senha"]; $email = $_POST["email"]; $nivel = $_POST["nivel"]; if ( get_magic_quotes_gpc() ) { $nome = stripslashes($_POST["nome"]); $senha = stripslashes($_POST["senha"]); $email = stripslashes($_POST["email"]); $nivel = stripslashes($_POST["nivel"]); } $nome = mysql_escape_string($nome); $senha = mysql_escape_string($senha); $email = mysql_escape_string($email); $nivel = mysql_escape_string($nivel); $chave = md5( md5(strtolower(trim($nome))) . md5(strtolower(trim($senha))) ); $senha = md5($senha);$sql = "INSERT INTO usuarios (id_usuario, nome, senha, email, nivel_acesso, chave) VALUES (NULL, '$nome', '$senha', '$email', '$nivel', '$chave')";//echo $sql;//$rs = mysqlexecuta($sql);$re = mysql_query(sprintf($sql));?></p><div align="center">Cadastro efetuado com sucesso!!! </div><p align="center"></p><meta HTTP-EQUIV="REFRESH" CONTENT="3; URL=cad_login2.php"></body></html>Valeu ai...um abraçoNÃO ACREDITO!!!!!!!!!!!!Cara!!! eu vou testar agora mesmo!!!Eu tinha desistido disso jah. Tentei tentei e nda...Vlw amigo!!!Abraço e qquer coisa tamos ae!! Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 2, 2007 Rasp voce deve estar enganado MD5 alem de ser o melhor sistema de criptografia da atualizade, é tbm o mais usado pela maioria das linguagens nao confunda só porque sha1 gera um has de 40 caracteres isso nao quer dizer que é melhor que o MD5 que gera um has de 32 Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Março 2, 2007 Fala Fabyo,E prq eu sempre ouvi falar que sha1 é melhor... mais enfim... consegui fazer funcionar o sistema... so queria ver cntg uma coisa (se não for encomodar) alem dos erros que resultam do javascript resulta um erro geral "usuario ou senha incorretos".Tipo eu estava querendo separalos. por exemplo:Voce digita o usuario 'fabyo' e ele nao esta cadastrado, ai o sistema resultado (o usuario fabyo nao esta cadastro...)e a mesma coisa com a senha, claro sem informar a mesma.$resultado = mysql_query("select * from usuarios where login = '$nome'");$linhas = mysql_num_rows($resultado);if ($linhas ==0)/*verifica se a consulta resultou algum registro*/$retorno = "O Login \'' .$nome. '\' não esta cadastrado, Por favor verifique o login digitado.";else { if ($senha != mysql_result($resultado, 0, "senha")) { /*verifica a senha*/ $retorno = "Senha incorreta, Por favor verifique a senha digitada"; }Teria como você me ajudar? acima esta uma parte que eu montei para um outro sistema de login, mais não consigo fazer funcionar no seuVlw cara, abs Compartilhar este post Link para o post Compartilhar em outros sites
Fabyo 66 Denunciar post Postado Março 2, 2007 da algum erro ou nao valida? Compartilhar este post Link para o post Compartilhar em outros sites
nb-master 0 Denunciar post Postado Março 2, 2007 FABIO, estou com um problema nesse sistema novo que você colocou... eu não gosto de usar o 'md5' utilizo o 'sha1', pois o nivel de segurança e maior... porem eu alterei ja a interpretação do sistema de md5 pra sha1, mais não consigo fazer o sistema funcionar... a chave eu nao sei ao certo como funciona, pois eu estou cadastrando direto no banco de dados... entao você poderia me explicar como fazer isso?NB-MASTER: posta ai pra gente as alterações que você sugeriu beleza? http://forum.imasters.com.br/public/style_emoticons/default/graduated.gif Abraços.hehheh vlz... mas eu nao sei nd de PHP so novato!! o Genio é o FABYO...hhehe e ai td beleza??olha ai ! eu uso esse login aki o (você vai ter que editar para o seu SCRIPT) só coloquei pra você ter uma ideia<?session_start();if ($userid && $password){ include "../includes/config.php"; $db_conn = mysql_connect($server, $db_user, $db_pass) or die ("Database CONNECT Error (line 11)"); mysql_select_db($database, $db_conn); $query = "select * from host where refid='$userid' and pass='$password'"; $result = mysql_query($query, $db_conn); if (mysql_num_rows($result) >0 ) { $valid_user = $userid; session_register("valid_user"); }}if (session_is_registered("valid_user")) { } else { if (isset($userid)) { } else { } } include "members_only.php";?>se precisar de ajuda pra configura me manda um POST estou de plantao no Imasters... hehehhe :D Compartilhar este post Link para o post Compartilhar em outros sites
Rasp 3 Denunciar post Postado Março 5, 2007 Fala Fabyo e Nb-master,Já consegui resolver, brigadão ae! nada que uma madrugada acordado não resolveu, hehehe...Vlw mesmo!abração. Compartilhar este post Link para o post Compartilhar em outros sites
alexandre_miranda 0 Denunciar post Postado Março 12, 2007 Pessoal,Coloquei o sistema de login em dois servidores diferentes - HostNet e HostPHD.HostNet - funcionou no Opera e Firefox. No IE 7 ou 6, fica voltando pra tela de login quando entro com usuario e senha.HostPHD - funcionou em todos os browsers.localhost - funciona em todos também.Não entendi nada !!! Alguma idéia ou sugestão ??? Obrigado ! Compartilhar este post Link para o post Compartilhar em outros sites