Alex Cota 0 Denunciar post Postado Novembro 11, 2009 estou aki de novo, encomodando vcs, seguinte, descobri uma falha no meu site, eu fiz a area de login com o MX Kollection, so q eu percebi q se eu digitar assim localhost/lj/admin/index2.php, ele entra no painel sem precisar logar, ja tentei colocar um .htacess mas ta dado erro 500. agradeço a vcs pela ajuda ai Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Novembro 11, 2009 Alex, antes de colocar qualquer código, como está sua estrutura de diretórios ? Por exemplo: / /index.php /admin /admin/index2.php /admin/outroarquivo.php Compartilhar este post Link para o post Compartilhar em outros sites
Alex Cota 0 Denunciar post Postado Novembro 11, 2009 no momento eu to rodando local e ta assim lj/admin/index.php o painel administrativo Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Novembro 11, 2009 Olá Alex, para barrar acesso a paginas restritas, você deve obrigar o usuario a fazer o login. por exemplo se o usuario digitar na url localhost/lj/admin/index2.php sem ele ter passado pelo login você redirecinaria ele para a pg de login. na pagina do painel de controle você configura as sessoes //nas primeiras linhas do php verifique a session session_start(); if(!$_SESSION["logado"]){ // se nao passou pelo login header("location:login.php"); // redireciona para o login } e na pagina de login, após validar nome e senha você coloca a session tbm $_SESSION["logado"] = true; // nao esqueca de iniciar a sessao na primeira linha do codigo (session_start) com isso, apos o usuario efetuar o login, ele "ganha" uma sessao de logado, dai ele tem permissao para usar o painel, caso alguem tente acessar o painel sem efetuar o login ele sera redirecionado para o login. Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Novembro 11, 2009 no momento eu to rodando local e ta assim lj/admin/index.php o painel administrativo E o que é essa index2.php que você citou no primeiro post ? Compartilhar este post Link para o post Compartilhar em outros sites
Alex Cota 0 Denunciar post Postado Novembro 11, 2009 quando loga se vai para index2, sera q e pq estou rodando localmente q esta entrando nas outras paginas esse codigo e do login do MX K ollection // Load the common classes require_once('../includes/common/KT_common.php'); // Require the MXI classes require_once ('../includes/mxi/MXI.php'); // Load the tNG classes require_once('../includes/tng/tNG.inc.php'); // Load the KT_back class require_once('../includes/nxt/KT_back.php'); // Make a transaction dispatcher instance $tNGs = new tNG_dispatcher("../"); Compartilhar este post Link para o post Compartilhar em outros sites
Alex Cota 0 Denunciar post Postado Novembro 11, 2009 outro problema tbem e o envio de email por php Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\wamp\www\lojacmp\enviar_contato.php on line 37 Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:\wamp\www\lojacmp\enviar_contato.php on line 44 Mensagens Recebidas com Sucesso <?php /* Enviar E-mail com Resposta Automática * Desenvolvido por: Gabriel Pinheiro * Data: 04/12/2007 */ // Recebendo os dados passados pela página "form_contato.php" $recebenome = $_POST['nome']; $recebemail = $_POST['email']; $recebetelefone = $_POST['telefone']; $recebeassunto = $_POST['assunto']; $recebemsg = $_POST['mensagem']; // Definindo os cabeçalhos do e-mail $headers = "Content-type:text/html; charset=iso-8859-1"; // Vamos definir agora o destinatário do email, ou seja, VOCÊ ou SEU CLIENTE $para = "comercio_mp@hotmail.com"; // Definindo o aspecto da mensagem $mensagem = "<h3>De:</h3> "; $mensagem .= $recebenome . $recebemail; $mensagem .= "<h3>Assunto:</h3>"; $mensagem .= $recebeassunto; $mensagem .= "<h3>Mensagem</h3>"; $mensagem .= "<p>"; $mensagem .= $recebetelefone . $recebemsg; $mensagem .= "</p>"; // Enviando a mensagem para o destinatário $envia = mail($para,"E-mail do Site",$mensagem,$headers); // Envia um e-mail para o remetente, agradecendo a visita no site, e dizendo que em breve o e-mail será respondido. $mensagem2 = "<p>Olá <strong>" . $recebenome . "</strong>. Agradeçemos sua visita e a oportunidade de recebermos o seu contato. Em até 48 horas você receberá no e-mail fornecido a resposta para sua questão.</p>"; $mensagem2 .= "<p>Observação - Não é necessário responder esta mensagem.</p>"; $envia = mail($recebemail,"Sua mensagem foi recebida!",$mensagem2,$headers); // Exibe na tela a mensagem de sucesso, e depois redireciona devolta para a página de contato. echo "Mensagens Recebidas com Sucesso!"; echo "<meta http-equiv='refresh' content='2;URL=faleconosco.php'>"; ?> Compartilhar este post Link para o post Compartilhar em outros sites
jpraminelli 3 Denunciar post Postado Novembro 11, 2009 cara. pra poder funcionar o envio de email localmente, você precisaria instalar na sua maquina um servidor de email, sem esse servidor você nao vai conseguir testar os envios e emails, se você não quiser instalar esse servidor, a solução seria "upar" seus arquivos para um servidor remoto tipo locaweb, uol etc... procure no baixaki por servidores de email... abraço Compartilhar este post Link para o post Compartilhar em outros sites
lucasmartins 6 Denunciar post Postado Novembro 11, 2009 Cara não conheço essa classe MX Kollection, mas da forma tradicional, é como o jpraminelli disse. Eu, normalmente, em minhas aplicações, tenho um arquivo que chama auth.php que verifica a autenticação do usuário, e também a sua sessão atual. Então quando o usuário faz o login, antes de ir para index.php, ele vai para auth.php. Se for autenticado, ele redireciona para index.php. Daí todas as páginas do site, inclui o auth.php em primeiro lugar, que faz a verificação se a sessão do usuário está ok, se não estiver ok ele redireciona para login.php. Desta forma, quando o usuário visitar o painel (ex.: http://www.meuquerid...panel/index.php), antes de tudo o auth.php verificará se o cidadão já está com sessão, se não ele joga para o login.php. Complico um pouquinho para entender, né??? :P Deixe-me explicar de uma forma mais simples: 1. Usuário tenta acessar http://www.meuquerid...panel/index.php, que por sua vez possui incluso o auth.php em primeiro lugar para verificar a sessão, se ele estiver com sessão ok, nada faz e o usuário continuará navegando normalmente pelo painel, caso contrário, o auth.php redirecionará ele para a página login.php. 2. Na página login.php, unica coisa que tem é o formulário que na ação do submit as informações serão enviadas para auth.php que fará toda a papelada de autenticação, e se autenticar redireciona para index.php, caso contrário, volta para login.php para o cara tentar se logar novamente. 3. Ao usuário tentar acessar http://www.meuquerid...l/cadastrar.php o mesmo processo do primeiro item se repetirá. Essa é a lógica que eu utilizo... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Ferreira Felipe 0 Denunciar post Postado Novembro 11, 2009 Eu, normalmente, em minhas aplicações, tenho um arquivo que chama auth.php que verifica a autenticação do usuário, e também a sua sessão atual. Ola lucasmartins.com.br, você poderia postar o código dessa sua página auth.php??? Agradecido pela atenção... Boa noite a todos!! Compartilhar este post Link para o post Compartilhar em outros sites
lucasmartins 6 Denunciar post Postado Novembro 12, 2009 Ola lucasmartins.com.br, você poderia postar o código dessa sua página auth.php??? Agradecido pela atenção... Boa noite a todos!! Certo, acabei de comentar todo o código para vocês entenderem cada etapa do arquivo... mas não sei se é o melhor jeito... eu fiz e tá dando certo aqui... abraços... obs: as consultas são feitas no módulo Model... não posso ficar colocando aqui pra vcs... <?php session_start(); // inicia sessão if ($_GET['g'] == "auth") { // Verifica se a solicitação vem pelo form de login isset($_SESSION['ref']) ? $_SESSION['ref'] = $_SESSION['ref'] : $_SESSION['ref'] = "index.php"; // Verifica se existe uma página "referer" // inclui arquivos de configuração, auto carregamento e o módulo de controle de administradores respectivamente. require('includes/configs.inc.php'); require('includes/autoload.php'); require('modules/servlet/AdminsController.php'); $administrador = $administradorController->Autenticar($_POST['usuario'], md5($_POST['passw'])); // Cria o administrador if ($administrador) { // Verifica se existe o administrador ou não $_SESSION['autentica'] = $administrador; // Coloca a array em uma session if ($_POST['lembrar']) { // Verifica se o usuário deseja gravar as informações para não ter que se logar novamente na proxima sessão setcookie("adm_".$config['nome']."[user]",$_POST['usuario'], time()+3600*24*15); setcookie("adm_".$config['nome']."[passw]",md5($_POST['passw']), time()+3600*24*15); } header('Location: '.$_SESSION['ref']); // Redireciona para a página que o usuário tentava acessar } else { // Se não existe... header('Location: login.php?e=1'); // Redireciona para login.php informando o erro } } else { // Se a solicitação não vir pelo form de login... mas sim de uma tentativa de acesso de uma página restrita... if ($_SESSION['autentica'] == NULL || !isset($_SESSION['autentica'])) { // Se não existe a sessão autentica ou é nula... require('includes/configs.inc.php'); // inclui um arquivo q contém as configurações do site if (isset($_COOKIE['adm_'.$config['nome'].''])) { // Verifica se este usuário possui o cookie com um usuário válido... // inclui arquivos de auto carregamento e módulo de controle do administrador require_once('includes/autoload.php'); require_once('modules/servlet/AdminsController.php'); // cria o administrador $administrador = $administradorController->Autenticar($_COOKIE['adm_'.$config['nome']]['user'], $_COOKIE['adm_'.$config['nome']]['passw']); if ($administrador) { $_SESSION['autentica'] = $administrador; // guarda na sessão header('Location: index.php'); // redireciona para a primeira página do sistema } else { header('Location: login.php'); } } else { // Se não possui o cookie if (substr(basename($_SERVER['PHP_SELF']), 0, 5) != "login") { // se está página não for a página login, redireciona para a página login.php $_SESSION['ref'] = $_SERVER['REQUEST_URI']; header('Location: login.php?a=1'); } } } /* */ } ?> Compartilhar este post Link para o post Compartilhar em outros sites
Ferreira Felipe 0 Denunciar post Postado Novembro 12, 2009 Certo, acabei de comentar todo o código para vocês entenderem cada etapa do arquivo... mas não sei se é o melhor jeito... eu fiz e tá dando certo aqui... abraços... Agradeço por ter postado o código... Vou dar uma olhada nele.. Mas pelo que olhei, realmente é complexo... Não sei se poderia ajudar ou deixar com mais dúvidas ainda, rsrsrrsrs Mas depende muito do nível de conhecimento da pessoa. Mais uma vez, obrigado por ter postado e desculpem me meter no tópico! Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Novembro 12, 2009 Não analisei o script inteiro, mas o ternário poderia ser feito assim: $_SESSION['ref'] = ( isset($_SESSION['ref']) )? $_SESSION['ref'] : 'index.php'; // Verifica se existe uma página "referer" Compartilhar este post Link para o post Compartilhar em outros sites
Alex Cota 0 Denunciar post Postado Novembro 12, 2009 so o seguinte como faço pra usar uma senha com criptografia???? eu coloco no mx pra criptografia e como coloco no banco /?? Compartilhar este post Link para o post Compartilhar em outros sites
Ferreira Felipe 0 Denunciar post Postado Novembro 12, 2009 so o seguinte como faço pra usar uma senha com criptografia???? eu coloco no mx pra criptografia e como coloco no banco /?? Basta colocar a linha de codigo abaixo na hora de criar o usuário. = mysql_query("INSERT INTO `login`( `nome`, `senha`) VALUES ('$nome',md5('$senha'))") or die(mysql_error()); Falou!!! Compartilhar este post Link para o post Compartilhar em outros sites
lucasmartins 6 Denunciar post Postado Novembro 12, 2009 Não analisei o script inteiro, mas o ternário poderia ser feito assim: $_SESSION['ref'] = ( isset($_SESSION['ref']) )? $_SESSION['ref'] : 'index.php'; // Verifica se existe uma página "referer" Fala Grande William... Pois é, sempre tenho dúvida como deixar o ternário... é que eu sempre imagino o seguinte: Condição -> Operação... Então sempre começo pela condição (exemplo: isset($_SESSION['ref']) ?) e depois a operação... mas não sei bem qual é a melhor prática aí... E se você puder análisar o código todo melhor ainda ^^ ... 2 cabeças análisam melhor q 1... Abraços Compartilhar este post Link para o post Compartilhar em outros sites