RRH Postado Outubro 26, 2010 Denunciar Share Postado Outubro 26, 2010 (editado) Tem alguma forma de fazer com que o adminstrador do sistema php crie uma senha para um usuario e no seu primeiro logon seja solicitado a alteração da senha? Editado Outubro 28, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Outubro 26, 2010 Denunciar Share Postado Outubro 26, 2010 Tem alguma forma de fazer com que o adminstrador do sistema php crie uma senha para um usuario e no seu primeiro logon seja solicitado a alteração da senha?Basta inserir um campo indicador e no assim que o usuario acessar ele pede a atualização dos dados exemploincluir o campo Sen_verifiquer=N quando o admin cria e =S depois da atualização, incluir na sessao de login mais ou menos issoif ($Sen_verifque=='N'){ echo "Você deve atualizar sua senha, obrigado.";/* instruções e operações para essa finalidade */} ou contar os acessos Log_acessoif (Log_acesso<=0){echo "Seja bem vindo ao sistema, atualize seus dados para melhor acesso.";/* instruções e operações para essa finalidade */}até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Outubro 26, 2010 Autor Denunciar Share Postado Outubro 26, 2010 (editado) Tem como fazer isso aproveitando o código abaixo:<?php // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s) if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) { header("Location: logar.php"); exit; } // Tenta se conectar ao servidor MySQL mysql_connect('localhost', 'root', '') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysql_select_db('base') or trigger_error(mysql_error()); $usuario = mysql_real_escape_string($_POST['usuario']); $senha = mysql_real_escape_string($_POST['senha']); // Validação do usuário/senha digitados $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1"; $query = mysql_query($sql); if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado echo "Login inválido!"; exit; } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_assoc($query); // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['UsuarioID'] = $resultado['id']; $_SESSION['UsuarioNome'] = $resultado['nome']; $_SESSION['UsuarioNivel'] = $resultado['nivel']; // Redireciona o visitante header("Location: index2.php"); exit; } ?> Editado Outubro 26, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Outubro 26, 2010 Denunciar Share Postado Outubro 26, 2010 Tem como fazer isso aproveitando o código abaixo:<?php// Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) {header("Location: logar.php"); exit;}// Tenta se conectar ao servidor MySQLmysql_connect('localhost', 'root', '') or trigger_error(mysql_error());// Tenta se conectar a um banco de dados MySQLmysql_select_db('base') or trigger_error(mysql_error());$usuario = mysql_real_escape_string($_POST['usuario']);$senha = mysql_real_escape_string($_POST['senha']);// Validação do usuário/senha digitados$sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";$query = mysql_query($sql);if (mysql_num_rows($query) != 1) {// Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontradoecho "Login inválido!"; exit;} else {// Salva os dados encontados na variável $resultado$resultado = mysql_fetch_assoc($query);// Se a sessão não existir, inicia umaif (!isset($_SESSION)) session_start();// Salva os dados encontrados na sessão$_SESSION['UsuarioID'] = $resultado['id'];$_SESSION['UsuarioNome'] = $resultado['nome'];$_SESSION['UsuarioNivel'] = $resultado['nivel'];// Redireciona o visitanteheader("Location: index2.php"); exit;}?>por certo que sim, você devera modificar o banco de dados, poste o sql da tabela de usuarios , crie um campo chamado verifique tipo varchar na pagina acima substitua ou inclua isso $sql = "SELECT `id`, `nome`, `nivel` FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";por isso $sql = "SELECT `id`, `nome`, `nivel`, verifique FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1";$query = mysql_query($sql);por isso $query = mysql_query($sql) or die(mysql_error());abaixo disso $resultado = mysql_fetch_assoc($query);acrescente issoif ( ($resultado['verifique'] == 'N') or (empty($resultado['verifique']) ) { /* aqui você redireciona para a pagina de atualização dos dados */}/* o resto prossegue normal */lembre de postar o codigo que faz a inserção dos cadastros para a analizar se precisa de modificações e o codigo da pagina de atualização, edição para tambem uma analize para verificar se precisa alguma mudança até mais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Outubro 26, 2010 Autor Denunciar Share Postado Outubro 26, 2010 (editado) Caro rickayron, muito obrigado pela presteza em me ajudar. Agora está dando o seguinte erro:Parse error: syntax error, unexpected '{' in /var/www/niveis/validacao.php on line 27<?php // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s) if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) { header("Location: logar.php"); exit; } // Tenta se conectar ao servidor MySQL mysql_connect('localhost', 'root', '') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysql_select_db('base') or trigger_error(mysql_error()); $usuario = mysql_real_escape_string($_POST['usuario']); $senha = mysql_real_escape_string($_POST['senha']); // Validação do usuário/senha digitados $sql = "SELECT `id`, `nome`, `nivel`, verifique FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1"; $query = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado echo "Login inválido!"; exit; } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_assoc($query); if ( ($resultado['verifique'] == 'N') or (empty($resultado['verifique']) ) { header("Location: logar.php"); } // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['UsuarioID'] = $resultado['id']; $_SESSION['UsuarioNome'] = $resultado['nome']; $_SESSION['UsuarioNivel'] = $resultado['nivel']; // Redireciona o visitante header("Location: index2.php"); exit; } ?> Editado Outubro 26, 2010 por RRH Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Outubro 26, 2010 Denunciar Share Postado Outubro 26, 2010 Caro rickayron, muito obrigado pela presteza em me ajudar. Agora está dando o seguinte erro:Parse error: syntax error, unexpected '{' in /var/www/niveis/validacao.php on line 27<?php // Verifica se houve POST e se o usuário ou a senha é(são) vazio(s) if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) { header("Location: logar.php"); exit; } // Tenta se conectar ao servidor MySQL mysql_connect('localhost', 'root', '') or trigger_error(mysql_error()); // Tenta se conectar a um banco de dados MySQL mysql_select_db('base') or trigger_error(mysql_error()); $usuario = mysql_real_escape_string($_POST['usuario']); $senha = mysql_real_escape_string($_POST['senha']); // Validação do usuário/senha digitados $sql = "SELECT `id`, `nome`, `nivel`, verifique FROM `usuarios` WHERE (`usuario` = '". $usuario ."') AND (`senha` = '". sha1($senha) ."') AND (`ativo` = 1) LIMIT 1"; $query = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado echo "Login inválido!"; exit; } else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_assoc($query); if ( ($resultado['verifique'] == 'N') or (empty($resultado['verifique']) ) { header("Location: logar.php"); } // Se a sessão não existir, inicia uma if (!isset($_SESSION)) session_start(); // Salva os dados encontrados na sessão $_SESSION['UsuarioID'] = $resultado['id']; $_SESSION['UsuarioNome'] = $resultado['nome']; $_SESSION['UsuarioNivel'] = $resultado['nivel']; // Redireciona o visitante header("Location: index2.php"); exit; } ?>if ( ($resultado['verifique'] == 'N') or (empty($resultado['verifique']) ) { header("Location: logar.php");}observe acima que falta fechar um parentesessubistitua por isso if ( ($resultado['verifique'] == 'N') or (empty($resultado['verifique']) ) ){ header("Location: logar.php");}até mais. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Outubro 26, 2010 Autor Denunciar Share Postado Outubro 26, 2010 Agora não está exibindo mais o erro, mas não está fazendo a verificação.-- Estrutura da tabela `usuarios` -- CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(11) unsigned NOT NULL auto_increment, `nome` varchar(50) NOT NULL, `usuario` varchar(25) NOT NULL, `senha` varchar(40) NOT NULL, `email` varchar(100) NOT NULL, `nivel` int(1) unsigned NOT NULL default '1', `ativo` tinyint(1) NOT NULL default '1', `cadastro` datetime NOT NULL, `verifique` varchar(1) NOT NULL default '1', PRIMARY KEY (`id`), UNIQUE KEY `usuario` (`usuario`), KEY `nivel` (`nivel`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4; -- -- Extraindo dados da tabela `usuarios` -- INSERT INTO `usuarios` (`id`, `nome`, `usuario`, `senha`, `email`, `nivel`, `ativo`, `cadastro`, `verifique`) VALUES (1, 'TESTE', '1111111', '19293f6e42e58f7c5966f6441b306aafd37d90b6', 'teste@teste.com.br', 5, 1, '2010-10-26 11:42:19', 'N'), (2, 'TESTE', '1111112', 'd033e22ae348aeb5660fc2140aec35850c4da997', 'teste@teste.com.br', 1, 1, '2010-10-26 18:39:46', 'N'), (3, 'TESTE', '1111113', 'd033e22ae348aeb5660fc2140aec35850c4da997', 'teste@teste.com.br', 1, 0, '2010-10-26 20:47:12', 'N'); Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Outubro 26, 2010 Denunciar Share Postado Outubro 26, 2010 Agora não está exibindo mais o erro, mas não está fazendo a verificação.-- Estrutura da tabela `usuarios` -- CREATE TABLE IF NOT EXISTS `usuarios` ( `id` int(11) unsigned NOT NULL auto_increment, `nome` varchar(50) NOT NULL, `usuario` varchar(25) NOT NULL, `senha` varchar(40) NOT NULL, `email` varchar(100) NOT NULL, `nivel` int(1) unsigned NOT NULL default '1', `ativo` tinyint(1) NOT NULL default '1', `cadastro` datetime NOT NULL, `verifique` varchar(1) NOT NULL default '1', PRIMARY KEY (`id`), UNIQUE KEY `usuario` (`usuario`), KEY `nivel` (`nivel`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4; -- -- Extraindo dados da tabela `usuarios` -- INSERT INTO `usuarios` (`id`, `nome`, `usuario`, `senha`, `email`, `nivel`, `ativo`, `cadastro`, `verifique`) VALUES (1, 'TESTE', '1111111', '19293f6e42e58f7c5966f6441b306aafd37d90b6', 'teste@teste.com.br', 5, 1, '2010-10-26 11:42:19', 'N'), (2, 'TESTE', '1111112', 'd033e22ae348aeb5660fc2140aec35850c4da997', 'teste@teste.com.br', 1, 1, '2010-10-26 18:39:46', 'N'), (3, 'TESTE', '1111113', 'd033e22ae348aeb5660fc2140aec35850c4da997', 'teste@teste.com.br', 1, 0, '2010-10-26 20:47:12', 'N');agora ta direitin<?php// Verifica se houve POST e se o usuário ou a senha é(são) vazio(s)if (!empty($_POST) AND (empty($_POST['usuario']) OR empty($_POST['senha']))) { header("Location: logar.php"); exit;}// Tenta se conectar ao servidor MySQLmysql_connect('ser', 'bhn', 'db') or trigger_error(mysql_error());// Tenta se conectar a um banco de dados MySQLmysql_select_db('bh') or trigger_error(mysql_error());$usuario = trim($_POST['usuario']);$senha = sha1(trim($_POST['senha']));$usuario=1111111';$senha='19293f6e42e58f7c5966f6441b306aafd37d90b6';// Validação do usuário/senha digitados$sql = "SELECT id, nome, nivel, verifique FROM usuarios WHERE usuario = '$usuario' && senha= '$senha' && ativo = 1 LIMIT 1";$query = mysql_query($sql) or die(mysql_error());if (mysql_num_rows($query) != 1) { // Mensagem de erro quando os dados são inválidos e/ou o usuário não foi encontrado echo "Login inválido!"; exit;} else { // Salva os dados encontados na variável $resultado $resultado = mysql_fetch_assoc($query);if ( ($resultado['verifique] == 'N') or (empty($resultado['verifique']) )){ header("Location: bla.php", true); //echo "foi aqui"; exit; exit;} // Salva os dados encontrados na sessão $_SESSION['UsuarioID'] = $resultado['id']; $_SESSION['UsuarioNome'] = $resultado['nome']; $_SESSION['UsuarioNivel'] = $resultado['nivel']; // Redireciona o visitante header("Location: sistema.php", true);}?>não de echo embaixo do header até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RRH Postado Outubro 27, 2010 Autor Denunciar Share Postado Outubro 27, 2010 Caro rickayron, muito obrigado mais uma vez. Agora deu certinho! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Denis Nigra Postado Agosto 22, 2018 Denunciar Share Postado Agosto 22, 2018 Boa tarde, Sou novo aqui no Fórum e sei que esse post já é beeeeeem antigo, porém, eu gostaria de saber como ficaria essa mesma situação utilizando SQL Server?! Obrigado e desculpe pelo incomodo! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RRH
Tem alguma forma de fazer com que o adminstrador do sistema php crie uma senha para um usuario e no seu primeiro logon seja solicitado a alteração da senha?
Editado por RRHLink para o comentário
Compartilhar em outros sites
9 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.