Bonjour,
je souhaite que les utilisateurs puissent voter pour des morceaux de musique :
mon code ci-dessous fonctionne bien sauf :
1 - on peut voter plusieurs fois pour le même morceau
2 - le vote sur un titre qui contient des apostrophes n'est pas pris en compte
(exemple de titre : "Le Rêve de l'Homme" et si on vote, le résultat est :
Merci d'avoir voté pour : Le Rêve de l\'Homme
et du coup n'est pas pris en compte dans le total des votes...)
si vous pouvez m'aider pour les points 1 et 2 ci-dessus ? Merci d'avance.
morceaux.php :
action "submit" dans le fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>MON SITE</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut --> <div id="mainContent"> <br /> <a><strong>Morceaux de la semaine :</strong></a> <p> <object type="application/x-shockwave-flash" data="dewplayer-playlist.swf" width="240" height="200" id="dewplayer" name="dewplayer"> <param name="wmode" value="transparent" /> <param name="movie" value="dewplayer-playlist.swf" /> <param name="flashvars" value="showtime=true&autoreplay=true&xml=playlist.php" /> </object> </p> <br /> <a><strong>Informations sur les auteurs :</strong></a> <br /> <br /> <?php // connexion à la base require("configuration.php"); $sql = connect_sql(); // debut de la requête pour récupérer les informations des groupes de musique --> // on écrit la requête $select = "SELECT * FROM morceaux_groupe ORDER BY numero"; $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result); //On vérifie que la table contient quelque chose if (mysql_num_rows($result) == 0) { echo '<p>'.'<b>'.'Aucun morceau ! '.'</b>'.'</p>'.'<br>'.'</br>'; echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente } //Si il y a des entrées else { //On fait une boucle pour sortir toutes les entrées while($affiche = mysql_fetch_array($result)) { //On affiche les entrées echo '<br />'; echo '<b>'.$affiche["nom_groupe"]." ".'</b>'; echo '<div class="autre">'; echo '<span style="color:#8E236B;">'; echo '<strong>'; echo " ".$affiche["titre"]." "; echo '</strong>'; echo '</span>'; echo '<div class="cache">'; echo '<strong>'; echo '<br />'; echo '<a href="'.$affiche["site_web"].'">'.'Site web du groupe'.'</a>'; echo '<br />'; echo " ".$affiche["descriptif_groupe"]." "; echo '<br />'; echo '<br />'; echo " mis en ligne par ".$affiche["pseudo_groupe"]." "; echo '</strong>'; echo '</div>'; echo '</div>'; echo '<br />'; } //On ferme la boucle while } //on ferme le else // début de la requête sur les morceaux echo '<form method="post" action="voter.php">'; echo '<fieldset>'; echo '<legend>'."VOTEZ POUR VOTRE MORCEAU PREFERE".'</legend>'; echo '<label>'.'</label>'; echo '<select name="votez" class="ev" tabindex="1" onfocus="this.className=\'textarea_focus\';" onblur="this.className=\'\';">'; $affich_form3 = "SELECT * FROM morceaux_groupe" ; $resultat3 = mysql_query($affich_form3) or die ('Erreur : '.mysql_error() ); $total3 = mysql_num_rows($resultat3); //On vérifie que la table contient quelque chose if (mysql_num_rows($resultat3) == 0) { echo '<option>Aucun</option>'; } // fin si rien dans la liste else { while ( $list3 = mysql_fetch_array( $resultat3 ) ) { echo '<option value="'.$list3['titre'].'">'.$list3['titre'].'</option>'; } // fin du while } // fin du else echo '</select>'; // fin de la requête sur les morceaux echo '<br />'; echo '<br />'; echo '<input type="submit" class="ev" tabindex="2" value="VOTER POUR CE MORCEAU" onfocus="this.className=\'textarea_focus\';" onblur="this.className=\'\';">'; echo '</fieldset>'; // Fermeture de la connexion à la base de données mysql_close(); ?> <br /> <br /> </div> <?php include('bas_de_page.php'); ?> <!-- insère le bas de page --> </body> </html>
voter.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <title>MON SITE</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <?php include('bandeau.php'); ?> <!-- insère le bandeau principal en haut --> <div id="mainContent"> <? // insertion du fichier de configuration require("configuration.php"); // si il y a action de vote sans selection de choix on affiche un message d'erreur et le formulaire if(empty($_POST['votez'])) { echo"<center><font color='red'><b>vous devez faire un choix</b><center></font><br>"; include"morceaux.php"; // on arrête l'exécution du script avec exit() exit(); } else { // on affiche un message de remerciement echo '<p></p>'; echo "Merci d'avoir voté pour : ".'<font color="#8E236B">'.'<b>'.$_POST['votez'].'</b>'.'</font>'; echo '<p></p>'; echo '<p></p>'; echo '<b>'.'<font color="##FF7F00">'." Résultats des votes : ".'</font>'.'</b>'; echo '<p></p>'; // Connexion à la base $connect=mysql_connect($host,$login,$pass) or die ("Connection impossible"); mysql_select_db($base,$connect) or die ("selection impossible"); // il y a un vote on cherche dans la base le titre $select = "SELECT * FROM morceaux_groupe ORDER BY vote_groupe DESC"; $result = mysql_query($select) or die ('Erreur : '.mysql_error() ); $total = mysql_num_rows($result); //On fait une boucle pour sortir toutes les entrées while($affiche = mysql_fetch_array($result)) { //On affiche les entrées echo '<b>'.$affiche["nom_groupe"].' '.' '.' '.'</b>'; echo ' '.' '.' '.'<font color="#7F00FF">'.$affiche["titre"].'</font>'; echo '<br />'; echo " Nombre de votes : ".'<b>'.$affiche["vote_groupe"].'</b>'; echo '<p></p>'; } //On ferme la boucle while echo '<a href="javascript:window.history.go(-1)">'.'Retour'.'</a>'; // retour en page précédente echo '<p></p>'; // on ajoute 1 au choix qui a été fait mysql_query("UPDATE ".morceaux_groupe." SET vote_groupe=vote_groupe+1 where titre='".$_POST['votez']."'"); // on affiche un message si correct } // on ferme la connection à la base mysql_close(); ?> <?php include('bas_de_page.php'); ?> <!-- insère le bas de page --> </body> </html>
Partager