Problème de redirection après validation formulaire d'inscription.

Eléphanteau du PHP | 11 Messages

04 avr. 2023, 13:36

Bonjour à tous,

Je rencontre un problème pour rediriger vers une page après avoir valider un formulaire d'inscription: Erreur 404...

Je coince déjà depuis quelques jours...... J'arrive à créer le nouvel utilisateur, j'arrive à rediriger, mais pas les deux en même temps.... #-o

Je vous remercie d'avacne pour votre aide.

A bientôt

function registration_form_func() { 
   
    if(!empty($_POST)){

        extract($_POST);

        if(isset($_POST['afs_form_subscription'])) {
            
            clean_meta_form();
        }
    }

    if(is_user_logged_in()) {

        echo '
        
        <p>Vous êtes déjà connecté</p>
        <a href="https://....">accéder à mon garage</a>';

    }
    else {

        echo'

        <form method="post" id="register-form">

            <div class="afs-form-item">
                <label>Nom d\'utilisateur*</label>
                <input type="text" required name="user_name">
            </div>

            <div class="afs-form-item">
                <label>E-mail*</label>
                <input type="text" required name="user_mail">
            </div>

            <div class="afs-form-item">
                <label>Mot de passe*</label>
                <input type="password" required name="user_password">
            </div>

            <div class="afs-form-item">
                <label>Nom de votre entreprise*</label>
                <input type="text" required name="firm_name">
            </div>
            
            <div class="afs-form-item">
                <label>Adresse entreprise*</label>
                <input type="text" name="firm_address">
            </div>

            <div class="afs-form-item">
                <label>NPA*</label>
                <input type="number" name="firm_npa">
                <label>Ville*</label>
                <input type="text" name="firm_city">
            </div>

            <div class="afs-form-item">
                <label>Téléphone*</label>
                <input type="tel" name="firm_tel_number">
            </div>

            <div class="afs-form-item">
                <label>Domaine de l\'entreprise*</label>
                <input type="text" name="firm_domain">
            </div>

            <div class="afs-form-item">
                <label>No registre du commerce*</label>
                <input type="text" name="firm_comm_number">
            </div>

            <div class="afs-form-item">
                <label>Nom*</label>
                <input type="text" name="contact_last_name">
                <label>Prénom*</label>
                <input type="text" name="contact_first_name">
            </div>
            
            <div class="afs-form-item">
                <label>Adresse*</label>
                <input type="text" name="contact_address">
            </div>

            <div class="afs-form-item">
                <label>NPA*</label>
                <input type="number" name="contact_npa">
                <label>Ville*</label>
                <input type="text" name="contact_city">
            </div>   
            
            <div class="afs-form-item">
                <label>E-mail*</label>
                <input type="text" name="contact_mail">
            </div>

            <div class="afs-form-item">
                <label>Téléphone*</label>
                <input type="tel" name="contact_tel_number">
            </div>

            <input type="submit" name="afs_form_subscription" value="Envoyer" onClick="myFunction()">'; ?>

            <script>

            function redirection() {
                
                document.getElementById("form").onsubmit = function()
                {
                    windows.location.href = "https:/..../";
                }
                
            }

            </script>
            
            <?php 
            
        echo '</form>';   
    }
        
}
add_shortcode('registration_form', 'registration_form_func');

function clean_meta_form()
{   
    $data = array (
        'user_login' => $_POST["user_name"],
        'user_email' => $_POST["user_mail"],
        'user_pass' => $_POST["user_password"],     
    );

    $user_id = wp_insert_user( $data );
 
    add_user_meta($user_id, 'vehica_entreprise', $_POST['firm_name']);
    
}


Mammouth du PHP | 2703 Messages

04 avr. 2023, 14:02

windows.location.href = "https:/..../";
cela va appeler l'url en method get, sans passer le contenu du formulaire.
il faut laisser le fonctionnement normal du formulaire, et faire le redirection en php, après le traitement effectué.

Eléphanteau du PHP | 11 Messages

04 avr. 2023, 15:22

Hello Mammouth du PHP,

Merci pour ta réponse rapide.

Alors j'ai effectivement réussi à mettre en place la redirection, par contre du coup les données récoltées ne s'enregistre pas dans la bdd.... :-(

Eléphanteau du PHP | 11 Messages

04 avr. 2023, 15:26

Le nouveau code:

Code : Tout sélectionner

function registration_form_func() { if(is_user_logged_in()) { echo ' <p>Vous êtes déjà connecté</p> <a href="https:....>accéder à mon garage</a>'; } else { echo' <form method="post"> <div class="afs-form-item"> <label>Nom d\'utilisateur*</label> <input type="text" required name="user_name"> </div> <div class="afs-form-item"> <label>E-mail*</label> <input type="text" required name="user_mail"> </div> <div class="afs-form-item"> <label>Mot de passe*</label> <input type="password" required name="user_password"> </div> <div class="afs-form-item"> <label>Nom de votre entreprise*</label> <input type="text" required name="firm_name"> </div> <div class="afs-form-item"> <label>Adresse entreprise*</label> <input type="text" name="firm_address"> </div> <div class="afs-form-item"> <label>NPA*</label> <input type="number" name="firm_npa"> <label>Ville*</label> <input type="text" name="firm_city"> </div> <div class="afs-form-item"> <label>Téléphone*</label> <input type="tel" name="firm_tel_number"> </div> <div class="afs-form-item"> <label>Domaine de l\'entreprise*</label> <input type="text" name="firm_domain"> </div> <div class="afs-form-item"> <label>No registre du commerce*</label> <input type="text" name="firm_comm_number"> </div> <div class="afs-form-item"> <label>Nom*</label> <input type="text" name="contact_last_name"> <label>Prénom*</label> <input type="text" name="contact_first_name"> </div> <div class="afs-form-item"> <label>Adresse*</label> <input type="text" name="contact_address"> </div> <div class="afs-form-item"> <label>NPA*</label> <input type="number" name="contact_npa"> <label>Ville*</label> <input type="text" name="contact_city"> </div> <div class="afs-form-item"> <label>E-mail*</label> <input type="text" name="contact_mail"> </div> <div class="afs-form-item"> <label>Téléphone*</label> <input type="tel" name="contact_tel_number"> </div> <input type="submit" name="afs_form_subscription" value="Envoyer">'; echo '</form>'; if(!empty($_POST)) { clean_meta_form(); echo'<meta http-equiv="Refresh" content="0;URL=https://...">'; } } } add_shortcode('registration_form', 'registration_form_func'); function clean_meta_form() { $data = array ( 'user_login' => $_POST["user_name"], 'user_email' => $_POST["user_mail"], 'user_pass' => $_POST["user_password"], ); $user_id = wp_insert_user( $data ); add_user_meta($user_id, 'vehica_entreprise', $_POST['firm_name']); }