Formulaire d'inscription

Fermé
Anonymous95340 Messages postés 114 Date d'inscription lundi 5 octobre 2015 Statut Membre Dernière intervention 7 décembre 2020 - Modifié le 6 avril 2017 à 16:16
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 7 avril 2017 à 01:00
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 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
6 avril 2017 à 16:20
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 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 565
6 avril 2017 à 15:44
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 lundi 5 octobre 2015 Statut Membre Dernière intervention 7 décembre 2020 1
Modifié le 6 avril 2017 à 16:16
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 lundi 5 octobre 2015 Statut Membre Dernière intervention 7 décembre 2020 1
Modifié le 6 avril 2017 à 16:43
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 lundi 5 octobre 2015 Statut Membre Dernière intervention 7 décembre 2020 1
6 avril 2017 à 21:04
up
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
7 avril 2017 à 01:00
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