fell 0 Denunciar post Postado Março 21, 2011 ola galera é o seguinte, eu tenho uma função que faz o check a verificar se um utilizador existe na base de dados, aí se existe insere o hash na database. Eu chamo isso a seguir num if e valido se a funcção check foi efectuada e envio o email acontece que tou recebendo o erro Fatal error: Call to a member function prepare() on a non-object in C:\Users\fel\VertrigoServ\www\login\home\recover.php on line 28 <? function check($sql, $db, $email, $pwdHasher, $hash, $userExists ) { if(!empty($_POST['email']) && validateEmail($email)) { $email = $_POST["email"]; if ($sql = $db->prepare("select email from users where email=?")) { // [b]Fatal error[/b]: Call to a member function prepare() on a non-object in [b]C:\Users\fel\VertrigoServ\www\login\home\recover.php[/b] on line [b]28[/b] $sql->bind_param('s', $email); $sql->execute(); $sql->bind_result($email); while ($sql->fetch()) { $pwdHasher = new PasswordHash(8, FALSE); $hash = $pwdHasher->HashPassword($userExists["email"]); $sendPass=$hash; ($sql = $db->prepare('insert into password_reset (code) values (?)')); $sql->bind_param('s', $hash); $sql->execute(); $sql->fetch(); } } } } if (check($sql, $email, $email,$pwdHasher, $hash, $userExists )) { ($sql = $db->prepare("select userid from password_reset where code=?")); $sql->bind_param('s', $hash); $sql->execute(); $sql->bind_result($hash); if ($sql->fetch()) { echo $hash; }; $pwrurl = "www.yoursite.com/reset_password.php?userid=" .$hash . "&code =" . $sendPass; $mailbody = "Dear user,<br><br>If this e-mail does not apply to you please ignore it. It appears that you have requested a password reset at our website www.yoursitehere.com<br> To reset your password, please click the link below. If you cannot click it, please paste it into your web browser's address bar.<br> <a href='$pwrurl'>$pwrurl</a> <br> <br> Thanks,\nThe Administration"; $mail->MsgHTML($mailbody); $mail->AddAddress($email,"Membro"); $mail->IsHTML(true); if(!$mail->Send()) { echo "Deu erro: " . $mail->ErrorInfo; } else { echo "Enviado com sucesso"; } $sql->close(); $db->close(); } ?> alguêm pode dar uma olhada no código sff? fiquem bem EDIT: o problem era a falta de um argumento ($db) Compartilhar este post Link para o post Compartilhar em outros sites