AccueilAccueil  RechercherRechercher  S'enregistrerS'enregistrer  Connexion  

 

 PHP (formulaire/sondage) ?

Aller en bas 
AuteurMessage
Marco
Nouveau


Messages : 8

PHP (formulaire/sondage) ? Empty
MessageSujet: PHP (formulaire/sondage) ?   PHP (formulaire/sondage) ? EmptyJeu 2 Juin 2011 - 23:34

Bonjour a tous!
Aujourdh'ui, j'ai fait un site en php.
Basique quoi. J'ai reussit a faire un formulaire type "case a cocher".
Mais svp aidez moi! Comment je peux faire pour
Que lorsque une personne entre une case a cocher et valide, la variable je puisse
La stocker dans un dossier sur Mon ordinateur? (stocker son pseudo et son choix)?
Et pour qu'elle ne puisse voter qu'une seule fois (en intyerceptant l'IP? Les cookies?).
Ps: merci et avant toute chose, j'espere qu'il ne faut pas utilisier sql...x)

Merci d'avance a tous!.
Revenir en haut Aller en bas
DarkYoshi
Utilisateur confirmé: Rang **
DarkYoshi

Messages : 344
Localisation : Dans un caniveau
Projet Actuel : pou pou pou dipou pwet <3

PHP (formulaire/sondage) ? Empty
MessageSujet: Re: PHP (formulaire/sondage) ?   PHP (formulaire/sondage) ? EmptyVen 3 Juin 2011 - 0:15

Salut, alors c'est dommage de pas se servir de SQL surtout pour un truc comme ca car au final c'est bien plus facile a gerer dans ton code, et puis quand il y aura beaucoup de reponse a stocker c'est plus pratique
Mais si tu prefere d'abord apprendre a manipuler les fichier tu peux fouiner sur la doc php qui est trés bien

http://fr.php.net/manual/fr/function.fprintf.php

Ensuite pour les cookies c'est pas le top car l'utilisateur a tendance a les dégager régulièrement, et l'ip d'un mec peut etre dynamique donc il peut voter plusieurs fois dans ce cas.
La solution de pro serait de faire carrement un systeme de membre mais c'est un peu chaud

Alors pour faire du bricolage on va preferer capter les cookies il faut te servir d'une supervariable

$_COOKIE
Revenir en haut Aller en bas
http://anthony-nougarede.com/
Mass
*Excellent utilisateur*
Mass

Messages : 3338
Localisation : Dans une canonnière wookie.
Projet Actuel : Living the life
PHP (formulaire/sondage) ? Void

PHP (formulaire/sondage) ? Empty
MessageSujet: Re: PHP (formulaire/sondage) ?   PHP (formulaire/sondage) ? EmptyVen 3 Juin 2011 - 0:31

Bon vu que tu ne veux pas utiliser sql ça complique un peu les choses, sinon ça aurait été un peu plus simple et mieux fait.
Pour ta première question, tu ne peux pas stocker directement ce choix sur ton ordinateur, sauf si cet ordinateur est également ton serveur web (mais tu ne pourras stocker ça que dans un dossier accessible à apache).
Tu peux donc essayer de le stocker dans un fichier sur ton serveur web en observant une synthaxe stricte afin d'éviter les doublons. Dans le fichier .php que tu as indiqué à l'argument action= de ta balise form (dans la page de ton formulaire), tu fais un truc du genre :
Code:
<?php
$fichier=fopen("sondage.txt","a") or die (exit); //ouverture du fichier en mode ajout
fputs($fichier,$pseudo); //écriture du pseudo et retour à la ligne
fputs($fichier,$choix_sondage); //écriture du choix (0 ou 1)
fclose($fichier); //fermeture du fichier
?>
Comme ça t'obtiendra une ligne avec un pseudo puis une ligne avec le choix, et à nouveau une ligne avec un pseudo... A toi de faire un if pour vérifier que les chaines entrées ne sont pas vides.
Pour visualiser tu peux faire une petite boucle type :
Code:
<html><body><table>
<?php
$fichier=fopen("sondage.txt","r")or die (exit); 
while(!feof($fichier))
{
echo "<tr><td>";
echo fgets($fichier,20); //lecture pseudo, 20 caract. max
echo "</td><td>";
echo fgets($fichier,1); //lecture choix, 1 caractère car soit 0 soit 1
echo "</td></tr>\n";
}
fclose($fichier);
?>
</table></body></html>
Donc ce petit script t'affichera tout les sondés en tableau avec pseudo et choix.
Après si tu veux mettre plusieurs choix c'est du copié collé c'est pas dur.

Pour ta deuxième question, tu peux le faire avec un cookie mais vu que tu sembles ne pas trop maitriser php encore tu vas rien y comprendre, alors vaut mieux le faire avec les ip, c'est moins compliqué (mais aussi moins flexible).
Php possède une variable d'environnemenet simple à utiliser qui contient l'ip du visiteur.
Donc tu stockes toutes les ip qui ont remplis le formulaire dans un fichier séparé, donc ça te donne, en reprenant le code précédent :

Code:
<?php
$fichier=fopen("sondage.txt","a") or die (exit); //ouverture du fichier en mode ajout
fputs($fichier,$pseudo); //écriture du pseudo et retour à la ligne
fputs($fichier,$choix_sondage); //écriture du choix (0 ou 1)
fclose($fichier); //fermeture du fichier

$fichier_ip=fopen("ip_log.txt","a") or die(exit);
fputs($fichier_ip,$REMOTE_ADDR);
fclose($fichier_ip);
?>
Après pour check si le mec a pas déjà remplis le formulaire ben tu fais un ptit truc tout con :
Code:

$fichier_ip=fopen("ip_log.txt","r") or die (exit);
$ip_found=0;
while(!feof($fichier_ip))
{
if (fgets($fichier_ip,12) = $REMOTE_ADDR)
{
$ip_found=1;
break;
}
}
$fclose($fichier_ip);
if($ip_found=0)
{
echo "Vous avez déjà remplit le formulaire, désolé !";
}
else
{
include ("formulaire.htm"); //inclusion du fichier html avec le formulaire
}
?>

Voilà, essaies de t'en inspirer. Mais mets-toi à SQL, ce sera beaucoup plus rapide, surtout si t'as beaucoup d'utilisateur, parcourir les fichiers en entier à chaque visite feront beaucoup bosser ton serveur web pour pas grand chose.
J'ai ptêtre fait deux-trois erreurs ou oublis, je m'en excuse d'avance, je fais tout en sql donc les fichiers c'est plus trop d'actualité pour moi :s

EDIT pour mon VDD qui a posté avant moi : Les ip dynamiques on en rencontre beaucoup moins qu'avant, 90% des box internet ont des ip fixes...
De toute façon y'a pas de solution miracle, les cookies ou les ip ont chacuns leurs avantages et inconvénients. Jte présente l'option ip parce que c'est le plus simple pour débuter.

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
Contenu sponsorisé




PHP (formulaire/sondage) ? Empty
MessageSujet: Re: PHP (formulaire/sondage) ?   PHP (formulaire/sondage) ? Empty

Revenir en haut Aller en bas
 
PHP (formulaire/sondage) ?
Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Programmation-
Sauter vers: