connect_error) { throw new Exception('فشل الاتصال بقاعدة البيانات'); } // التحقق من صلاحية الرمز $stmt = $conn->prepare("SELECT user_id FROM password_resets WHERE token = ? AND expiry > NOW() AND used = 0"); $stmt->bind_param("s", $token); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows === 0) { throw new Exception('رابط إعادة تعيين كلمة المرور غير صالح أو منتهي الصلاحية'); } $reset = $result->fetch_assoc(); // تحديث كلمة المرور $hashed_password = Security::hashPassword($password); $stmt = $conn->prepare("UPDATE users SET password = ? WHERE id = ?"); $stmt->bind_param("si", $hashed_password, $reset['user_id']); if (!$stmt->execute()) { throw new Exception('حدث خطأ أثناء تحديث كلمة المرور'); } // تعليم الرمز كمستخدم $stmt = $conn->prepare("UPDATE password_resets SET used = 1 WHERE token = ?"); $stmt->bind_param("s", $token); $stmt->execute(); $success = 'تم تحديث كلمة المرور بنجاح! يمكنك الآن تسجيل الدخول باستخدام كلمة المرور الجديدة.'; } catch (Exception $e) { $error = $e->getMessage(); } } ?> إعادة تعيين كلمة المرور - ShubraVeil

إعادة تعيين كلمة المرور

يجب أن تحتوي كلمة المرور على 8 أحرف على الأقل
كلمتا المرور غير متطابقتين