Ir para conteúdo
Fórum Script Brasil
  • 0

Troca de senha no primeiro logon (Resolvido)


RRH

Pergunta

9 respostass a esta questão

Posts Recomendados

  • 0
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 exemplo

incluir o campo Sen_verifiquer=N quando o admin cria e =S depois da atualização,

incluir na sessao de login mais ou menos isso

if ($Sen_verifque=='N')

{

echo "Você deve atualizar sua senha, obrigado.";

/* instruções e operações para essa finalidade */

}

ou

contar os acessos Log_acesso

if (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

Link para o comentário
Compartilhar em outros sites

  • 0

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 por RRH
Link para o comentário
Compartilhar em outros sites

  • 0
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;

}

?>

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 isso

if ( ($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.

Link para o comentário
Compartilhar em outros sites

  • 0

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 por RRH
Link para o comentário
Compartilhar em outros sites

  • 0
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 parenteses

subistitua por isso

if ( ($resultado['verifique'] == 'N') or (empty($resultado['verifique']) ) )

{

header("Location: logar.php");

}

até mais.

Link para o comentário
Compartilhar em outros sites

  • 0

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');

Link para o comentário
Compartilhar em outros sites

  • 0
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 MySQL

mysql_connect('ser', 'bhn', 'db') or trigger_error(mysql_error());

// Tenta se conectar a um banco de dados MySQL

mysql_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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...