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 :
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&amp;autoreplay=true&amp;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>
action "submit" dans le fichier
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&eacute; pour :   ".'<font color="#8E236B">'.'<b>'.$_POST['votez'].'</b>'.'</font>';
echo '<p></p>';
echo '<p></p>';
echo '<b>'.'<font color="##FF7F00">'." R&eacute;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"].'&nbsp;'.'&nbsp;'.'&nbsp;'.'</b>';
echo '&nbsp;'.'&nbsp;'.'&nbsp;'.'<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>