Module de vote

[Résolu]
Signaler
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010
-
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010
-
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

Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

bon, j'ai essayé de mettre un mauvais nom de la bd, il m'affiche pa de message d'erreur specifié par le "echo".
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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> 
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

au fait rectifie ca
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

ok, mais ça sert à koi, on ne redirige plus l'action vers voter.php?
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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é.
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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.
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

juste easyphp la derniere version mais reposte ton code pour voir
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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>
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

honnêtemen, moi mm j voi pa de pb. j vai encor parcourrir un peu
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

Display_errors
; Default Value: On
; Development Value: On
; Production Value: Off

voilà la partie d'affichage des erreurs
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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 ?
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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.
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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>
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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>

Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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
Messages postés
194
Date d'inscription
dimanche 18 mars 2007
Statut
Membre
Dernière intervention
11 juillet 2015

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
Messages postés
39
Date d'inscription
mercredi 8 août 2007
Statut
Membre
Dernière intervention
14 mai 2010

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.