Bonjour,
Voila je rencontre un petit problème avec mon code.
Bonjour à tous !
J'ai suivi ce cours : https://openclassrooms.com/courses/votre-site-php-presque-complet-architecture-mvc-et-bonnes-pratiques
Je bloque au niveau de la connexion, mon formulaire ne s'affiche pas !
J'ai essayer de recoder tout le truc, ca ne marche pas non, sûrement que l'un d'entre vous aurais déja rencontré ce problème.
Je vous fait parvenir les pages liés à ce soucis :
~/modules/membres/connexion.php
<?php
// Vérification des droits d'accès de la page
if (utilisateur_est_connecte()) {
// On affiche la page d'erreur comme quoi l'utilisateur est déjà connecté
include CHEMIN_VUE.'erreur_deja_connecte.php';
} else {
// Ne pas oublier d'inclure la librairie Form
include CHEMIN_LIB.'form.php';
// "formulaire_connexion" est l'ID unique du formulaire
$form_connexion = new Form('formulaire_connexion');
$form_connexion->method('POST');
$form_connexion->add('Text', 'nom_utilisateur')
->label("Votre nom d'utilisateur");
$form_connexion->add('Password', 'mot_de_passe')
->label("Votre mot de passe");
// Ajoutons d'abord une case à cocher au formulaire de connexion
$form_connexion->add('Checkbox', 'connexion_auto')
->label("Connexion automatique");
// Affichage du bouton de soumission
$form_connexion->add('Submit', 'submit')
->value("Connectez-moi !");
// Pré-remplissage avec les valeurs précédemment entrées (s'il y en a)
$form_connexion->bound($_POST);
// Création d'un tableau des erreurs
$erreurs_connexion = array();
// Validation des champs suivant les règles
if ($form_connexion->is_valid($_POST)) {
list($nom_utilisateur, $mot_de_passe) = $form_connexion->get_cleaned_data('nom_utilisateur', 'mot_de_passe');
// On veut utiliser le modèle des membres (~/modeles/membres.php)
include CHEMIN_MODELE.'membres.php';
// combinaison_connexion_valide() est définit dans ~/modeles/membres.php
$id_utilisateur = combinaison_connexion_valide($nom_utilisateur, sha1($mot_de_passe));
// Si les identifiants sont valides
if (false !== $id_utilisateur) {
$infos_utilisateur = lire_infos_utilisateur($id_utilisateur);
// On enregistre les informations dans la session
$_SESSION['id'] = $id_utilisateur;
$_SESSION['pseudo'] = $nom_utilisateur;
$_SESSION['avatar'] = $infos_utilisateur['avatar'];
$_SESSION['email'] = $infos_utilisateur['adresse_email'];
// Mise en place des cookies de connexion automatique
if (false != $form_connexion->get_cleaned_data('connexion_auto'))
{
$navigateur = (!empty($_SERVER['HTTP_USER_AGENT'])) ?
$_SERVER['HTTP_USER_AGENT'] : '';
$hash_cookie =
sha1('aaa'.$nom_utilisateur.'bbb'.$mot_de_passe.'ccc'.$navigateur.'ddd');
setcookie( 'id', $_SESSION['id'], strtotime("+1 year"), '/');
setcookie('connexion_auto', $hash_cookie, strtotime("+1 year"), '/');
}
// Affichage de la confirmation de la connexion
include CHEMIN_VUE.'connexion_ok.php';
} else {
$erreurs_connexion[] = "Couple nom d'utilisateur / mot de passe
inexistant.";
// On réaffiche le formulaire de connexion
include CHEMIN_VUE.'formulaire_connexion.php';
}
}
}
~/modules/membres/view/formulaire_connexion.php
<h2>Connexion au site</h2>
<p>Si vous n'êtes pas encore inscrit, vous pouvez le faire en <a
href="index.php?module=membres&action=inscription">cliquant sur
ce lien</a>.</p>
<?php
if (!empty($erreurs_connexion)) {
echo '<ul>'."\n";
foreach($erreurs_connexion as $e) {
echo ' <li>'.$e.'</li>'."\n";
}
echo '</ul>';
}
echo $form_connexion;
On dirait que c'est en rapport avec ce code :
include CHEMIN_VUE.'formulaire_connexion.php';
config.php
<?php
// Identifiants pour la base de données. Nécessaires a PDO2.
define('SQL_DSN', 'mysql:dbname=openthebooks;host=localhost');
define('SQL_USERNAME', 'root');
define('SQL_PASSWORD', '');
// Chemins à utiliser pour accéder aux vues/modeles/librairies
$module = empty($module) ? !empty($_GET['module']) ? $_GET['module'] : 'index' : $module;
define('CHEMIN_VUE', 'Module/'.$module.'/View/');
define('CHEMIN_MODELE', 'Model/');
define('CHEMIN_LIB', 'Libs/');
// Largeur et hauteur défini à l'avatar
define('AVATAR_LARGEUR_MAXI', 100);
define('AVATAR_HAUTEUR_MAXI', 100);
Je vous remercie de votre aide,
merci d'avance.
Guillaume