Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

daya

com troca senha

Recommended Posts

Olá!

estou fazendo uma página para troca de senha de um webmail.

 

Sendo que o usuario ja esteja logado no email como poderei fazer pra ele poder mudar de senha.

 

tenho a uma página html com o formulario:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/settings.css" />
</head>
<body>

<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/settingstabs.html" />

<div id="userprefs-box"> 
<div id="userprefs-title"><roundcube:label name="managepasswd" /></div>
<br></br><br><br><br><br><br><br>
	<table cellpadding=5 cellspacing=1>
		<form target="dinges" action="trocasenha.php" method="POST">
		
		<tr><td class=list align=right>Nova senha:</td>
		  <td class=list><input type=password name=newpwd  id=newpwd size=32 /></td>
		</tr>
		<tr><td class=list align=right>Confirma nova senha:</td><td class=list><input type=password name=conpwd id=conpwd size=32></td></tr>
		<tr><td class=listtitle colspan=2 align=right><input type=submit target="_blank" value="Trocar senha"></td></tr>
</form>
<table> </div>
<br>
<roundcube:include file="/includes/settingscripts.html" />
<iframe name="dinges" src="skins/default/templates/blank.htm" scrolling="no" frameborder="0" allowtransparency="1"></iframe>
</body>
</html>

e preciso de uma outra que chame o banco e faça as alterações, mas não tenho ideia de como posso fazer isto, se alguém puder me ajudar!!!!!

 

Desde já obrigada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, vamos lá então ?

 

posta aqui pra mim o nome do campo que armazena a senha e o nome de sua tabela.

 

Verifique se esta senha é criptografada em MD5 também, se for me avise.

 

aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

armazena a senha= password

tabela=users

e a senha eh criptografada em MD5.

 

 

armazena a senha= password

tabela=users

e a senha eh criptografada em MD5.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certinho, vou fazer aqui e te passar, o resto é com você, vou colocar em maiúsculo o que for preciso para você alterar.

 

 

Aguarde...

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então daya, aqui estou hehe, vou ter que te explicar algumas coisinhas antes, lá vai o código [Está Modificado].

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><roundcube:object name="pagetitle" /></title>
<roundcube:include file="/includes/links.html" />
<link rel="stylesheet" type="text/css" href="/settings.css" />
</head>
<body>

<roundcube:include file="/includes/taskbar.html" />
<roundcube:include file="/includes/header.html" />
<roundcube:include file="/includes/settingstabs.html" />

<div id="userprefs-box">
<div id="userprefs-title"><roundcube:label name="managepasswd" /></div>
<br></br><br><br><br><br><br><br>
	<table cellpadding=5 cellspacing=1>
		<form name="trcar_senha" action="" method="POST">

		<tr><td class=list align=right>Nova senha:</td>
		  <td class=list><input type="password" name="newpwd"  id="newpwd" size="32" /></td>
		</tr>
		<tr><td class=list align=right>Confirma nova senha:</td><td class=list><input type=password name=conpwd id=conpwd size=32></td></tr>
		<tr><td class=listtitle colspan=2 align=right><input type="submit" value="Trocar senha" name="trocar"></td></tr>
</form>
<table> </div>
<br>
<roundcube:include file="/includes/settingscripts.html" />
<iframe name="dinges" src="skins/default/templates/blank.htm" scrolling="no" frameborder="0" allowtransparency="1"></iframe>
</body>
</html>
<?php
define('HOST','localhost');
define('USUARIO','USUARIO O DB AQUI !');
define('SENHA','SENHA DO USUÁRIO DO DB AQUI !');
define('DB','NOME DO DB AQUI !');
define('ERRO','Erro ao se conectar com a base de dados');
$con=mysql_connect(HOST,USUARIO,SENHA)or die(ERRO. mysql_error($con));
if($_SERVER['REQUEST_METHOD']=='POST'){
   if(isset($_POST['trocar'])){
	 (($_POST['newpwd']) != ($_POST['conpwd'])) ? (print('As senhas não coinsidem.'))
	 : md5($_POST['newpwd']); $trocar_s=mysql_query("UPDATE user SET password='{$_POST['newpwd']}' WHERE CAMPO_ID='ID DO USUÁRIO'")or die(mysql_error());
   }
}
?>

Vamos a explicação: Note que na query de atualização, no WHERE eu coloquei em maiúculo pra você ver que ali terá que ser o campo que armazena o ID referente ao usuário, onde tem ID DO USUÁRIO é pra você pegar o ID do usuário e colocar ali, sabe como pegar o ID do usuário não sabe ? terá que pega-lo via GET ou POST de algum outro link que leva a página de trocar a senha.

 

se tiver dúvidas posta ai.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alaerte muito obrigada pela ajuda....

mas fiz como você disse só que não acontece nada ele retorna novamente a pagina mas sem mudar a senha.

Compartilhar este post


Link para o post
Compartilhar em outros sites

trocasenha.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title><roundcube:object name="pagetitle" /></title>

<roundcube:include file="/includes/links.html" />

<link rel="stylesheet" type="text/css" href="/settings.css" />

</head>

<body>

 

<roundcube:include file="/includes/taskbar.html" />

<roundcube:include file="/includes/header.html" />

<roundcube:include file="/includes/settingstabs.html" />

<roundcube:include file="/templates/passwd.html" />

 

<?php

$OUTPUT= $_POST["OUTPUT"];

define('HOST','localhost');

define('USUARIO','root');

define('SENHA','secury.s3cur1');

define('DB',' mailscanner');

define('ERRO','Erro ao se conectar com a base de dados');

$con=mysql_connect(HOST,USUARIO,SENHA)or die(ERRO. mysql_error($con));

if($_SERVER['REQUEST_METHOD']=='POST'){

if(isset($_POST['trocar'])){

(($_POST['newpwd']) != ($_POST['conpwd'])) ? (print('As senhas não coinsidem.'))

: md5($_POST['newpwd']); $trocasenha=mysql_query("UPDATE user SET password='{$_POST['newpwd']}' WHERE password='$OUTPUT'")or die(mysql_error());

}

}

 

?>

 

<roundcube:include file="/includes/settingscripts.html" />

<iframe name="dinges" src="skins/default/templates/blank.htm" scrolling="no" frameborder="0" allowtransparency="1"></iframe>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se fosse possivel, poderia comentar o codigo que você m enviou é que não entendo muito...heheheheh...obrigada....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda está errado daya, WHERE password não... tem quer ser o ID referente ao usuário que está trocando a senha... e para isso você precisa pegá-lo no DB através da sessão autenticada do usuário, quando você faz login no sistema, pe através de cookie ou session ?

 

enquanto ao código, eu te explico depois.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos por outro metodo então daya, adicionei mais um campo no qual o usuário deverá informar a antiga senha.

 

CODE

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<title><roundcube:object name="pagetitle" /></title>

<roundcube:include file="/includes/links.html" />

<link rel="stylesheet" type="text/css" href="/settings.css" />

</head>

<body>

 

<roundcube:include file="/includes/taskbar.html" />

<roundcube:include file="/includes/header.html" />

<roundcube:include file="/includes/settingstabs.html" />

 

<div id="userprefs-box">

<div id="userprefs-title"><roundcube:label name="managepasswd" /></div>

<br></br><br><br><br><br><br><br>

<table cellpadding=5 cellspacing=1>

<form name="trcar_senha" action="" method="POST">

 

<tr><td class=list align=right>Antiga senha:</td>

<td class=list><input type="password" name="senha_a" id="newpwd" size="32" /></td>

</tr>

<tr><td class=list align=right>Nova senha:</td>

<td class=list><input type="password" name="newpwd" id="newpwd" size="32" /></td>

</tr>

<tr><td class=list align=right>Confirma nova senha:</td><td class=list><input type=password name=conpwd id=conpwd size=32></td></tr>

<tr><td class=listtitle colspan=2 align=right><input type="submit" value="Trocar senha" name="trocar"></td></tr>

</form>

<table> </div>

<br>

<roundcube:include file="/includes/settingscripts.html" />

<iframe name="dinges" src="skins/default/templates/blank.htm" scrolling="no" frameborder="0" allowtransparency="1"></iframe>

</body>

</html>

<?php

define('HOST','localhost');

define('USUARIO','USUARIO O DB AQUI !');

define('SENHA','SENHA DO USUÁRIO DO DB AQUI !');

define('DB','NOME DO DB AQUI !');

define('ERRO','Erro ao se conectar com a base de dados');

$con=mysql_connect(HOST,USUARIO,SENHA)or die(ERRO. mysql_error($con));

if($_SERVER['REQUEST_METHOD']=='POST'){

if(isset($_POST['trocar'])){

$senha_a=mysql_query("SELECT COUNT(*) AS password FROM user WHERE password='".md5($_POST['senha_a'])."'");

if(mysql_result($senha_a,0,'password'))){

(($_POST['newpwd']) != ($_POST['conpwd'])) ? (print('As senhas não coinsidem.'))

: md5($_POST['newpwd']); $trocar_s=mysql_query("UPDATE user SET password='{$_POST['newpwd']}' WHERE password='".md5($_POST['senha_a'])."'")or die(mysql_error());

}else{echo 'A senha antiga está incorreta.';}

}

}

?>

 

pronto, preencha ai o usuário senha e o nome do DB e testa agora, se der erro me fala, fiz por alto.

 

aguardo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo, troque apenas a parte do PHP por esta:

 

 

quando você enviar o formulário aparece qual erro ?

<?php
define('HOST','localhost');
define('USUARIO','USUARIO O DB AQUI !');
define('SENHA','SENHA DO USUÁRIO DO DB AQUI !');
define('DB','NOME DO DB AQUI !');
define('ERRO','Erro ao se conectar com a base de dados');
$con=mysql_connect(HOST,USUARIO,SENHA)or die(ERRO. mysql_error($con));
if($_SERVER['REQUEST_METHOD']=='POST'){
if(isset($_POST['trocar'])){
$senha_antiga=mysql_query("SELECT COUNT(*) AS password FROM user WHERE password='".md5($_POST['senha_a'])."'")or die('Erro ao comparar senhas'.mysql_error($con));
if(mysql_result($senha_antiga,0,'password'))){
(($_POST['newpwd']) != ($_POST['conpwd'])) ? (print('As senhas não coinsidem.'))
: md5($_POST['newpwd']); $trocar_s=mysql_query("UPDATE user SET password='{$_POST['newpwd']}' WHERE password='".md5($_POST['senha_a'])."'")or die(mysql_error());
}else{echo 'A senha antiga está incorreta.';}
}
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja fiz isto e continua ñ acontece nada e ele ñ da nenhuma mensagem de erro, apenas volta na tela do formulario d altera senha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito estranho daya... não consigo entender, mais vamos fazer o seguinte, posta aqui pra mim a estrutura da tabela USER poste apenas os nomes dos campos, vou fazer de outro método.

 

DE QUALQUER FORMA, TENTE O SCRIPT ASSIMA QUE PASSEI NOVAMENTE POIS FIZ UMA EDIÇÃO, TAVA COM CONFLITO DE VARIÁVEIS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Daya o erro foi meu, falta de atenção mesmo, agora tente novamente:

 

CODE

<table cellpadding=5 cellspacing=1>

<form name="trcar_senha" action="" method="POST">

 

<tr><td class=list align=right>Antiga senha:</td>

<td class=list><input type="password" name="senha_a" id="senha_a" size="32" /></td>

</tr>

<tr><td class=list align=right>Nova senha:</td>

<td class=list><input type="password" name="newpwd" id="newpwd" size="32" /></td>

</tr>

<tr><td class=list align=right>Confirma nova senha:</td><td class=list><input type=password name=conpwd id=conpwd size=32></td></tr>

<tr><td class=listtitle colspan=2 align=right><input type="submit" value="Trocar senha" name="trocar"></td></tr>

</form>

<table> /div>

<br>

</body>

</html>

<?php

define('HOST','localhost');

define('USUARIO','USUARIO O DB AQUI !');

define('SENHA','SENHA DO USUÁRIO DO DB AQUI !');

define('DB','NOME DO DB AQUI !');

define('ERRO','Erro ao se conectar com a base de dados');

$con=mysql_connect(HOST,USUARIO,SENHA)or die(ERRO. mysql_error($con));

if($_SERVER['REQUEST_METHOD']=='POST'){

 

if(isset($_POST['trocar'])){

 

$senha_antiga=mysql_query("SELECT COUNT(*) AS password FROM user WHERE password='".md5($_POST['senha_a'])."'")or die('Erro ao comparar senha'.mysql_error($con));

if(mysql_result($senha_antiga,0,'password'))){

(($_POST['newpwd']) != ($_POST['conpwd'])) ? (print('As senhas não coinsidem.'))

: md5($_POST['newpwd']); $trocar_s=mysql_query("UPDATE user SET password='{$_POST['newpwd']}' WHERE password='".md5($_POST['senha_a'])."'")or die(mysql_error());

}else{echo 'A senha antiga está incorreta.';}

}

}

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.