web-dev-qa-db-fra.com

Problème d'inscription d'utilisateur dans WordPress

J'essaie de créer un formulaire d'inscription d'utilisateur dans la barre latérale de mon site. Les utilisateurs peuvent s'inscrire, mais au lieu de recevoir un message de réussite, WordPress les redirige généralement vers une page 404.

Voici mon formulaire:

<form id="joinmaillist"   method='post'>
    <table>
        <tr>
            <td>Name</td>
            <td><input type="text" placeholder="Your name here.." name="name" title="Please enter your name" required/></td>
        </tr>
        <tr>
            <td>Email</td>
            <td><input type="email" name="email" placeholder="Your email here.." required/></td>
        </tr>
        <tr>
            <td></td>
            <td style="text-align:right"><input class="submitmail" type="submit" value="Join!" name="joinm"/></td>
        </tr>
    </table>
</form>

et ci-dessous se trouve mon code PHP:

<?php
if (isset($_POST['joinm'])){
    $user_name=$_POST['name'];
    $email =$_POST['email'];


$user_id=  username_exists($user_name);

    if (!$user_id){
        $random_pass = wp_generate_password(12, false);
        $user_id=wp_create_user($user_name, $password, $email);
        header('Location:' . $_SERVER['REQUEST_URI']);
    }else{

    }
}
4

Regardez le code dans wp-login.php (ligne 481 et suivantes). Là, vous pouvez voir comment fonctionne l'enregistrement.

Les noms de votre formulaire - email, name - sont probablement remplacés par WordPress. Utilisez toujours des noms préfixés dans les formulaires pour éviter les collisions, par exemple: ma_email et ma_name.

Préparez les données entrantes . Ne vous contentez pas d'écrire quoi que ce soit que quelqu'un vous envoie dans votre base de données. Cela peut être dangereux.

Oh, et bienvenue sur WordPress Stack Exchange! :)

1
fuxia