Module de vote

Résolu
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010 - 26 avril 2010 à 11:27
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010 - 14 mai 2010 à 14:09
Bonjour, j suis débutant en php, suis en stage pour le développement d'un module avec le CMS joomla, il a donc été préférable de développer un nouveau composant joomla,car le module de vote ainsi prédéfini ne répond pas aux besoins du module. alors ce qu'on veut ici c'est d'avoir 3 boutons au choix, soient "pour", "contre" ou "je m'abstiens". alors un user connecté au préalable, en cliquant sur un bouton au choix, la bd devra etre remplie afin qu'en puisse savoir qui à voté et son choix. à priori, j'aimerais savoir svp, sans pour le moment entrer dans la création du composant joomla, de voir un semblable de code pour le choix d'un des 3 boutons ainsi k le remplissage de la BD pour le choix et le votant.


merci de votre aide.



Bne reception.

71 réponses

nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 12:42
bon, j'ai essayé de mettre un mauvais nom de la bd, il m'affiche pa de message d'erreur specifié par le "echo".
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
10 mai 2010 à 12:50
voila j'ai reecrie le code en mode deboguage et je les tester et ca marche ca aidera avoir ou le script plante et au fait apropos de code html c'est bien possible que tous se trouve dans le meme fichier
<html>
<head>
<title>test de manip</title>
</head>

<?php
$user="root";
$host="localhost";
$password="";
$database="joomlabase";
/*
CREATE TABLE `joomlabase`.`jos_voteradio` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`choix` VARCHAR( 20 ) NOT NULL
) ENGINE = MYISAM ;

*/
if (isset($_POST['choix'])) {
$choix = $_POST['choix'];
//valeur de choix
echo "choix == ".$choix."
";
mysql_connect($host,$user,$password)or die (mysql_error());
mysql_select_db($database) or die(mysql_error());
mysql_query("insert into jos_voteradio(choix) values ('$choix')") or die(mysql_error());
    
} else {

echo "le formulaire ne transmet pas de variable";
}
?>
<form action="<?php $_SERVER['PHP_SELF'] ?>" method="post">
tu m'aides 
tu m'aides pas 
je sais pas 


</form>



</html> 
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
10 mai 2010 à 12:53
au fait rectifie ca
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 12:57
ok, mais ça sert à koi, on ne redirige plus l'action vers voter.php?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 12:59
Fichier introuvable




voilà le resultat d'erreur k j'obtiens




Firefox ne peut trouver le fichier à l'adresse /C:/wamp/www/tests/<?php $_SERVER['PHP_SELF'] ?>.




* Vérifiez la syntaxe du nom de fichier (dont le respect des minuscules/majuscules) ;

* Vérifiez si le fichier n'a pas été déplacé, renommé ou supprimé.
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
10 mai 2010 à 13:04
mais c'est pour ca que je t'ai demander de rectifier en ajoutant <?php echo $_SERVER['PHP_SELF']?> au lieu de <?php $_SERVER['PHP_SELF'] ?>

$_SERVER['PHP_SELF'] est une variable superglobal qui contient le nom du script dans lequel elle invoquer c'est a dire dans notre cas voter.php
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 13:51
même message d'erreur en mettant echo sur le lien <?php echo $_SERVER['PHP_SELF']?>.

bon, di moi, tu teste tn code avec koi, parck le mien j le colle dans les dossiers de joomla.
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
10 mai 2010 à 13:54
juste easyphp la derniere version mais reposte ton code pour voir
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 14:01
ok le voilà, mais note dans ce k tu as modifié tt à lheure, yavai pa les variables $connexion,$res et $db. et j'ai dû enlever le BR parckil derangeai mon affichage.sinon, ça affiche bien les boutons, c kan j clik kil maffiche l'erreur. et kan j met action=voter.php, rien ne se passe, ça reste statik.

<html>
<head>
<title>test de manip</title>
</head>

<?php
$user="root";
$host="localhost";
$password="";
$database="joomlabase";
/*
CREATE TABLE `joomlabase`.`jos_voteradio` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`choix` VARCHAR( 20 ) NOT NULL
) ENGINE = MYISAM ;

*/
if (isset($_POST['choix'])) {
$choix = $_POST['choix'];
//valeur de choix
echo "choix == ".$choix.;
mysql_connect($host,$user,$password)or die (mysql_error());
mysql_select_db($database) or die(mysql_error());
mysql_query("insert into jos_voteradio(choix) values ('$choix')") or die(mysql_error());

} else {

echo "le formulaire ne transmet pas de variable";
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
tu m'aides
tu m'aides pas
je sais pas


</form>



</html>
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
10 mai 2010 à 14:28
la j'aurai tous vu mais essaye voir si ton fichier php.ini n'a pas ete configurer pour ne pas afficher les erreurs mais je ne suis pas sur que c'est du a ca
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 14:52
honnêtemen, moi mm j voi pa de pb. j vai encor parcourrir un peu
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 14:58
Display_errors
; Default Value: On
; Development Value: On
; Production Value: Off

voilà la partie d'affichage des erreurs
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
10 mai 2010 à 15:07
descend plus bas tu trouvera une section
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
et regarde du coter de
error_reporting = E_ALL | E_STRICT
et
display_errors = On
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
10 mai 2010 à 16:25
bon, là j'ai tt fouillé j'ai rien vu, si on faisai ça avc le code javascript k tu mavai dabor expliké, tu pense k ça s'executerai facilement ?
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
11 mai 2010 à 09:10
Bonjour Devil, j dois te dir k j'ai pas dormi pr ce petit code là enfin, ça m'a aidé à fouiller, là ça va, il a fallu que je change le nom du fichier voter.php en index.php afin k le serveur apache de wamp le lance automatiquement à l'aide de apache, là c bon, ça rempli bien la table. ce dont j'ai besoin c continuer la suite des test en changeant les boutons radio en 3 boutons submit.
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
11 mai 2010 à 11:22
alor j'ai essayé avec 3 boutons submit, ça a aussi fonctionné, voilà mon code je sais pa si tu le trouveras long, mais j croi kil doi y avoir une possibilité de le reduire:



<?php
$user="root";
$host="localhost";
$password="";
$database="joomlabase";


if ( (isset($_POST["oui"])) && ($_POST["oui"]=="Oui") )
{
$oui = $_POST['oui'];
$connexion = mysql_connect($host,$user,$password)or die ("Connexion au serveur Impossible");
$db = mysql_select_db($database,$connexion);
$res = mysql_query("insert into jos_submit(oui)values('$oui')");
if ($res) {
echo "l'insertion s'est faite avec succes";
} else {
die(mysql_error());
}
}

elseif ( (isset($_POST["non"])) && ($_POST["non"]=="Non") )
{
$non = $_POST['non'];
$connexion = mysql_connect($host,$user,$password)or die ("Connexion au serveur Impossible");
$db = mysql_select_db($database,$connexion);
$res = mysql_query("insert into jos_submit(non)values('$non')");
if ($res) {
echo "l'insertion s'est faite avec succes";
} else {
die(mysql_error());
}
}
elseif ( (isset($_POST["autre"])) && ($_POST["autre"]=="Autre") )
{
$autre = $_POST['autre'];
$connexion = mysql_connect($host,$user,$password)or die ("Connexion au serveur Impossible");
$db = mysql_select_db($database,$connexion);
$res = mysql_query("insert into jos_submit(autre)values('$autre')");
if ($res) {
echo "l'insertion s'est faite avec succes";
} else {
die(mysql_error());
}
}
?>
<form action="votersubmit.php" method="post">







</form>
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
11 mai 2010 à 11:32
salut heureux que ton code marche bon voila une voix mais tous les chemin mene a rome je croix pas que tu trouvera plus cours
<?php
$user="root";
$host="localhost";
$password="";
$database="joomlabase";

if (isset($_POST['choix'])) {
     $connexion = mysql_connect($host,$user,$password)or die ("Connexion au serveur Impossible");
$db = mysql_select_db($database,$connexion);
    $choix = isset($_POST['choix'])?$_POST['choix']:''; 
    $res = mysql_query("insert into jos_submit(choix)values('$choix')");
    if ($res) {
       echo "l'insertion s'est faite avec succes";
    } else {
      die(mysql_error());
    }
}


?>
<form action="votersubmit.php" method="post">







</form>

0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
11 mai 2010 à 13:03
ok, mais le seul bouton ki fonctionne ici c celui "oui". anyway, j vai encore regarder. dis-mois, comment on devrai utiliser le "hepoll" pr kon ne puiss pa cliquer 2 fois sur un boutons, ou pluto plus d'une foi
0
devil_may_cry Messages postés 194 Date d'inscription dimanche 18 mars 2007 Statut Membre Dernière intervention 11 juillet 2015
11 mai 2010 à 13:33
c'est bizarre mais j'ai l'habitude de tester toujeur mes code que je poste pour ne pas induire les gens en erreur et le script marche avec moi mais comme tu l'a di faut voir mais bon apropos de hepoll tu peut parexemple mettre un input type hidden dans le formulaire avec comme nom hepoll et value 1 ensuite tu remplace le if (isset($_POST['choix'])) {
par
//l'utilisateur a voter
if (isset($_POST['hepool'])) {

//le traitement ici
} else {
//l'utilisateur n'a pas encore voter
tu affiche le formulaire
}
ceci est une solution basique mais ca ne serai pas efficace tu doit pousser le truc l'astuce serai d'utiliser les cookiees ou mieux sauvegarder l'ip de l'internaute dans une bd ou fichier
0
nadeaunjigui Messages postés 39 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 14 mai 2010
12 mai 2010 à 09:28
Slt Devil, cmt tu vas ce matin? jespèr bien.j'ai pas encor eu le temps de regarder le code avc le "hepoll", juste pr revenir sur le code precedent, j crois k le pb est sur le fait k sur la spécification de la commande "insert", le champs k tu as mi c "choix", alors k ds ce code on a 3 champs dans la table "jos_submit". alors le champs "choix" est inconnu, j sai pa si tu vois le truc.
0
Rejoignez-nous