Messieurs Bonjour,
Desole pour le titre mais honnetement, l'inspiration n'etait pas au rendez-vous.
Voici mon souci.
Je boss un site web qui est bien avance, mais la je reprend un point que j'avais laisse de cote.
Le site contient une page php affichant une fiche article en fonction de l'ID de celui-ci.
Les donnees sont stockees dans une base Mysql
Au debut, je stockais cet ID a l'ouverture de la page dans une varriable $_SESSION['ACTUAL_ARTICLE_ID'], dans le but d'executer des requettes via un script du genre :
qui appel Article.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 if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("article_content").innerHTML=xmlhttp.responseText; } } xmlhttp.open("POST","article.php",true); xmlhttp.send();
Le souci avec cela est que si j'ouvre dans un nouvel onglet un nouvel article, la variable $_SESSION['ACTUAL_ARTICLE_ID'] est reecrite, donc si je fais un refresh du premier onglet, le navigateur affiche alors l'article du nouvel onglet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?php ... $req_select = "SELECT * FROM ".$dbname.".Articles_table where id= ".$_SESSION['ACTUAL_ARTICLE_ID'].""; ... ?>
J'espere que je me suis bien exprime.
Donc pour palier temporairement et avancer sur mon dev, j'ai mis de coter la variable de $_SESSION et utilise un hidden input :
que je passe en paramettre via jquery
Code : Sélectionner tout - Visualiser dans une fenêtre à part <input id="article_id" type="hidden" name="article" value="xxxx" />
Article.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 if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("article_content").innerHTML=xmlhttp.responseText; } } xmlhttp.open("POST","article.php?id="+$("#article_id").val(),true); xmlhttp.send();
Bon cela marche nickel, mais l'utilisateur peux changer l'id manuellement depuis le code source de la page et pour quelques raison qui sont pas utiles de develloper, sa me derange.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <?php if(isset($_GET)){ $id=mysql_real_escape_string($_GET["id"]); ... $req_select = "SELECT * FROM ".$dbname.".Articles_table where id= ".$id.""; ... ?>
Aurriez vous une solution, une idee pour pouvoir acceder et utiliser cet ID dans article.php autrement ?
Merci







Répondre avec citation









Partager