Voir la version complète : aide sondage en php
Coldfusion
23/01/2004, 19h30
bonjour,
j'ai un probleme avec un script que j'ai pris sur JDN Developpeurs
http://developpeur.journaldunet.com/tutoriel/php/040407php_sondage1a.shtml
J'ai crée un fichier appellé : donnees.txt
J'ai uploadé le fichier .txt et le fichier php sur mon ftp à la racine du site
Quand je le lance je tombe sur ce message d'erreur :
Fatal error: Call to undefined function: file_get_contents() in /usr/local/www/data.users/****(siteprivé)***.com/www/jdnetdev-sondage.php on line 67
et voici donc le § vers la ligne 67 que je vous met en gras
global $fichier, $vote;
clearstatcache();
if ( (!file_exists($fichier)) || (filesize($fichier) < 1) )
{
creerSondage();
}
else
{
$vote = unserialize(file_get_contents($fichier));
}
afficherOptions();
}
je ne comprends donc pas ce qu'il faut que je fasse...et j'ai donc besoin de votre aide
Au fait, je ne vais pas demander de l'aide sur leur forum là bas car il est vide, completement vide et surtout car je sais qu'ici il y a des bons en php
MErci :001:
Version trop ancienne de php, update ta version de php à 4.3 ou demande le à ton hébergeur. Sinon laisse tomber ce script ou trouve une fonction en remplacement.
sinon inclue ça dans ton fichier :
if (!function_exists("file_get_contents")) {
function file_get_contents($filename, $use_include_path = 0) {
$file = @fopen($filename, "rb", $use_include_path);
if ($file) {
if ($fsize = @filesize($filename)) {
$data = fread($file, $fsize);
} else {
$data = ""; // just to be safe. Dunno, if this is really needed
while (!feof($file)) $data .= fread($file, 1024);
}
fclose($file);
}
return $data;
}
}
Merci aux site http://www.php.net (ou du moins à l'un des habitués).
Coldfusion
23/01/2004, 20h05
merci pour ton aide si rapide
Juste une précision : Dans quelle partie j'inclue ton code ? En haut / bas / milieu / ligne ?
Tu peux inclure cette partie tout au début du fichier si tu le souhaites
Coldfusion
25/01/2004, 12h18
Tu peux inclure cette partie tout au début du fichier si tu le souhaites
merci
j'ai essayé
ca donne rien, j'ai un message d'erreur au dessus du sondage. Et quand je vote sur le sondage j'ai egalement le meme message d'erreur : "Ecriture Impossible"
Voici deux images pour te montrer
(désolé je ne peut pas donner l'adresse, c'est un site privé)
Ne serait-ce pas un probleme de connexion à la base de donnée ? Faut-il crée une table dans la base ? J'ai une base pour mon vBulletin mais je ne sait pas s'il faut rajouter quelque chose...
Faut-il créer un fichier "données.txt" ?
Merci de m'expliquer plus si tu peut :)
L'erreur vient du fait que ton fichier donnees.txt ne peut être modifié. Il faut que tu créé le fichier en question et que tu lui attribue le chmod777 ou alors attribue le chmod 777 au dossier devant le contenir.
Coldfusion
25/01/2004, 13h32
ouahhhhhhhhhhhhhhhhhhhhhhhh
ca marche nickel maintenant !!!!!!
Je me permet de te poser une autre question :
Comment faire un include de ce sondage sur une page html existente ?
Je sait qu'il existe la fonction include en php mais je ne l'aie jamais utilisée.
Peut tu me dire ?
MErci
Coldfusion
25/01/2004, 19h53
j'avances dans mon include depuis cet aprem... j'en aprends beaucoup mais j'ai encore besoin de votre aide svp
Pourquoi si dans mon fichier "index.php" mon include marche pas :
voici le code de l'include
<?php $"afficherSondage"; include "jdnetdev-sondage.php"; ?>
j'ai essayé de bidouiller ca mais ca marche pas...
pourtant voici la fin du fichier jdnetdev-sondage.php
<body>
<span class="Style2">
<?php afficherSondage(); ?>
</span>
</body>
</html>
Comprends pas..
Comment faire appel à cette valeur ???
merci de votre aide
Coldfusion
26/01/2004, 22h19
pas de réponse ? personne sait faire ça ?
Pouvez vous alors me conseiller sur un forum compétent ou je pourrais aller ? Merci.
Sophocle
27/01/2004, 09h45
Voici une adresse que j'apprécie : http://www.phpfrance.com/
Coldfusion
14/02/2004, 18h56
j'ai finalement réussit avec un autre code, je sait maintenant faire un appel à une DB, c'est extraordinaire pour moi...
merci encore
Pitchoune
14/02/2004, 19h37
Bientôt un futur développeur dans nos rangs ? :)
Robinho™
24/03/2008, 19h04
Bonjour.
Afin de ne pas creer de nouveau topic, je me permet de poster ici.
En fait, j'aimerais insérer un sondage sur mon site. Simplement, ça fait deux jours que j'essaye, en vain...
J'ai trouvé un bon script qui donne ça :
<body>
<p>Question : "L'arc cosinus, c'est </p>
<p>une herbe aromatique ?"
</p>
<form name="formulaire" method="post" action="<?$PHP_SELF;?>">
<p>
<input type="radio" name="choix" value="oui">
oui... </p>
<p>
<input type="radio" name="choix" value="non">
non...</p>
<p>
<input type="radio" name="choix" value="pas">
ne sait pas...</p>
<p>
<input type="submit" value="Validez votre réponse">
</p>
</form>
<?
switch($choix)
{
case "oui":
$fichier = fopen("oui.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("oui.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
case "non":
$fichier = fopen("non.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("non.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
case "pas":
$fichier = fopen("pas.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("pas.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
}
?>
<?
$fichier = fopen("oui.txt","r");
$sonda = fgets($fichier,255);
fclose($fichier);
$fichier = fopen("non.txt","r");
$sondb = fgets($fichier,255);
fclose($fichier);
$fichier = fopen("pas.txt","r");
$sondc = fgets($fichier,255);
fclose($fichier);
$tot_sond=($sonda+$sondb+$sondc);
echo "Nombre de \"oui\" : ",$sonda;
echo "Nombre de \"non\" : ",$sondb;
echo "Nombre de \"ne sait pas\" : ",$sondc;
echo "Nombre total de votes : ",$tot_sond;
?>
</body>
Simplement, les résultats n'apparaissent pas sous forme de pourcentages, comme on peut le constater ici : http://www.omagix.net/Untitled-1.php
Si quelqu'on sait comment faire...
Merci d'avance!
Pitchoune
24/03/2008, 20h01
fgets() permet de prendre la valeur écrit dans le fichier, pas de calculer un pourcentage.
J'aurais fait ceci :
<body>
<p>Question : "L'arc cosinus, c'est </p>
<p>une herbe aromatique ?"
</p>
<form name="formulaire" method="post" action="<?$PHP_SELF;?>">
<p>
<input type="radio" name="choix" value="oui">
oui... </p>
<p>
<input type="radio" name="choix" value="non">
non...</p>
<p>
<input type="radio" name="choix" value="pas">
ne sait pas...</p>
<p>
<input type="submit" value="Validez votre réponse">
</p>
</form>
<?
switch($choix)
{
case "oui":
$fichier = fopen("oui.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("oui.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
case "non":
$fichier = fopen("non.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("non.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
case "pas":
$fichier = fopen("pas.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("pas.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
}
?>
<?
$fichier = fopen("oui.txt","r");
$sonda = fgets($fichier,255);
fclose($fichier);
$fichier = fopen("non.txt","r");
$sondb = fgets($fichier,255);
fclose($fichier);
$fichier = fopen("pas.txt","r");
$sondc = fgets($fichier,255);
fclose($fichier);
$tot_sond=($sonda+$sondb+$sondc);
// Calcul des pourcentages
// Si le nombre de votes est inférieur au nombre total, calculer le pourcentage sinon afficher 100%
// Pourcentage = votes d'une question / nombre de votes total * 100
$percentsonda = (($sonda < $tot_sond) ? $sonda / $tot_sond * 100 : 100);
$percentsondb = (($sondb < $tot_sond) ? $sondb / $tot_sond * 100 : 100);
$percentsondc = (($sondc < $tot_sond) ? $sondb / $tot_sond * 100 : 100);
echo "Nombre de \"oui\" : $sonda ($percentsonda%)";
echo "Nombre de \"non\" : $sondb ($percentsondb%)";
echo "Nombre de \"ne sait pas\" : $sondc ($percentsondc%)";
echo "Nombre total de votes : $tot_sond";
?>
</body>Après, à toi de voir :)
Robinho™
24/03/2008, 20h43
Merci pitchoune, effectivement, ça calcule le pourcentage. Simplement, ça me sort des nombres énormes genre 66.545222444525%.
Y'a t'il un moyen de changer ça?
Pitchoune
24/03/2008, 22h31
<body>
<p>Question : "L'arc cosinus, c'est </p>
<p>une herbe aromatique ?"
</p>
<form name="formulaire" method="post" action="<?$PHP_SELF;?>">
<p>
<input type="radio" name="choix" value="oui">
oui... </p>
<p>
<input type="radio" name="choix" value="non">
non...</p>
<p>
<input type="radio" name="choix" value="pas">
ne sait pas...</p>
<p>
<input type="submit" value="Validez votre réponse">
</p>
</form>
<?
switch($choix)
{
case "oui":
$fichier = fopen("oui.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("oui.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
case "non":
$fichier = fopen("non.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("non.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
case "pas":
$fichier = fopen("pas.txt","r+");
$sond = fgets($fichier,255);
$sond++;fclose($fichier);
$fichier = fopen("pas.txt","w");
fwrite($fichier,$sond);
fclose($fichier);break;
}
?>
<?
$fichier = fopen("oui.txt","r");
$sonda = fgets($fichier,255);
fclose($fichier);
$fichier = fopen("non.txt","r");
$sondb = fgets($fichier,255);
fclose($fichier);
$fichier = fopen("pas.txt","r");
$sondc = fgets($fichier,255);
fclose($fichier);
$tot_sond=($sonda+$sondb+$sondc);
// Fonction pour raccourcir les chiffres après la virgule dans les pourcentages
function calc_number_format($number, $decimal = 0)
{
if (empty($number))
{
return 0;
}
else if (preg_match('#^(\d+(?:\.\d+)?)(?>\s*)([mkg])b?$#i', trim($number), $matches))
{
switch(strtolower($matches[2]))
{
case 'g':
$number = $matches[1] * 1073741824;
break;
case 'm':
$number = $matches[1] * 1048576;
break;
case 'k':
$number = $matches[1] * 1024;
break;
default:
$number = $matches[1] * 1;
}
}
return str_replace('_', ' ', number_format($number, $decimal, ',', '_'));
}
// Calcul des pourcentages
// Si le nombre de votes est inférieur au nombre total, calculer le pourcentage sinon afficher 100%
// Pourcentage = votes d'une question / nombre de votes total * 100
$percentsonda = calc_number_format(($sonda < $tot_sond) ? $sonda / $tot_sond * 100 : 100, 2);
$percentsondb = calc_number_format(($sondb < $tot_sond) ? $sondb / $tot_sond * 100 : 100, 2);
$percentsondc = calc_number_format(($sondc < $tot_sond) ? $sondb / $tot_sond * 100 : 100, 2);
echo "Nombre de \"oui\" : $sonda ($percentsonda%)";
echo "Nombre de \"non\" : $sondb ($percentsondb%)";
echo "Nombre de \"ne sait pas\" : $sondc ($percentsondc%)";
echo "Nombre total de votes : $tot_sond";
?>
</body>Et avec ça ?
Robinho™
24/03/2008, 23h52
J'ai modifié de maniére à n'avoir qu'une décimale. Merci!
Simplement, je pense que je vais tenter de trouver un autre script, celui là n'est vraiment pas top. Aprés 12 votes de tests, j'ai deux réponses à 25 % et une à 41%
Ce qui ne fait donc pas 100 % : http://www.omagix.net/Untitled-1.php
J'ai aussi voulu faire en sorte d'afficher le résultatsen pourcentage en face de chaque réponse, c'est à dire que je voulais voir les réponse présenter de cette maniére:
Oui : 33.3%
Non : 33.3%
Ne sais pas : 33.3%
Malheureusement, à chaque fois que je tente de modifier le code, j'ai une "fatal error" quand je met en ligne :( .
Je n'y comprend plus rien...
vBulletin® v.3.8.0 Beta 1, Copyright ©2000-2008, Jelsoft Enterprises Ltd. Tous droits réservés - Version française vbulletin-fr.org