Estou usando o método de função
<?php
//Incluindo a conexão com banco de dados
include_once'config.php';
class conecta extends config{
var $pdo;
function __construct(){
$this->pdo = new PDO ('mysql:host='.$this->host.';dbname='.$this->db, $this->usuario, $this->senha);
}
// Funcão Grava nova senha
function setNovaSenha($novasenha, $IdContador){
$stmt = $this->pdo->prepare("UPDATE contador SET PWord = :novasenha WHERE idContador = :IdContador");
$stmt->bindValue(":novasenha", sha1($novasenha));
$stmt->bindValue(":IdContador", $IdContador);
$run = $stmt->execute();
}
Postando corretamente o código…
<?php
//Incluindo a conexão com banco de dados
include_once'config.php';
class conecta extends config{
var $pdo;
function __construct(){
$this->pdo = new PDO ('mysql:host='.$this->host.';dbname='.$this->db, $this->usuario, $this->senha);
}
// Funcão Grava nova senha
function setNovaSenha($novasenha, $IdContador){
$stmt = $this->pdo->prepare("UPDATE contador SET PWord = :novasenha WHERE idContador = :IdContador");
$stmt->bindValue(":novasenha", sha1($novasenha));
$stmt->bindValue(":IdContador", $IdContador);
$run = $stmt->execute();
}
}
Olá Iohannes, muito grato pela resposta!
A conexão esta td ok, faço consultas e efetuo login normalmente.
A função setNovaSenha esta assim:
<?php
//Conexao com BD
include_once 'conecta.php';
$conn = new conecta();
$email = $_POST["email"];
$novasenha = $_POST["senha"];
$chave = $_POST["chave"];
//Recebe o campo email e trata os campos
$email = preg_replace ('/[^[:alnum:]_.-@]/','',$email);
$chave = preg_replace ('/[^[:alnum:]]/','',$chave);
$novasenha = addslashes($novasenha);
$result= $conn->checkChave($email, $chave);
//Encontrado um usuario com chave chama função nova senha
if($result){
$alterasenha = $conn->setNovaSenha($novasenha, $result);
echo '
Senha alterada com sucesso!
';
} else {
echo '
Erro: Usuario não encontrado
';
}
?>
Eu efetuo a troca da senha e tenho a resposta que foi alterada com sucesso!
Testou para ver se o $result
é um id válido? Porque se você tem , por exemplo, 3 registros e passar o id 4, ele vai retornar true, porque a atualização foi realizada, mas não surtiu efeito porque foi sobre um registro inexistente. Para confirmar que isso ocorre, veja:

Perceba que eu tenho só 5 registros. Vou tentar atualizar o registro 6 (que não existe):

Veja que retorna OK (true), mas informa que nada foi mudado. E de fato:

Obrigado Iohannes!
Acabei descobrindo que ai dar sha1 para gravar nova senha, de alguma forma ele nao grava.
$stmt->bindValue(":novasenha", sha1($novasenha));
Agradeço muito pela ajuda