Partage
  • Partager sur Facebook
  • Partager sur Twitter

[TUTO] MVC, bonnes pratiques et site complet !

Espace membres - À venir : livre d'or, news, etc.

16 mai 2016 à 22:10:32

Bonsoir à tous!

Je suis actuellement ce cours. Je bloque à un niveau. Jai beau relire, chercher dans les messages, j'ai l'impression d'être le seul a ne pas savoir. Donc voilà, mon problème se situe au niveau du code du contrôleur à la partie inscription. (https://openclassrooms.com/courses/votre-site-php-presque-complet-architecture-mvc-et-bonnes-pratiques/la-base-l-espace-membre#/id/r-1326618), je ne sais pas où placer ce code tout simplement! Et pareil dans la suite. Un nouveau fichier php? Si oui dans quel dossier? Le fichier ~/modules/membres/inscription.php? Help!! 

Ps: C'est la première fois que je poste sur un forum. Donc je ne sais pas si j'ai fait une erreur de poster ici. Merci!

  • Partager sur Facebook
  • Partager sur Twitter
Chab
17 mai 2016 à 15:25:13

Salut Charbel JI je pense bien que toi même tu donnes la réponse à ta question;

essaye de faire comme tu dis (mettre le code relatif a l'inscription dans un fichier inscription.php) et tu vois comment ça se comporte.

ça devrait marché en tout cas si t'as bien suivis le cours

  • Partager sur Facebook
  • Partager sur Twitter
Get rich or die trying
18 mai 2016 à 0:52:31

Merci pour la réponse! Jai fini par y arriver. Jai mis le code dans le même fichier inscription.php. Il y avait avait un détail dans mon code à revoir!
  • Partager sur Facebook
  • Partager sur Twitter
Chab
31 mai 2016 à 8:46:26

Bonjour,

il y a un truc que j'ai pas compris à ce tuto ou alors y'a un bug:

else {

	// Changement de nom de variable (plus lisible)
	$erreur =& $id_utilisateur;
	
	// On vérifie que l'erreur concerne bien un doublon
	if (23000 == $erreur[0]) { // Le code d'erreur 23000 siginife "doublon" dans le standard ANSI SQL
	
		preg_match("`Duplicate entry '(.+)' for key \d+`is", $erreur[2], $valeur_probleme);
		$valeur_probleme = $valeur_probleme[1];
		
		if ($nom_utilisateur == $valeur_probleme) {
		
			$erreurs_inscription[] = "Ce nom d'utilisateur est déjà utilisé.";
		
		} else if ($adresse_email == $valeur_probleme) {
		
			$erreurs_inscription[] = "Cette adresse e-mail est déjà utilisée.";
		
		} else {
		
			$erreurs_inscription[] = "Erreur ajout SQL : doublon non identifié présent dans la base de données.";
		}
	
	} else {
	
		$erreurs_inscription[] = sprintf("Erreur ajout SQL : cas non traité (SQLSTATE = %d).", $erreur[0]);
	}

Dans le preg_match, le /d+ , ça ne serait pas plutôt (/D+)

  • Partager sur Facebook
  • Partager sur Twitter
12 octobre 2016 à 23:50:44

Bonjour,

Tout d'abord très beau projet, merci d'ailleurs car cela va m'aider à apprendre, cependant j'ai des erreurs 500 sur inscription.php et connexion.php.

Et malgré que les erreurs de mes autres sites s'affichent, celles ci non.

Est-ce quelqu'un aurait une version de ce tuto déjà codé pour que je compare page par page ce que j'ai fais de mal ?

Merci d'avance.

Bien à vous.

  • Partager sur Facebook
  • Partager sur Twitter
22 octobre 2016 à 18:02:26

Hello,

S'il y a une erreur 500 c'est que le code a généré une erreur quelque part et donc que tu dois pouvoir la récupérer (logs, ...)

On peut pas faire le boulot à ta place surtout que tu ne montre aucuns bout de code!

  • Partager sur Facebook
  • Partager sur Twitter
12 décembre 2016 à 15:23:24

Bonjour à tous ! 

Tout d'abord, merci Savageman pour la réalisation de ce tuto !

J'ai cependant un petit problème avec l'ajout d'un avatar, lorsque je clic sur "ajouter un avatar", je ne peux pas sélectionner les fichiers jpg, png ou gif. J'ai pourtant précisé les formats pris en compte lors de la création de mon formulaire.

Si quelqu'un peut m'aider à résoudre ce problème...

Voici le code de mon fichier inscription.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_GLOBALE.'erreur_deja_connecte.php';

} else {

	// On inclue la librairie Form
	include CHEMIN_LIB.'form.php';

	$form_inscription = new Form('formulaire_inscription');

	$form_inscription->method('POST');

	$form_inscription->add('Text', 'nom_utilisateur')
					 ->label("Votre nom d'utilisateur");

	$form_inscription->add('Password', 'mdp')
					 ->label("Votre mot de passe");

	$form_inscription->add('Password', 'mdp_verif')
		 			 ->label("Vérification du mot de passe");

	$form_inscription->add('Email', 'adresse_email')
					 ->label("Votre adresse email");

	$form_inscription->add('File', 'avatar')
	                 ->filter_extensions('jpg', 'png', 'gif')
	                 ->max_size(8192)
	                 ->label("Votre avatar (8kb max)(facultatif)")
	                 ->Required(false);

	$form_inscription->add('Submit', 'submit')
	    			 ->label("S'inscrire");

	$form_inscription->bound($_POST);
	

	include 'inscriptionController.php';
}
include CHEMIN_VUE.'formulaire_inscription.php';	



 EDIT : C'est bon problème résolu (c'était une mauvaise configuration de Chrome)

-
Edité par BanjoSf4 13 décembre 2016 à 10:59:03

  • Partager sur Facebook
  • Partager sur Twitter
13 janvier 2017 à 22:24:45

Bonjour à tous ! 

Avant tout, merci Savageman pour la réalisation de ce tuto !

J'ai suivi le tuto en entier mais je rencontre un probleme lors des test sous WAMP, j'ai l'impression que les include ne sont pas appreciés, j'ai des problèmes recurrents de ce type : Warning: include(/controller/modules/client/traitement_inscription.php): failed to open stream: No such file or directory in C:\wamp\www\permis_fute\modules\client\inscription.php on line 54

Je ne comprends pas vraiment car après relecture tous les fichiers semblent être au bon endroit et les appels fonctionnels. Voici la page de mon code d'inscription située ici

monprojet/modules/membres/inscription.php

faisant appel à la vue située ici

monprojet/modules/vues/vue_inscription.php

Voila le code de mon inscription : 


<?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_GLOBALE.'erreur_deja_connecte.php';        
} 
else 
{
        //Ne pas oublier d'inclure la librarie Form
        include CHEMIN_LIB.'form.php';

        // "formulaire_inscription" est l'ID unique du formulaire
        $form_inscription = new Form('formulaire_inscription');

        $form_inscription->method('POST');

        $form_inscription->add('Text', 'nom_utilisateurclient')
                         ->label("Votre nom d'utilisateur");

        $form_inscription->add('Text', 'nom_client')
                         ->label("Votre nom");

        $form_inscription->add('Text', 'prenom_client')
                         ->label("Votre prénom");

        $form_inscription->add('Date', 'date_naissanceclient')
                         ->label("date de naissance");

        $form_inscription->add('Password', 'mdp_client')
                         ->label("Votre mot de passe");

        $form_inscription->add('Password', 'mdp_verif')
                         ->label("Votre mot de passe (vérification)");

        $form_inscription->add('Email', 'emailclient')
                         ->label("Votre adresse email"); 

        $form_inscription->add('File', 'avatarclient')
                         ->filter_extensions('jpg', 'png', 'gif')
                         ->max_size(8192) // 8 Kb
                         ->label("Votre avatar (facultatif)")
                         ->Required(false);

        $form_inscription->add('Submit', 'submit')
                         ->value("validez l'inscription");

        // Pré-remplissage avec les valeurs précédemment entrées (s'il y en a)
        $form_inscription->bound($_POST);

                // Affichage du formulaire

        include CHEMIN_VUE.'formulaire_inscription.php';       
}

?>



  • Partager sur Facebook
  • Partager sur Twitter
16 janvier 2017 à 6:03:30

Bonjour cher mentor

Je suis le tuto sur le mvc seulement j'ai quelques préoccupations

1. est il possible d'integrer d'autres attributs html dans la class form.php tel que le placeholder, la class, l'id, et bien d'autres?

2. lors de la modification du profil d'un membre je recois un message d' erreur qui pointe directement sur la class form, j'ai lu que la classe a été mis à jour, puis-je obtenir le lien?

Merci

  • Partager sur Facebook
  • Partager sur Twitter
5 février 2017 à 17:42:25

Bonjour,

Tout d'abord merci beaucoup pour ce tuto.

Comme beaucoup dans ce forum, je ne comprends pas bien où doivent être placés les contrôleurs. J'ai beau relire la première section, je ne vois pas d'explication à ce sujet.

Je bloque sur la partie inscription. 

Je ne comprends pas pourquoi dans le formulaire inscription aucune action n'est définie (via la méthode ->action(page.php) par exemple ?).

Lorsque le bouton submit est cliqué, si je ne me trompe pas actuellement rien ne passe (vu qu'aucune action n'est définie)

Je serai donc tenté de définir l'action qui renvoie vers la "page.php" et de mettre dans cette page le contrôleur pour la vérification des données et 

Est-ce une bonne approche ? Je ne trouve pas ça hyper propre.

merci d'avance de votre aide,

Pierre 

  • Partager sur Facebook
  • Partager sur Twitter
13 avril 2017 à 18:39:04

Bonjour à tous !

Tout d’abord, merci à Savageman pour son tuto et sa class form qui est très pratique pour coder des formulaires proprement ;)

Je poste car j’utilise cette classe et j’ai besoin de mettre un choix multiple sur un formulaire : un exercice peut avoir plusieurs thèmes (une table avec tous les thèmes existe dans la bdd). Donc je voudrais faire un formulaire d’enregistrement d’un exercice qui propose à l’utilisateur de choisir tous les thèmes auxquels l’exercice serait rattaché.

j’ai essayé de mettre des checkbox et je n’y arrive pas. En HTML, on met des checkbox avec un même "name" (ex : "themes[]") et après la validation du formulaire, on récupère dans $_POST[‘theme’], un tableau avec toutes les valeurs cochées sur lesquelles on peut faire des foreach. 

Là, quand j’essaye de créer plusieurs checkbox avec un même name, j’ai un message d’erreur qui me dit en gros que le name doit être unique… J’ai regardé si il y avait pour la classe form_Checkbox une méthode choices comme pour les select mais ce n’est pas le cas :) J’ai vu qu’il y avait des exemples d’utilisation de checkbox dans ce topic mais avec un seul choix donc je ne peux pas m’en inspirer. Si quelqu’un a une idée ou un exemple avec plusieurs choix je suis preneur !!!

En fait je me demande si je dois mettre un élément de type checkbox qui "dessine" à lui tout seul plusieurs cases à cocher (et dans ce cas là : comment le spécifier dans le code ?) ou si je dois mettre un élément checkbox par thème (et dans ce cas, comment gérer le fait que le name est censé être identique alors que la classe form impose qu’il soit unique)

  • Partager sur Facebook
  • Partager sur Twitter
29 septembre 2018 à 18:33:27

Bonjour

Comment ajouter des balises <fieldset> et <legende> dans le constructeur pour identifier des blocs de formulaire ?

Merci 

-
Edité par yanikfortin 29 septembre 2018 à 18:33:57

  • Partager sur Facebook
  • Partager sur Twitter
6 novembre 2018 à 16:52:12

Bonjour, je suis ce tuto mais je bloque sur un point : L'espace membre.

A ce point : https://openclassrooms.com/fr/courses/1325466-votre-site-php-presque-complet-architecture-mvc-et-bonnes-pratiques/1326080-la-base-lespace-membre#/id/r-1326610

Impossible d'afficher le formulaire.

J'ai l'impression que mes DEFINE('CHEMIN_VUE, etc ne sont pas pris en compte.

Je les ai placés dans config.php, est-ce correct ? Ceci n'est pas précisé dans le tuto :(

D'ailleurs ce qui est dommage c'est que l'on ai pas les noms de fichiers avec les screens de codes :( Du coup, je m'y perd un peu ...

Merci pour votre aide.

  • Partager sur Facebook
  • Partager sur Twitter
Scots