begin process at 2012 05 27 21:50:58
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Formulaires

 > INSCRIPTION EN LIGNE, AGENDA COLLECTIF

INSCRIPTION EN LIGNE, AGENDA COLLECTIF


 Information sur la source

Note :
7,67 / 10 - par 6 personnes
7,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Formulaires Classé sous :agenda, planning, formulaire, pratique, simple Niveau :Débutant Date de création :20/01/2006 Date de mise à jour :28/02/2011 12:49:25 Vu :17 985

Auteur : trismuth

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

 Description

Cliquez pour voir la capture en taille normale
Voila une petite page que j'ai faite pour une association,le principe est que chacun peut s'inscrire en ligne sur une date et son nom sera affiché de la couleur qui correspond à sa fonction.
Il est très simple a adapter, il n'y a même pas besoin de tout comprendre et vous avez votre planning , ça peut même servir a toute forme travail collectif, chacun pouvant s'inscrire pour une tache donnée.
J'ai tout fait pour que ce soit aisé a utiliser , et j'ai mis des ## a coté de ce qu'il faut adapter

utilisation
Pas besoin de SQL donc ça fonctionne chez n'importe quel hébergeur
Il suffit de créer un dossier data qui contient des fichiers textes qui correspondent a chaque case du tableau sous la forme 1+date+.txt,2+date+.txt... ( les '+' sont nécessaires) le contenu donne la liste des participants
et une feuille de style css qui permet d'afficher chaque nom avec une couleur en fonction de la fonction du participant


j'espère que ça vous sera utile, si vous l'utilisez prévenez moi...

Source

  • <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  • <html>
  • <head>
  • <title>Inscription en ligne</title>
  • <link rel="stylesheet" href="./styles/style_general.css" type="text/css">
  • <link rel="stylesheet" href="./styles/personnes.css" type="text/css">
  • <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  • <META name="Author" lang="fr" content="Trismuth">
  • </head>
  • <body>
  • <?php include("./bibli/entete.php") ?><!--un petit truc discret a mettre en haut de toutes vos pages, suffit d'avoir un sous dossier bibli ou vous méttez les deux autres fichiers !-->
  • <H1>Agenda collectif <IMG align="right" src="adresse d'une petite image sympa"></H1>
  • <p class=".default"><br><br><br><br></p>
  • <?php
  • //precondition: IL faut que le dossier ./data contienne des fichier "ordre"+date+.txt
  • //ou ordre est l'odre dans lequel vous voulez que les date apparaissent
  • //************* phase d'éxécution d'une requete ********************************************************
  • $err="Erreur d'accès au fichier, veuillez rééssayer dans un instant";
  • if($_GET['lePrenom']!="") {
  • switch($_GET["requete"]){
  • //ajout
  • case 1:
  • //On utilise flock a chaque ouverture de fichier, pour éviter les problemes si plusieurs
  • // personnes se connectent en meme temps.
  • ($freq=fopen($_GET["fichier"],'a')) or die ("$err") ;
  • fputs($freq,$_GET["niv"]."/ ".$_GET["lePrenom"]."\n");
  • /*attenion , si vous éditez les fichiers a la main n'oubliez pas de mettre "entrée ala fin de chaque fichier*/
  • // $niv représente le type de personne qui s'inscrit déterminela couleur dans laquelle ça s'afficheras
  • fclose($freq);
  • break;
  • //retrait
  • case 2:
  • //copie du fichier de départ dans un fichier "tmp.txt
  • ($ancien = fopen("$_GET[fichier]",r)) or die ("$err") ;
  • flock($ancien,LOCK_EX);
  • touch('tmp.txt');
  • ($tmp = fopen('tmp.txt',w)) or die ("$err");
  • flock($tmp,LOCK_EX);//lock_ex=2 protege le fichier en ériture et en lecture
  • while (!feof( $ancien )){
  • //echo "@$ligne@"; --> juste pour le débuggage
  • $ligne=fgets( $ancien , 1024 );
  • (($ligne!="\n")&&(fputs($tmp,"$ligne")));
  • }
  • flock($ancien,LOCK_UN);
  • fclose($ancien);
  • flock($tmp,LOCK_UN);
  • fclose($tmp);
  • //recopie dans le fichier de départ , sauf la ligne contenant le prénom cherché ou leslignes vides
  • ($tmp = fopen('tmp.txt',r)) or die ("$err") ;
  • flock($tmp,LOCK_EX);
  • ($freqq=fopen("$_GET[fichier]",w)) or die ("$err");
  • flock($freqq,LOCK_EX);
  • while (!feof($tmp)){
  • $ligne=fgets($tmp,1024);
  • //echo "!$ligne!";
  • if (($ligne!="")&&(!(strstr($ligne,$_GET['lePrenom'])))){
  • fputs($freqq,$ligne);//echo "@$ligne@";
  • }
  • }
  • flock($reqq,LOCK_UN);
  • fclose($freqq);
  • flock($tmp,LOCK_UN);
  • fclose($tmp);
  • unlink('tmp.txt');
  • //unlink($_SERVER["REMOTE_ADDR"].'.txt');
  • break;
  • }
  • }
  • //affichage rapide du tableau _get
  • /*echo "<pre>"; ---> encore pour le debuggage
  • print_r($_GET);
  • echo "</pre>";*/
  • //remise a zero du tableau get ça sert a rien mais ca a l'air plus propre ;)
  • $_GET=array();
  • /*echo "<pre>";
  • print_r($_GET);
  • echo "</pre>";*/
  • //*************** fin execution requete *********************************************************
  • //**************initialisation du tableau a partir du contenu de ./data";**
  • $dh = opendir("./data");
  • while ($fichier = readdir($dh)){
  • if(substr($fichier,-5)=="+.txt"){
  • $listeDates[strtok("$fichier","+")]= strtok("+");
  • }
  • }
  • closedir($dh);
  • ksort($listeDates);
  • //affichage su tableau
  • echo '<table width="100%" border="1">';
  • // 1ligne: titre
  • echo"<tr><td><H3>Date</h3></td><td><H3>Participants</h3></td><td><H3>Commandes</h3></td><tr>";
  • foreach($listeDates as $cle=>$date){
  • echo "<tr>";
  • //premiere colone date
  • echo '<td><DIV class="dateclass">'.$date.'</DIV></td>';
  • //deuxieme colone avec le contenu du fichier
  • echo "<td>";
  • $fchemin="./data/$cle+$date+.txt";
  • $fp=fopen("$fchemin",r);
  • while (!feof($fp)){
  • list($niv,$ligne)=split("/",fgets($fp,1024));// yavais plus simple?
  • if($ligne!=""){
  • echo "<DIV class=\"".$niv."class\">".$ligne."<br></DIV>";
  • }
  • }
  • fclose($fp);
  • echo "</td>";
  • //troisiem colone avec les commandes entierement en html
  • ?>
  • <td>
  • <form method="GET" action="<?php $_SERVER['PHP_SELF']; ?>">
  • S'ajouter
  • <input type="text" value="" name="lePrenom"/>
  • <select name="niv">
  • <option value="t1">Type d'incrit 1</option>
  • <option value="t2">Type d'inscrit 2</option>
  • </select>
  • <input type="hidden" name="fichier" value="<?php echo $fchemin; ?>" />
  • <input type="hidden" name="requete" value="1" />
  • <input type="submit" value="envoyer"/>
  • </form>
  • <form method="GET" action="<?php $_SERVER['PHP_SELF']; ?>">
  • Se desinscrire
  • <select name="lePrenom">
  • <?php
  • $fp=fopen("$fchemin",r);
  • while (!feof($fp)){
  • list($niv,$ligne)=split("/",fgets($fp,1024));
  • if($ligne!=""){
  • echo "<option value=$ligne>$ligne<br>";
  • }
  • }
  • fclose($fp);
  • ?>
  • </select>
  • <input type="hidden" name="fichier" value="<?php echo $fchemin; ?>" />
  • <input type="hidden" name="requete" value="2" />
  • <input type="submit" value="envoyer"/>
  • </form>
  • </td>
  • <?php
  • //finligne
  • echo "</tr>";
  • }
  • echo "</table>";
  • //*************************** fin affichage tableau**********
  • //
  • /*
  • echo "<pre>";
  • print_r($listeDates);
  • echo "</pre>";
  • */
  • ?>
  • Trismuth prod
  • </body>
  • </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <title>Inscription en ligne</title>
    <link rel="stylesheet" href="./styles/style_general.css" type="text/css">
    <link rel="stylesheet" href="./styles/personnes.css" type="text/css">
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	<META name="Author" lang="fr" content="Trismuth">
</head>

<body>

<?php include("./bibli/entete.php") ?><!--un petit truc discret a mettre en haut de toutes vos pages, suffit d'avoir un sous dossier bibli ou vous méttez les deux autres fichiers !-->

<H1>Agenda collectif <IMG align="right" src="adresse d'une petite image sympa"></H1>
<p class=".default"><br><br><br><br></p>


<?php 

//precondition:  IL faut que le dossier ./data contienne des fichier  "ordre"+date+.txt
//ou ordre est l'odre dans lequel vous voulez que les date apparaissent
//************* phase d'éxécution d'une requete ********************************************************
$err="Erreur d'accès au fichier, veuillez rééssayer dans un instant";
if($_GET['lePrenom']!="") {
	switch($_GET["requete"]){
		
//ajout
		case 1:
		//On utilise flock a chaque ouverture de fichier, pour éviter les problemes si plusieurs
		// personnes se connectent en meme temps.
		($freq=fopen($_GET["fichier"],'a')) or die ("$err") ;
		fputs($freq,$_GET["niv"]."/ ".$_GET["lePrenom"]."\n");
/*attenion , si vous éditez les fichiers a la main n'oubliez pas de mettre "entrée ala fin de chaque fichier*/
// $niv représente le type de personne qui s'inscrit déterminela couleur dans laquelle ça s'afficheras
		fclose($freq);
		break;
		
		
		//retrait
		case 2:
		
		//copie du fichier de départ dans un fichier "tmp.txt
		($ancien = fopen("$_GET[fichier]",r)) or die ("$err") ;
		flock($ancien,LOCK_EX);
		touch('tmp.txt');
		($tmp = fopen('tmp.txt',w)) or die ("$err");
		flock($tmp,LOCK_EX);//lock_ex=2 protege le fichier en ériture et en lecture
			while (!feof( $ancien )){
			//echo "@$ligne@";  --> juste pour le débuggage
			$ligne=fgets( $ancien , 1024 );
			(($ligne!="\n")&&(fputs($tmp,"$ligne")));
			}
		flock($ancien,LOCK_UN);	
		fclose($ancien);
		flock($tmp,LOCK_UN);
		fclose($tmp);
			
		//recopie dans le fichier de départ , sauf la ligne contenant le prénom cherché ou leslignes vides		
		
		($tmp = fopen('tmp.txt',r)) or die ("$err") ;
		flock($tmp,LOCK_EX);
		($freqq=fopen("$_GET[fichier]",w)) or die ("$err");
		flock($freqq,LOCK_EX);
			while (!feof($tmp)){
			$ligne=fgets($tmp,1024);
				//echo "!$ligne!";
				if (($ligne!="")&&(!(strstr($ligne,$_GET['lePrenom'])))){
				fputs($freqq,$ligne);//echo "@$ligne@";
				}
			}
		flock($reqq,LOCK_UN);	
		fclose($freqq);
		flock($tmp,LOCK_UN);
		fclose($tmp);
		unlink('tmp.txt');	
	
		
		
		//unlink($_SERVER["REMOTE_ADDR"].'.txt');
		break;
		
	
	}
}
//affichage rapide du tableau _get
/*echo "<pre>";          --->  encore pour le debuggage
print_r($_GET);
echo "</pre>";*/
//remise a zero du tableau get ça sert a rien mais ca a l'air plus propre ;)
$_GET=array();
/*echo "<pre>";
print_r($_GET);
echo "</pre>";*/
//*************** fin execution requete *********************************************************

//**************initialisation du tableau a partir du contenu de ./data";**
$dh = opendir("./data");
while ($fichier = readdir($dh)){
	if(substr($fichier,-5)=="+.txt"){
	$listeDates[strtok("$fichier","+")]= strtok("+");	
	}
}
closedir($dh);
ksort($listeDates);

//affichage su tableau
echo '<table width="100%" border="1">';
 // 1ligne: titre
 echo"<tr><td><H3>Date</h3></td><td><H3>Participants</h3></td><td><H3>Commandes</h3></td><tr>";	
 
 
 foreach($listeDates as $cle=>$date){
	echo "<tr>";
	//premiere colone date
	echo '<td><DIV class="dateclass">'.$date.'</DIV></td>';
	
	//deuxieme colone avec le contenu du fichier
	echo    "<td>";
	$fchemin="./data/$cle+$date+.txt";
	$fp=fopen("$fchemin",r);
		while (!feof($fp)){
		
		list($niv,$ligne)=split("/",fgets($fp,1024));// yavais plus simple?
			if($ligne!=""){
			echo "<DIV class=\"".$niv."class\">".$ligne."<br></DIV>";
			}
		}
	fclose($fp);
	echo "</td>";
	
	//troisiem colone avec les commandes entierement en html
	?>
	<td>
		
		<form method="GET" action="<?php $_SERVER['PHP_SELF']; ?>">
			S'ajouter
			<input type="text" value="" name="lePrenom"/>
			<select name="niv">
				<option value="t1">Type d'incrit 1</option>
				<option value="t2">Type d'inscrit 2</option>
				
			</select> 
			<input type="hidden" name="fichier" value="<?php echo $fchemin; ?>" />
			<input type="hidden" name="requete" value="1" />	
			<input type="submit" value="envoyer"/>
		</form>
		
		<form method="GET" action="<?php $_SERVER['PHP_SELF']; ?>">
			Se desinscrire
			 <select name="lePrenom">     
				<?php
				$fp=fopen("$fchemin",r);
				while (!feof($fp)){
				list($niv,$ligne)=split("/",fgets($fp,1024));
					if($ligne!=""){
					echo "<option value=$ligne>$ligne<br>";
					}
				}
				fclose($fp);
				?>
			</select>
			<input type="hidden" name="fichier" value="<?php echo $fchemin; ?>" />
			<input type="hidden" name="requete" value="2" />	
			<input type="submit" value="envoyer"/>
			</form>
		
	</td>
	
	<?php
	//finligne 	
	echo "</tr>"; 
} 

echo "</table>";

//*************************** fin affichage tableau**********
//
/*
echo "<pre>";
print_r($listeDates);
echo "</pre>";
*/
?>




Trismuth prod
</body>
</html>

 Conclusion

C'est ma première production, en le relisant je pense que ça ce voit, j'apprécirais tout les commentaires qui pourraient m'aider a progrésser un peu en php ( je pense que j'ai pas toujours fait au plus simple, pratique ou sur) et en html ( notamment au niveau des entetes )
Autant apprendre bien dès le départ>... merci d'avance ; )


 Historique

28 février 2011 12:49:25 :
Petites corrections d'orthographe, en préparation d'un dépoussiérage substantiel

 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 Source avec une capture VALIDATEUR DE FORMULAIRE par Reldan
Source avec Zip FORMULAIRE D'INSCRIPTION par lelioua
Source avec Zip SUIVI SERVICE CLIENT PHP par hige52
CLASS DE CONTRÔLE DE FORMULAIRE par baxterio
Source avec une capture FORMULAIRE DE CONTACT MULTICHAMPS par viki53

Commentaires et avis

Commentaire de johann1 le 21/01/2006 18:12:59

Ca semble sympa, j'attends aussi pour ma part, l'avis de quelques super-pros.
Bonne continuation

Commentaire de WhiteDwarf le 22/01/2006 17:55:42

bah écoute j'ai maté le code vite fais, ca m'a l'air pas mal codé, je ne l'ai pas encore testé mais je vais le faire d'ici peu et pourquoi pas l'utiliser pour le site d'une assoc aussi

Ptite pub : l'assoc de musique Syncope (sur Angers) donne des concerts pour essayer de gagner des fonds pour le financement d'un futur festival (projet) à but humanitaire...
le site sera bientôt dispo si ca vous intéresse... future adresse : www.syncope.net ou .com je ne sais pas encore...

Commentaire de pouda le 23/01/2006 20:40:30

avec un bon style.css ca pourrais être utile, le code est bon et bien pensé allé je teste...

Commentaire de apdca le 26/05/2006 16:52:37

OUf, après une douzaine d'heures dessus, ça marche enfin...
C'est dur de commencer le php tout seul !
par contre, j'ai du mal à saisir comment la feuille de style CSS et la page peuvent interragir. quelqu'un peut-il m'aiclairer?

Merci encore pour ce code qui va simplifier énormément la vie d'un petit club de plongée de l'interieur des terres...

Commentaire de hugotremolo le 21/11/2008 12:35:45 7/10

salut,
j'prepare un site pour mon asso, c'est exctement ce que j'ai besoin !!
le truck c'est que j'sais pas du tout comment l'installer ?! manquerai pas des pages ou une architecture ?
en tut cas si quelqu'un pouvait m'aider ça s'rai sympa.
++
hugo

http://fev.c.la

Commentaire de cpio le 06/06/2009 12:25:34

Salut !

Je vais tester ton script pour la même raison que tout le monde, pour une association ^^. J'ai juste vu le screenshot, c'est tout à fait ce qu'il me faut ! Mais, pourraient-t'ont pas faire que quand j'ajoute un nom, je peux seulement supprimer le nom qui correspond à mon IP quand je l'ai ajouté ?

ça éviterait qu'un petit malin désinscrive tout le monde ^^

Commentaire de ydrezet le 27/02/2011 14:51:58

Bonjour
La présentation de ce planning semble tout à fait convenir à ce que je veux faire (inscription de membres à différentes dates possibles) seulement je ne vois pas la structure des fichiers "date.txt" et "ordre.txt" ni l'arborescence complète du dossier en ligne.
si quelqu'un veut bien me dépanner, merci d'avance .
Cordialement
Yann

Commentaire de ydrezet le 28/02/2011 18:56:14

Bonsoir
Merci, Trismuth, pour la réponse rapide et efficace apportée : ça fonctionne très bien et cela me va très bien !
J'ai compris la syntaxe du nom des fichiers txt à créer, c'est opérationnel !
Cordialement
Yann

Commentaire de stephelle le 17/09/2011 18:56:26

Quelqu'un peut-il m'aider, j'ai pas tout compris.
ça m'arrangerait beaucoup.
Par avance Merci.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Agenda tout simple mais spécifique??? [ par Mourte ] Bonjour à tous,Je recherche un agenda simple dans lequel je peux mettre mes rendez-vous et qui m'envoie un mail le matin pour me dire les rendez-vous formulaire sans bdd ? [ par ze_bassman ] voilà, j'ai un formulaire simple a creer (4 champs de texte, une zone de texte et un menu déroulant, je souhaiterai que les données soient envoyé par code simple pour formulaire [ par bernard ] bonsoir à tous, je suis débutant de chez débutant et j'ai besoin d'aide.je voudrais réaliser un programme en php.il s'agit d'un formulaire où le visit Mettre entre balise par simple click,un texte selectionné... [ par skab ] Bonjour! voila je voudrais savoir comment faire pour&nbsp; mettre entre balises un morceau de texte selection&#233; dans un formulaire j'utilise deja Ajouter formulaire par un simple clique [ par b_medamine ] Bonjour, J'ai un petit formulaire sur la m&#234;me ligne : &lt;form name='frm' action = 'action.php4'&gt; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt Planning [ par amocco ] Bonjour le forum ,je voudrais faire planning pour une equipe d'une quizaine de personne .tres simple avec une base mysql .le planning s'affiche sur un Question simple [ par LaTatadu91 ] Bonjour,voila j'ai une question tres simple:j'effectue dans un script un controle des champs d'un formulaire pour savoir si ils sont bien rempliset ds Synchronisation de l'agenda dans outlook avec une planning externe [ par Smyles ] bonjour,voilà mon problème: J'ai un planning (calendrier permanences des employés d'une société) annuel à synchroniser avec l'agenda de chaque employé Formulaire simple newsletter [ par heder ] Bonjour à tous, Je suis en train de faire un formulaire simple pour [b]récupérer[/b] des emails pour une newsletter. L'idée est vraiment simple, les question simple dur l'action d'un formulaire [ par developvbdebut ] Bonjour tout le monde&nbsp;Je voudrais m&#234;ttre mon script php en&nbsp;dessou du formulaire, j'ignore quoi mettre dans l'action du formulaire.Voici


Nos sponsors


Sondage...

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,296 sec (4)

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