⊗ppPmAuPCh 429 of 447 menu

Alteração de senha em PHP

A alteração da senha não pode ser feita simplesmente na conta pessoal. O problema é que o usuário pode deixar o computador desatendido (por exemplo, no escritório), estando logado em nosso site. Nesse caso, se permitirmos alterar a senha simplesmente, um invasor mal-intencionado poderá alterar a senha para outra, o que, é claro, é muito ruim.

É necessário fazer com que a alteração da senha para uma nova exija a inserção da senha antiga.

Vamos implementar a página changePassword.php, ao acessar a qual o usuário verá um formulário com duas entradas - na primeira, ele deverá inserir sua senha antiga, e na segunda - a nova:

<form action="" method="POST"> <input name="old_password"> <input name="new_password"> <input type="submit" name="submit"> </form>

Ao clicar no botão de envio, devemos fazer o seguinte:

<?php $id = $_SESSION['id']; // id do usuário da sessão $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // senha com hash do BD $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Verificamos a correspondência do hash do banco com a senha antiga inserida if (password_verify($oldPassword, $hash)) { $newPasswordHash = password_hash($newPassword, PASSWORD_DEFAULT); $query = "UPDATE users SET password='$newPasswordHash' WHERE id='$id'"; mysqli_query($link, $query); } else { // a senha antiga foi inserida incorretamente, exiba uma mensagem } ?>

Implemente a alteração de senha descrita.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar