UPDATE: I solved the problem myself and the answer is below. Carry on...
PHP ve MySQL kullanarak hesabınızı güncellemek için bir form var. Göndermek üzerinde, yeni bir kullanıcı () nesne için $ _POST tüm değişkenler atar ve sonra SQL UPDATE sorgusu çalıştıran kullanıcı nesne üzerinde update () yöntemini yapar.
Ben önceden doldurmak değil parola için DIŞINDA kullanıcının tüm bilgilere formu açıkça benimsenmiş. Onların şifresini değiştirmek istediğiniz sürece boş.
Ben bu adrese bir şey olmadıysa alan teslim boş olduğundan, her hesap güncelleme, için "" kişinin şifresini sıfırlamak olacaktır. Bu kötü olurdu. Peki bunu düzeltmek için, ben bu kodu ekledi:
if(empty($_POST['password']) || is_null($_POST['password']) || !isset($_POST['password']) || $_POST['password'] == "") {
$user->hashed_password = $edituser->hashed_password;
} else {
$password = $database->escape_value($_POST['password']);
$user->hashed_password = md5($password);
}
$ _POST Parola değeri boş ise temelde, mevcut kullanıcının parolasını ($ edituser gerekirse geçerli kullanıcının bilgileri kaydetmek için önceden oluşturulan bir nesnedir) için şifre ayarlayabilirsiniz. İnan bana, sadece güvenli olması için "" boş çalışması gerekir çünkü ben sadece () (boş) ise ilk denedim, fakat olmadı, bu yüzden, isset null'unu eklenmiş, ve hatta! ==.
Ne olursa olsun ben ne, şifre boş sıfırlanır. Neden?