Problème d'include
Résolu
Airox
Messages postés
146
Date d'inscription
Statut
Membre
Dernière intervention
-
Airox Messages postés 146 Date d'inscription Statut Membre Dernière intervention -
Airox Messages postés 146 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous, je suis en train d'apprendre le PHP pour un futur projet scolaire mais voilà un petit problème (parmi tant d'autres) me tracasse énormément, j'ai une erreur avec une include_once mais je n'arrive pas à la résoudre. J'utilise un design MVC qui est conseillé dans le cour de Mathieu Nebra.
Voilà ma page d'inscription:
Le contrôleur:
Mon modèle:
La Vue:
Et l'erreur ce produit seulement quand j'envoie le formulaire:

Et enfin je vous donne l'organisation des fichiers:

Merci d'avance. :)
Voilà ma page d'inscription:
<?php //Connection base de donnée include_once('modele/connexion_bdd.php'); if (!isset($_GET['section']) OR $_GET['section'] == 'inscription') { include_once('controleur/inscription/inscription.php'); }
Le contrôleur:
<?php // Vérification de la validité des informations // Verification du pseudo if(isset($_POST['pseudo'])) { $_POST['pseudo'] = htmlspecialchars($_POST['pseudo']); // Contre XXS { if (preg_match("#^[a-zA-Z0-9._-]{5,25}$#", $_POST['pseudo'])) { // C'est bon } else { $erreur = 'Votre pseudo n\'est pas valide '; } } } // Verification MDP if (isset($_POST['password'], $_POST['password_confirmation']) AND $_POST['password'] != $_POST['password_confirmation']) { $erreur = 'Les deux mots de passes ne correspondent pas.'; } // Verification du mail if(isset($_POST['mail'])) { $_POST['mail'] = htmlspecialchars($_POST['mail']); // Contre XXS { if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#",$_POST['mail'])) { // C'est bon } else { $erreur = 'Votre email n\'est pas valide '; } } } // On verifie la longueur du mot de passe if(isset($_POST['password'])) { if (preg_match("#[.]{6,}#",$_POST['password'])) { // C'est bon } else { $erreur = 'Votre mot de passe doit contenir au minimum 6 caractères '; } } // On verigie qu'il n'y ai pas d'erreur et que les mdp sont égaux if ((isset($_POST['pseudo'], $_POST['email'], $_POST['password'], $_POST['password_confirmation'])) AND $_POST['password'] == $_POST['password_confirmation'] AND empty($erreur)) { // Hachage du mot de passe $pass_hache = sha1($_POST['password']); // Envoi à la base de donnée include_once('modele/inscription/inscription.php'); $validation = ' Bravo' . $_POST['pseudo']. ',ton inscription est un succès'; } if (isset($erreur)) { echo $erreur; } // On affiche la page include_once('vue/inscription/inscription.php'); ?>
Mon modèle:
<?php $req = $bdd->prepare('INSERT INTO membres(pseudo, password, mail, date_inscription) VALUES(:pseudo, :password, :mail, CURDATE())'); $req->execute(array( 'pseudo' => $pseudo, 'password' => $pass_hache, 'mail' => $mail));
La Vue:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> </head> <body> <?php if (isset($erreur)) { ?> <p> <strong><?php echo $erreur; ?></strong> </p> <br> <br> <?php } ?> <form action="controleur/inscription/inscription.php" method="post"> <p> <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br /> <label for="password">Password</label> : <input type="password" name="pass" id="password" /><br /> <label for="password">Vérification Password</label> : <input type="password" name="password_confirmation" id="password_confirmation" /><br /> <label for="mail">Email</label> : <input type="email" name="mail" id="mail" /><br /> <input type="submit" value="Envoyer" /> </p> </form> </body> </html>
Et l'erreur ce produit seulement quand j'envoie le formulaire:

Et enfin je vous donne l'organisation des fichiers:

Merci d'avance. :)
A voir également:
- Erreurs #include détectées. mettez à jour includepath. les tildes sont désactivés pour cette unité de traduction
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Google traduction photo - Guide
- Mettre a jour chromecast - Accueil - Guide TV et vidéo
- Comment mettre à jour ses pilotes - Guide
au lieu de:
Comme ça il suit le les include_once et tout ce passe bien. En tout cas merci de ton commentaire :)
Pour ce qui est de l'écriture du code ... les blocs IF/ELSE .. s'écrivent de préférence comme ceci :
=> voir les normes PSR http://blog.ice-dev.com/post/2013/11/17/norme-psr-1-et-psr-2
Mettre des IF ELSE ... quand seul le ELSE contient quelque-chose ne sert strictement à rien et alourdit ton code !
Par exemple :
peut etre écrit plus proprement :
voir même... en écriture TERNAIRE :
On récupère proprement les variables AVANT de les utiliser
par exemple .... au début de ton script .. tu écris :
puis dans le reste de ton code... tu utilises directement ces variables :