Generer et traiter un formulaire lambda

Soyez le premier à donner votre avis sur cette source.

Vue 9 776 fois - Téléchargée 796 fois

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 / Exemple :


<?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.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009

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

$ pecl install filter

dans votre console.

voila :)
Messages postés
55
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
20 janvier 2009

Je ne sais pas quoi penser de cette erreur, je regarde ca dès que possible.
Messages postés
25
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
14 septembre 2007

La version de ma PHP est 5.2.2 alors ne me dis pas que c'est la version qui fait planter le code.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
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...
Messages postés
25
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
14 septembre 2007

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
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.