# ai-builder/2.1.2/admin/pages/reset-password.php

AI Builder – Generate pages, blocks, images &amp; translate with AI, version 2.1.2. 87 lines.

- Page: https://pluginprobe.com/plugins/ai-builder/2.1.2/code/admin/pages/reset-password.php
- Raw: https://pluginprobe.com/plugins/ai-builder/2.1.2/raw/admin/pages/reset-password.php
- Modified: 2025-08-23T08:19:58+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/ai-builder/2.1.2/code/admin/pages/reset-password.php#L10-L20`.

```php
<?php
if (!defined('ABSPATH'))
    exit; // Exit if accessed directly

// Vérifier si l'utilisateur a déjà un token JWT
$jwt_token = get_option('aibui_jwt_token', '');

// Vérifier le nonce pour les paramètres GET
$nonce = isset($_GET['_wpnonce']) ? sanitize_text_field(wp_unslash($_GET['_wpnonce'])) : '';
if (!empty($_GET['token']) || !empty($_GET['email'])) {
    if (!wp_verify_nonce($nonce, 'aibui_reset_password_link')) {
        wp_die('Security check failed');
    }
}

$reset_token = isset($_GET['token']) ? sanitize_text_field(wp_unslash($_GET['token'])) : '';
$email = isset($_GET['email']) ? sanitize_email(wp_unslash($_GET['email'])) : '';

// Déterminer quelle vue afficher
$show_email_form = empty($reset_token);
$show_password_form = !empty($reset_token) && !empty($email);
?>

<div class="ai-reset-container ai-fade-in">
    <?php if ($show_email_form): ?>
        <!-- Formulaire pour entrer l'email -->
        <div class="ai-reset-header">
            <h2>Reset Password</h2>
            <p>Enter your email address to receive a password reset link</p>
        </div>

        <form class="ai-reset-form" id="email-form">
            <?php wp_nonce_field('aibui_reset_email', 'aibui_nonce'); ?>
            <div class="ai-form-group">
                <label for="reset-email">Email Address</label>
                <input type="email" id="reset-email" name="email" required>
            </div>

            <button type="submit" class="ai-submit-btn" id="send-reset-btn">
                <span class="ai-loading" style="display: none;"></span>
                Send Reset Link
            </button>
        </form>

        <div class="ai-back-to-signin">
            <a href="<?php echo esc_url(admin_url('admin.php?page=aibui-assistant')); ?>" class="ai-link">
                ← Back to Sign In
            </a>
        </div>

    <?php elseif ($show_password_form): ?>
        <!-- Formulaire pour le nouveau mot de passe -->
        <div class="ai-reset-header">
            <h2>Set New Password</h2>
            <p>Enter your new password below</p>
        </div>

        <form class="ai-reset-form" id="password-form">
            <?php wp_nonce_field('aibui_reset_password', 'aibui_nonce'); ?>
            <input type="hidden" id="reset-token" name="token" value="<?php echo esc_attr($reset_token); ?>">
            <input type="hidden" id="reset-email" name="email" value="<?php echo esc_attr($email); ?>">

            <div class="ai-form-group">
                <label for="new-password">New Password</label>
                <input type="password" id="new-password" name="password" required minlength="8">
            </div>

            <div class="ai-form-group">
                <label for="confirm-new-password">Confirm New Password</label>
                <input type="password" id="confirm-new-password" name="confirm_password" required minlength="8">
            </div>

            <button type="submit" class="ai-submit-btn" id="reset-password-btn">
                <span class="ai-loading" style="display: none;"></span>
                Reset Password
            </button>
        </form>

        <div class="ai-back-to-signin">
            <a href="<?php echo esc_url(admin_url('admin.php?page=aibui-assistant')); ?>" class="ai-link">
                ← Back to Sign In
            </a>
        </div>
    <?php endif; ?>

    <div id="message-container"></div>
</div>
```
