begin process at 2012 05 27 21:37:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > GENERER ET TRAITER UN FORMULAIRE LAMBDA

GENERER ET TRAITER UN FORMULAIRE LAMBDA


 Information sur la source

Note :
Aucune note
Catégorie :Formulaires Classé sous :héritage, xhtml, domdocument, générique, classe Niveau :Initié Date de création :16/06/2007 Date de mise à jour :24/06/2007 14:19:22 Vu / téléchargé :7 986 / 515

Auteur : craso

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Ce code affiche et traite un formulaire, il est composé d'un template xhtml, et d'une classe abstraite que vous devez étendre. Il produit un code validé par DOMDocument::validate() XHTML strict. Il vous laisse le choix de la base de donnée, cette fonctionnalité peut être ajoutée comme vous le voulez. Il modifie le DOMDocument si le formulaire n'est pas bien rempli. Il s'agit de ma première source postée, je la développerai d'avantage et vous la proposerai à nouveau.
J'attends beaucoup de vos critiques, pourvu qu'elles soient claires. La séparation du html et du php et complête.

Source

  • <?php
  • //include_once 'inscription.classe.php';
  • try
  • {
  • // ce fichier servira de html ainsi que d'element de configuration et sera chargé dynamiquement
  • $nom_formulaire = 'inscription';
  • $nom_classe = ucfirst($nom_formulaire);
  • $nom_fichier_classe = $nom_formulaire.'.classe.php';
  • $nom_fichier_xml = $nom_formulaire.'.xml';
  • if(!file_exists($nom_fichier_xml))
  • throw new Exception('Le fichier "'.$nom_fichier_xml.'" n\'existe pas.');
  • if(!file_exists($nom_fichier_classe))
  • throw new Exception('Le fichier "'.$nom_fichier_classe.'" n\'existe pas.');
  • require_once $nom_fichier_classe;
  • // quel que soit la methode, si elle convient(post ou get) , le fichier XML sert
  • if($_SERVER['REQUEST_METHOD'] == 'GET')
  • {
  • // il est bêtement lu
  • // (a voir si c'est aussi bon)
  • readfile($nom_fichier_xml);
  • }
  • elseif($_SERVER['REQUEST_METHOD'] == 'POST')
  • {
  • // il est ici un fichier de config important
  • $doc = new $nom_classe($nom_fichier_xml);
  • // on compare les INPUT avec la config du formulaire
  • $doc->traiter();
  • // on affiche le resultat
  • echo $doc->getResult();
  • }
  • else // sinon une exception est levée
  • {
  • throw new Exception('La methode "'.$_SERVER['REQUEST_METHOD'].'" est interdite.');
  • }
  • }
  • catch(Exception $e)
  • {
  • echo '<pre>';
  • print_r($e);
  • }
  • ?>
<?php
//include_once 'inscription.classe.php';


try
{
	// ce fichier servira de html ainsi que d'element de configuration et sera chargé dynamiquement
	$nom_formulaire = 'inscription';
	
	$nom_classe = ucfirst($nom_formulaire);
	
	$nom_fichier_classe = $nom_formulaire.'.classe.php';
	
	$nom_fichier_xml = $nom_formulaire.'.xml';
	
	if(!file_exists($nom_fichier_xml))
		throw new Exception('Le fichier "'.$nom_fichier_xml.'" n\'existe pas.');
	
	if(!file_exists($nom_fichier_classe))
		throw new Exception('Le fichier "'.$nom_fichier_classe.'" n\'existe pas.');
	
	require_once $nom_fichier_classe;
	
	
	
	// quel que soit la methode, si elle convient(post ou get) , le fichier XML sert
	if($_SERVER['REQUEST_METHOD'] == 'GET')
	{
		// il est bêtement lu
		// (a voir si c'est aussi bon)
		readfile($nom_fichier_xml);
	}
	elseif($_SERVER['REQUEST_METHOD'] == 'POST')
	{
		// il est ici un fichier de config important
		$doc = new $nom_classe($nom_fichier_xml);
		
		// on compare les INPUT avec la config du formulaire
		$doc->traiter();
		
		// on affiche le resultat
		echo $doc->getResult();

	}
	else // sinon une exception est levée
	{
		throw new Exception('La methode "'.$_SERVER['REQUEST_METHOD'].'" est interdite.');
	}
}
catch(Exception $e)
{
	echo '<pre>';
	print_r($e);
}
?>

 Conclusion

Ce script géère et traite un formulaire lambda écrit en xhtml.
Il s'agit de sa deuxiême version:
pour l'exemple la variable $nom_formulaire chargera le nécessaire, elle pourrait aussi bien être un $_GET['form']
la classe joueur est vraiment ras les paquerettes, il s'agit de démontrer l'utilité générique du script. Donc lorsque $nom_formulaire= 'joueur', un nouveau formulaire est chargé, avec sa classe correspondante. Ici cette variable peut être soit 'inscription' soit 'joueur'. A vous de faire ce qu'il faut pour vous en servir, a savoir:
-ecrire un document xhtml valide
-creer la classe correspondante qui comprends:
  - un tableau de filtres
  - un tableau $obligatoire qui indique à la classe mère ce qui doit être renseigné absolument
  - une page xhtml de sortie

Je me perd un peu en détail, mais je pense que c'est néccessaire.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

16 juin 2007 22:12:49 :
je pense que là, la coloration syntaxique va être activée.
17 juin 2007 11:48:06 :
Suppression du doctype maison. Le script est maintenant valide avec le doctype xhtml-strict. Le fichier xml sert de template (et de fichier de config).
17 juin 2007 11:55:44 :
Le xml est plus détaillé, explicatif , mais n'apporte rien de nouveau là.
18 juin 2007 12:33:34 :
l'index est devenu générique, une variable $nom_formulaire va charger le nécessaire. Une classe "Joueur" a été rajouté. A la prochaîne modif, le script sera plus commenté que maintenant.
18 juin 2007 13:46:17 :
mise a jour du texte explicatif (banal quoi)
18 juin 2007 17:50:44 :
Le code est éclarci, le construct n'est plus un fourre tout. Une méthode abstraite procedure() doit être implémentée dans chaque classe fille. La lisibilité du code est plus évidente et elle peut maintenant servir pour des tests unitaires (jusqu'a la preuve du contraire).
24 juin 2007 14:19:22 :
utilisation de fichiers xhtml en sortie de formulaire. beaucoup plus propre que la version précédente

 Sources de la même categorie

Source avec Zip Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
Source avec Zip POO - FORMULAIRE NEWSLETTER PHP - PROFESSEUR-PHP.COM par mtrix000
Source avec Zip Source avec une capture SELECTEUR DE NOTE par Reldan
Source avec Zip Source avec une capture ESPACE MEMBRE , AVEC CASE OPTIONNEL , SANS MYSQL par sartoz

 Sources en rapport avec celle ci

Source avec Zip TESTS UNITAIRES par pierreSabatier
Source avec une capture CLASSE CONSTRUCTEUR DE TABLEAU HTML EN PHP (REVU ET CORRIGÉ) par demonstorm
GÉNÉRATION DE FORMULAIRES XHTML par djroulo
Source avec Zip [PHP5] CLASSE BASE DE DONNÉES par malalam
Source avec Zip MINI LISTE GÉNÉRIQUE AFFICHANT UNE TABLE MYSQL ET PERMETTANT... par antoine129

Commentaires et avis

Commentaire de craso le 18/06/2007 12:35:18

J'attends vos remarques avec impatience, pourvu qu'elles soient constructives =)

Commentaire de craso le 18/06/2007 17:26:59

c'est une source en développement, donc j'attends vos remarques pour qu'elle puisse être aussi belle/pratique/etc que possible.

Commentaire de craso le 22/06/2007 19:51:15

et bien! c'est étonnant!
personne ne veut être méchant ou personne ne voit quoi dire?

Commentaire de craso le 02/07/2007 23:32:18

vu 1000 fois et pas un commentaire! vous avez certainement des remarques, c'est pas possible!

Commentaire de ralary le 12/09/2007 10:56:17

Je vois que tu veux qu'on commente un peu ton travail.
j'ai testé le code source.
et voilà ce qu'il me renvoye apres click sur le bouton de création :
Fatal error: Call to undefined function filter_input_array() in /var/www/html/_larrys/atelier/inscrire/traitement.classe.php on line 75.

QU'est ce que t'en dis ?

Cordialement,
Ralary

Commentaire de Renfield le 12/09/2007 11:06:08 administrateur CS

moi, j'en dis que tu devrais lire la doc

http://fr.php.net/manual/fr/function.filter-input-array.php

(PHP 5 >= 5.2.0, PECL filter:0.11.0)

donc, sûrement un soucis de version...

Commentaire de ralary le 14/09/2007 14:14:30

La version de ma PHP est 5.2.2 alors ne me dis pas que c'est la version qui fait planter le code.

Commentaire de craso le 15/09/2007 19:35:41

Je ne sais pas quoi penser de cette erreur, je regarde ca dès que possible.

Commentaire de craso le 16/09/2007 18:19:50

[Ralary]
Fatal error: Call to undefined function filter_input_array() =>
Exécutez simplement la commande suivant :

$ pecl install filter

dans votre console.

voila :)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

classe générique pour parser tout type de fichier xml [ par mams004 ] Bonjour, je cherche desespérement une classe php générique pour parser tout type de ficher XML Si vous connaisser des liens ou tuto? merci pour probleme d'instance de classe [ par gretata ] bonjour a tous !! j'ai un problème au niveau des objets en PHP, je ne comprend pas bien comment ils fonctionnent. j'essai de faire un get sur un obj J'aurai besoin d'un peut d'aide svp [ par Underskill ] Bonsoir J'aurais besoin d'aide. Je n'arrive pas afficher les fonction correctement pour afficher le script esceque vous pouriez m'aider svp Le script Algo "modified preorder tree traversal" [ par kohntark ] Salut, Une fois n'est pas coutume je VEUX un code tout fait !!! (<== [^^mad5] règlement !!) [^^yeuxenlair] ma masse capillaire commence à souffrir d Journal web de classe _ besoin d'aide ! SVP [ par bidbidon ] Bonjour et merci à ceux qui m'accoderont un peu de leur temps ... Je m'explique je suis en train de fabriquer un site d'école et je voudrai y intégr une classe session? [ par ronan972 ] je m'embrouille un peut sur ce point j'aimerais créer un classe pour simplifier l'appelle de mes fonctions en ce qui concerne les sessions. es ce qu'i Faire appel à la classe dont le nom est stocké dans une variable [ par jmp kjm ] Bonjour, Supposons une classe : [code=php]Class Machin{ public function newInstance(){ $newi = new self; echo('Objet créé avec succès !'); return classe imagick inexistante- alors que mon hebergeur(hosting) me rassure qu'elle est installee [ par tclo2 ] j'ai comme l'impresseion que la classe imagick est inexistante - voici ce que j'ai comme resultat lorsque je fait appel a cette classe: "Fatal error: BDD qui classe ,gere des livre [ par housan88 ] bonjour,tout le monde j aimerai avoir un exemple ,si c'est possible,d une base de donnée qui peut gerer et classer des livres merci... Problème d'interpretation des codes xhtml des champs input et textarea [ par jojo2010 ] J'aimerais qu' à partir d' un formulaire que je puisse envoyer des textes et des codes xhtml dans ma base de données et quand j'afficherai ses données


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales