Forum ZitePLUS

La communauté des utilisateurs du CMS ZitePLUS

Vous n'êtes pas identifié(e).

#1 11/01/2015 18:33:14

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

formulaire de saisis de resultats comment faire ?

Bonjour,

Je chercher à faire des formulaires de saisis de résultats pour mon site de volley.

Mais en PHP, je suis très très novice.

Donc , voila dans les grandes lignes

- Je fait un formulaire de saisis avec plusieurs champs accessible via l'espace membre.
- Ensuite, je voudrai que les données du formulaire soient enregistrées dans un fichier sur le zite (du style compteur de visite de fredo42)
- Et les récupéré dans une page pour qu'ils apparaissent au emplacement souhaité.

Je voudrai utiliser cette méthode pour simplifier la saisis des résultats par les membres du club.

Je fait appel à vos compétence..

Je vous remercie d'avant, car, je ne doute pas qu'il y aura surement une personne qui vas pouvoir m'aider.

A bientôt

dedega

Hors ligne

#2 13/01/2015 00:36:55

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonsoir dedega,
Mais c'est presque du dev spécifique ça  wink
A quel niveau tu coinces ?
a+
Jean-Paul

Hors ligne

#3 13/01/2015 21:11:09

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonjour JPG,


Je crée un formulaire (la je sais faire) smile

par exemple :
<form action="verif.php" method="post">
  <p>
  <input type="text" name="loco" />
  <input type="text" name="visiteur" />
  <input type="submit" value="Valider" />
  </p>
</form>

Il faudrait que je crée un fichier en php par exemple (verif.php) pour traiter les infos du formulaire et les stocker dans un fichier

voila ce que j'ai commencer a faire :
<?php
//pour stockées les données
$fichier = 'resultregio.txt';
if( !file_exists($fichier) ) {
$fp = fopen($fichier, "w");
fclose($fp);
}
$loco = $_POST['loco'];
$visiteur = $_POST['visiteur'];
$resuloco = $_POST['resuloco'];
$resuvisit = $_POST['resuvisit'];
$scoreloco1 = $_POST['scoreloco1'];
$scoreloco2 = $_POST['scoreloco2'];
$scoreloco3 = $_POST['scoreloco3'];
$scoreloco4 = $_POST['scoreloco4'];
$scoreloco5 = $_POST['scoreloco5'];
$scorevisit1 = $_POST['scorevisit1'];
$scorevisit2 = $_POST['scorevisit2'];
$scorevisit3 = $_POST['scorevisit3'];
$scorevisit4 = $_POST['scorevisit4'];
$scorevisit5 = $_POST['scorevisit5'];
$resultregio = $loco.$visiteur ; //etc...
$fp = fopen($fichier,"r+");
fputs($fp, $resultregio);
fclose($fp);
Cet exemple et surement bourré d"erreurs tongue  désolé .

Ensuite je voudrais pouvoir recharger les variables de ce fichier pour les intégrer dans une page.

Comme j'ai dit, je suis novice en PHP et je ne sais pas par quel bout commencer, si j'avais un exemple fonctionnel simple et commenté cela m'aiderai un peu à mieux comprendre.

A +
et Merci encore

Dernière modification par dedega (14/01/2015 07:09:28)

Hors ligne

#4 14/01/2015 10:37:00

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : formulaire de saisis de resultats comment faire ?

J' ai déjà réalisé ce genre de chose...
Si tu regarde sur mon site : http://www.c-too.com/cms/zitedemo/

Les pages "Catalogue, Liste Bijoux, et Calcul" sont le résultat d'un fichier txt écrit par un formulaire.
Si tu regarde en bas de chacune il y-a un lien vers le fichier txt généré, contenant les datas que tu utilise dans la page...

Dit-moi si ça t'intéresse


Stéphane
Webdesign AvantageWeb

Hors ligne

#5 14/01/2015 21:32:53

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonjour,

Merci, oui c'est à-peu-près ce que je cherche à faire.

il faudrait que j'adapte...
Ce que je voudrai faire :
stocker les données du formulaire dans un fichier pour les récupérer dans la page.

A+

mon formulaire par exemple :
form-saisis-regio.jpg

et sur la page du site par exemple les infos viendraient se mettre à jour.
extraitsitevolley%20copie.jpg

Hors ligne

#6 15/01/2015 00:28:42

Stefpei
Membre
Lieu : Nantes
Inscription : 12/06/2009
Messages : 354
Site Web

Re : formulaire de saisis de resultats comment faire ?

je t'envoie ça, sur ton email (de ton site web) ...


Stéphane
Webdesign AvantageWeb

Hors ligne

#7 15/01/2015 14:41:42

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonjour,

Super sympa big_smile

Je vais regarde tout ça, je ne sais pas si je vais tout comprendre, mais, je vais essayer  lol

Merci

Zitement-votre,

DEDEGA

Hors ligne

#8 18/01/2015 02:27:00

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonsoir,

Je remercie Stefpei pour son aide, j'ai quand même du mal pour tout comprendre  roll

Voila ce que j'ai faite pour mon formulaire :

[== PHP et HTML ==]
<?php
//pour stockées les données du formulaire
$fichier = 'resultregio.txt';
if( !file_exists($fichier) ) {
$fp = fopen($fichier, "w");
  fwrite($fp, serialize(array()));
fclose($fp);
}
$dateregio = $_POST['dateregio'];
$loco = $_POST['loco'];
$visiteur = $_POST['visiteur'];
$resuloco = $_POST['resuloco'];
$resuvisit = $_POST['resuvisit'];
$scoreloco1 = $_POST['scoreloco1'];
$scoreloco2 = $_POST['scoreloco2'];
$scoreloco3 = $_POST['scoreloco3'];
$scoreloco4 = $_POST['scoreloco4'];
$scoreloco5 = $_POST['scoreloco5'];
$scorevisit1 = $_POST['scorevisit1'];
$scorevisit2 = $_POST['scorevisit2'];
$scorevisit3 = $_POST['scorevisit3'];
$scorevisit4 = $_POST['scorevisit4'];
$scorevisit5 = $_POST['scorevisit5'];
$resultregio = array (
  'date' => array($dateregio),
  'equipes' => array($loco,$visiteur),
  'resultats' => array($resuloco,$resuvisit),
  'set1' => array($scoreloco1,$scorevisit1),
  'set2' => array($scoreloco2,$scorevisit2),
  'set3' => array($scoreloco3,$scorevisit3),
  'set4' => array($scoreloco4,$scorevisit4),
  'set5' => array($scoreloco5,$scorevisit5)
);
$fp = fopen($fichier,"w");
fwrite($fp, serialize($resultregio));
fclose($fp);
?><form action="" method="post">
<table style="width: 80%;" align="center" border="0" cellpadding="3" cellspacing="0">
<tbody>
<tr>
<td colspan="3" align="center" valign="top"><span style="font-size: small; font-family: comic sans ms,sans-serif;"><strong>SAISIS DES R&Eacute;SULTATS R&Eacute;GIONALE</strong></span><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"></span></strong></td>
</tr>
<tr>
<td colspan="3" align="center" valign="top"><strong><span style="font-size: small; font-family: arial,helvetica,sans-serif;">Date :</span></strong><span style="font-size: small; font-family: comic sans ms,sans-serif;"><strong><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"> <input type="text" name="dateregio" /></span></strong></strong></span></td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td style="background-color: #99ff99;" align="center" valign="middle"><span style="font-size: small;"><strong><span style="font-family: arial,helvetica,sans-serif;">&Eacute;quipe local :</span></strong></span></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><span style="font-size: small;"><strong><span style="font-family: arial,helvetica,sans-serif;">&Eacute;quipe visiteur :</span></strong></span></td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td style="background-color: #99ff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="loco" /></span></strong></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="visiteur" /></span></strong></td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td style="background-color: #99ff99;" align="center" valign="middle"><span style="font-size: small;"><strong><span style="font-family: arial,helvetica,sans-serif;">R&eacute;sultats :</span></strong></span></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><span style="font-size: small;"><strong><span style="font-family: arial,helvetica,sans-serif;">R&eacute;sultats :</span></strong></span></td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td style="background-color: #99ff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"></span></strong><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="resuloco" /></span></strong></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="resuvisit" /></span></strong></td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td style="background-color: #99ff99;" align="center" valign="middle"><span style="font-size: small;"><strong><span style="font-family: arial,helvetica,sans-serif;">Scores :</span></strong></span></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><span style="font-size: small;"><strong><span style="font-family: arial,helvetica,sans-serif;">Scores :</span></strong></span></td>
</tr>
<tr>
<td align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;">Set 1<br /></span></strong></td>
<td style="background-color: #99ff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scoreloco1" /></span></strong><strong><span align="center"> </span></strong></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scorevisit1" /></span></strong></td>
</tr>
<tr>
<td align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;">Set 2<br /></span></strong></td>
<td style="background-color: #99ff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scoreloco2" /></span></strong></span></strong></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scorevisit2" /></span></strong></td>
</tr>
<tr>
<td align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;">Set 3<br /></span></strong></td>
<td style="background-color: #99ff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scoreloco3" /></span></strong></span></strong></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scorevisit3" /></span></strong></td>
</tr>
<tr>
<td align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;">Set 4<br /></span></strong></td>
<td style="background-color: #99ff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scoreloco4" /></span></strong></span></strong></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scorevisit4" /></span></strong></td>
</tr>
<tr>
<td align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;">Set 5</span></strong></td>
<td style="background-color: #99ff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scoreloco5" /></span></strong></span></strong></td>
<td style="background-color: #ffff99;" align="center" valign="middle"><strong><span style="font-size: x-small; font-family: arial,helvetica,sans-serif;"><input type="text" name="scorevisit5" /></span></strong></td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td style="background-color: #99ff99;" align="center" valign="middle">&nbsp;</td>
<td style="background-color: #ffff99;" align="center" valign="middle">&nbsp;</td>
</tr>
<tr>
<td align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle">&nbsp;</td>
<td align="center" valign="middle"><input type="submit" value="Valider" /></td>
</tr>
</tbody>
</table>
</form>

Voila le contenu du fichiers sauvegardé:

[== Indéfini ==]
a:8:{s:4:"date";a:1:{i:0;s:10:"17/01/2015";}s:7:"equipes";a:2:{i:0;s:5:"brive";i:1;s:5:"mende";}s:9:"resultats";a:2:{i:0;s:1:"0";i:1;s:1:"3";}s:4:"set1";a:2:{i:0;s:2:"19";i:1;s:2:"25";}s:4:"set2";a:2:{i:0;s:2:"21";i:1;s:2:"25";}s:4:"set3";a:2:{i:0;s:2:"22";i:1;s:2:"25";}s:4:"set4";a:2:{i:0;s:0:"";i:1;s:0:"";}s:4:"set5";a:2:{i:0;s:0:"";i:1;s:0:"";}}

La ou je blocs, c'est pour recharger les données et les remettre en variable. yikes roll

A +
Dedega

Hors ligne

#9 18/01/2015 17:46:20

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonjour,

Tu as des exemples un peu partout dans ZitePlus et ses modules (et avec plusieurs variantes wink)
Par exemple comment.php

Les fonctions importantes sont file_get_contents() et unserialize() pour ce que tu veux faire.

a+
Jean-Paul

Hors ligne

#10 19/01/2015 05:17:44

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonsoir,

Voila ce que j'ai fait pour extraire mes données, ensuite, il faut que je trouve pour pouvoir les exploiter ? hmm
dur-dur pour moi qui débute en php, apprendre la syntaxe et les fonctions et le code tongue
et en plus avec les différentes versions de PHP 4.xx et 5.xx mad
Les exemples que l'on trouve sur le web ne fonctionnent pas toujours. neutral
Je suis sous PHP5.4

[== PHP ==]
<?php
$str = file_get_contents('resultregio.txt');
$arr = unserialize($str);
foreach ($arr as $user) {
  list($firstName, $lastName) = $user;
  var_dump($firstName, $lastName);
  echo "<br/>";
}
?>

ce qui donne :
string(10) "17/01/2015" NULL
string(5) "brive" string(5) "mende"
string(1) "0" string(1) "3"
string(2) "19" string(2) "25"
string(2) "21" string(2) "25"
string(2) "22" string(2) "25"
string(0) "" string(0) ""
string(0) "" string(0) ""

Hors ligne

#11 19/01/2015 13:23:28

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonjour,

Il faut que tu utilises les données, comme tu les as sauvegardés.
Vu ta sauvegarde, pour les réutiliser:

<?php
$str = file_get_contents('resultregio.txt');
$resultregio = unserialize($str);

$dateregio = $resultregio['date'][0];
$loco = $resultregio['equipes'][0];
$visiteur = $resultregio['equipes'][1];
$resuloco = $resultregio['resultats'][0];
$resuvisit = $resultregio['resultats'][1];
$scoreloco1 = $resultregio['set1'][0];
// etc pour les autres champs

un petit exemple d'affichage
print_r("Résultat du ${dateregio}, ${loco}($resultloco) contre visiteur ${visiteur}(${resuvisit})");
?>

a+
Jean-Paul

Hors ligne

#12 19/01/2015 17:22:45

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

Re : formulaire de saisis de resultats comment faire ?

Bonjour,

OK, je comprend mieux.
quand on n'a pas le truc big_smile ...

Je vais mettre des conditions sur le formulaire pour éviter les erreurs de saisis.

Je te dit un grand merci à toi et Stefpei
pour toute votre aide.


Tu connais des bouquins sur le php ?

A bientôt

dédéga

Hors ligne

#13 19/01/2015 18:26:49

jpg
Administrateurs
Inscription : 19/11/2008
Messages : 2 086
Site Web

Re : formulaire de saisis de resultats comment faire ?

dedega a écrit :

Je vais mettre des conditions sur le formulaire pour éviter les erreurs de saisis.

Oui, cela sera mieux ;-)

dedega a écrit :

Je te dit un grand merci à toi et Stefpei
pour toute votre aide.

cool

dedega a écrit :

Tu connais des bouquins sur le php ?

Je n'ai pas de titre en tête.

Pour ton formulaire de saisie, pense a essayer de réutiliser ce qui existe déjà.

Par exemple, dans ton cas:
Ce code

$fp = fopen($fichier,"w");
fwrite($fp, serialize($resultregio));
fclose($fp);

et celui-ci

$this->writedata($fichier,$resultregio)

feront la même chose sous ZitePlus

Dans le même ordre d'idée, pour tes formulaires, moyennant l'inclusion d'outils.php
tu auras des fonctions pour gérer plus facilement les retours des formulaires ou les valeurs de fichiers.
   - function no_mq_gpc($s)  pour enlever les "magic_quotes"
   - function zp_secure($s)    pour échapper tous les caractères "dangereux"
   - function zp_secure_POST($s,$dft_s='')  pareil, mais en tenant compte de la variable $s du formulaire et en précisant une valeur par défaut
   - function zp_secure_ident($s,$ispost=true)    Pour avoir une saisie alphanumérique(et -_) depuis une chaîne ou une variable de formulaire

Tu as des exemples d'utilisation dans différents modules de ZitePlus; par exemple dans page_admin.php.
Petit à petit, on va retrouver ces fonctions dans tous les modules wink

a+
Jean-Paul

Hors ligne

#14 19/01/2015 19:46:53

dedega
Membre
Lieu : Malemort / Correze
Inscription : 10/09/2008
Messages : 131
Site Web

Re : formulaire de saisis de resultats comment faire ?

Merci encore
pour toutes tes infos,  smile

J'ai mis en place le formulaire pour la saisi des résultats (pour l'équipe Élite) accessible sur une page protégé par login et mot de passe et j'ai fait apparaitre les résultats (élite) sur la page d'accueil, ça fonctionne très bien, je vais faire la même chose pour les résultats de la régionale, que j'avais prévu de faire au départ.
Mais avant, je vais optimiser tout ça en appliquant tes recommandations et aussi sur la sécurité de saisi.

Une chose à la fois (dur-dur pour mes neurones)  big_smile

A+
dedega

Hors ligne

Pied de page des forums