Formulaire d'inscription

Anonymous95340 Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Dans le cadre de mon BTS SIO je suis entrain de creer un site de reservation de formation. J'ai crée le formulaire d'inscription mais je suis bloquer au niveau des gestions des erreurs car quand je remplis les champs de mon formulaire d'inscription celui si affiche toujours l'erreur " veuillez saisir tous les champs ". Je voudrais que a la fin de l'inscription de l'utilisateur celui ci soit directement rediriger vers son profil.

Merci d'avance pour votre aide.

Voici mon code
<?php
session_start();
require 'config/database.php';
require 'includes/fonctions.php';
//Si le fotmulaire à été soumis
if(isset($_POST['Inscription'])){
    
    //Si tous les champs ont été remplis
    if(not_empty(['login','mdp','nom','prenom','adresse','email','codePostal','tel','fonction','association'])){
        
        $errors = []; //Tableau contenant l'ensemble des erreurs
        
        extract($_POST); 
        
        if(mb_strlen($login)< 3){
            $errors[$login] = 'Login trop court (minimun plus de 5 caracteres)';
        }
        
        $mdp = sha1($_POST['mdp']);
        
        //Permet de vérifier si c'est une adresse mail valide
        if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
            $errors[$email] = 'adresse mail invalide';
        }
        
        //Mot de passe inferieur a 6 caracteres
        if(mb_strlen($mdp)< 6){
            $errors[$mdp] = 'mot de passe trop court! (minimun 6 caracteres)';
        }
        
        //si le login est deja utilisé
        if(is_already_in_use('login', $login,'personnelassociatif')){
            $errors[$login] ='Login déja utilisé';
        }
        
        if(is_already_in_use('email', $email,'personnelassociatif')){
            $errors[$email] ='email déja utilisé';
        }
        if(mb_strlen($telephone)< 10){
            $errors[$telephone] = 'Le numero de télephone est trop court! (Numero a 10 chiffres)';
        }
        
        if(mb_strlen($cp)< 5){
            $errors[$cp] = 'Code postal inconnu';
        }
        
        if(count($errors) == 0){
            sauvegarde_input();
            //Envoi d'un mail d'activation
            
            //Informer l'utilisateur pour qu'il verifie sa boite mail
            
            //Redirection vers sa page de profil
       }
        
    }else{
        //$errors[]= 'Veuillez remplir tous les champs !';
        sauvegarde_input();
    }
}


?>



<?php require ('views/inscriptionView.php'); ?>



NB : Pour poster du code sur le forum.. merci d'utiliser la coloration syntaxique (les balises de code).
Explications disponibles ici : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code



A voir également:

6 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Oh le joli copier/coller d'un code existant ...
https://openclassrooms.com/forum/sujet/if-not-empty-ou-pas

Que contient la fonction not_empty ?
(voir le fichier require 'includes/fonctions.php'; )


Ensuite pour ta seconde question : redirection, il suffit d'utiliser la fonction php :
header('location : url_ou_rediriger');
exit();



1
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
Salut,

pour communiquer ton code, utilise les balises prévues à cet effet, ça sera plus simple pour tout le monde ;)

Le problème vient certainement de ta fonction not_empty, que tu ne montres pas ici.
0
Anonymous95340 Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Désole je savais pas comment faire lol voici mon code qui est dans le fichier fonctions.php
<?php
//Verifie si on n'a donner des éléments
if(!function_exists('not_empty')){
        function not_empty($fields = []){
            if(count($fields)!= 0){
                //La boucle permet de vérifier si chaque element du tableau n'est pas vide
            foreach ($fields as $field){
                    if(empty($_POST[$field]) || trim($_POST[$field])==FALSE){
                        return FALSE;
                    }
                }
                return TRUE;
           }
    } 
}

//Si le nom est deja existant
if(!function_exists('is_already_in_use')){
    function is_already_in_use($field,$value, $personnelassociatif){
        global $db;
        
        $q = $db->prepare('SELECT idpersonne FROM $personnelassociatif WHERE BY $field = ? ');
        $q->execute([$value]);
        
        $count = $q->rowCount();
        
        $q->closeCursor();
        
        return $count;
    }
}

if(!function_exists('sauvegarde_input')){
    function sauvegarde_input(){
        foreach ($_POST as $key => $value){
            if(strpos($key,'password' ===FALSE)){
                $_SESSION['input'][$key] = $value;
            }
        }
    }
}

if(!function_exists('get_input')){
    function get_input($key){
           return !empty ($_SESSION['input'][$key])
                ? $_SESSION['input'][$key]
             : null;
        }  
    }



EDIT : Ajout du LANGAGE dans les balises de code

0
Anonymous95340 Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   1
 
Bonjour,

Oui je réutilise le code pour un projet en BTS car il correspond ^^.
not_empty contient:

//Verifie si on n'a donner des éléments
if(!function_exists('not_empty')){
function not_empty($fields = []){
if(count($fields)!= 0){
//La boucle permet de vérifier si chaque element du tableau n'est pas vide
foreach ($fields as $field){
if(empty($_POST[$field]) || trim($_POST[$field])==FALSE){
return FALSE;
}
}
return TRUE;
}
}
}


Merci beaucoup .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Anonymous95340 Messages postés 114 Date d'inscription   Statut Membre Dernière intervention   1
 
up
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Que contient ton formulaire html ?
Peux tu nous le montrer ?

Ensuite, peux tu ajouter, dans ton code php, avant le if(not_empty...) la ligne de code suivante et nous dire ce que ça t'affiche ?
print_r($_POST);



0