Bonsoir,
Pour mon site de partage de photos, j'ai mis en place un système de votes like/unlike semblable en tout point à celui de Facebook, c'est à dire utilisation d'un button de type submit dans un formulaire.
En gros, le membre du site arrive sur la page d'une photo, je regarde l'état actuel de son vote, j'affiche en conséquence le bouton like/unlike et lui permet de revoter, j'envoie son vote et j'update la bdd, puis je fais un refresh pour mettre à jour le vote sur la page. Tout est donc sur la même page, affichage et traitement.
Il y a donc un problème quand on fait précédent dans le navigateur.
J'aimerais quand clickant sur précédent il retourne sur la galerie qu'il visionnait juste avant d'arriver sur la page de la photo (comme sur Facebook, Youtube et compagnie), mais j'ai soit un chargement infini soit un retour sur la même page mais avant le vote (selon les méthodes utilisés).
Bref vous voyez une solution ? comment fait Facebook ?
Même si j'utilisais deux fichiers pour le traitement et l'affichage (et ça me casserait bien les pieds...), ça ne marcherait pas, en faisant précédent ça renverrait vers la même page mais avant le vote.
Le code au cas où.
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 // Début du formulaire j'aime/j'aime pas echo '<form method="POST" action="?page=photo&id='.$id.'">'; // SELECT/INSERT/UPDATE : j'aime ou j'aime pas la photo // Si connecté if (isset($_SESSION['login'])) { // SELECT : correspondance login = iduser $login = $_SESSION['login']; $sql4 = "SELECT iduser FROM user WHERE username='".$login."'"; $req4 = mysql_query($sql4) or die('Erreur SQL !<br>'.$sql4.'<br>'.mysql_error()); $data4 = mysql_fetch_assoc($req4); // SELECT : 0/1 <=> j'aime pas/j'aime $sql5 = "SELECT i_like FROM opinion WHERE id_Image='".$id."' and id_User='".$data4['iduser']."'"; $req5 = mysql_query($sql5) or die('Erreur SQL !<br>'.$sql5.'<br>'.mysql_error()); $data5 = mysql_fetch_assoc($req5); // Si null if ($data5['i_like'] == null) { echo '<button class="like" type="submit" title="Click here to like this" name="like">'; if (isset($_POST['like'])) { $sql6 = "INSERT INTO opinion VALUES ('".$data4['iduser']."', '".$id."', 1)"; $req6 = mysql_query($sql6) or die('Erreur SQL !<br>'.$sql6.'<br>'.mysql_error()); header("Refresh:0"); } } // Si 0 if ($data5['i_like'] == 0 and $data5['i_like'] != null) { echo '<button class="like" type="submit" title="Click here to like this" name="like">'; if (isset($_POST['like'])) { $sql7 = "UPDATE opinion SET i_like=1 WHERE id_User='".$data4['iduser']."' AND id_Image='".$id."'"; $req7 = mysql_query($sql7) or die('Erreur SQL !<br>'.$sql7.'<br>'.mysql_error()); header("Refresh:0"); } } //Si 1 if ($data5['i_like'] == 1) { echo '<button class="unlike" type="submit" title="Click here to unlike this" name="like">'; if (isset($_POST['like'])) { $sql7 = "UPDATE opinion SET i_like=0 WHERE id_User='".$data4['iduser']."' AND id_Image='".$id."'"; $req7 = mysql_query($sql7) or die('Erreur SQL !<br>'.$sql7.'<br>'.mysql_error()); header("Refresh:0"); } } } // Si non connecté else echo '<button disabled="disabled" class="like" title="Login ou register to like this">'; echo '</button>'; echo '</form>'; // Fin formulaire j'aime/j'aime pas
Partager