Il y a un problème avec les variables de session dans mon application Web. J'ai plusieurs types de documents, lorsque l'utilisateur veut l'éditer, il appuie sur un bouton et php record nombre de document à $ _SESSION ['brevet_number'] via la méthode GET. Tout va bien lors du lancement de l'application. Je l'ai testé avec 2 documents avec 2 numéros différents. Au début tout fonctionne bien, mais alors il semble que la variable de session ne soit pas changée et je vois le document avec un autre nombre.Bogue de variable de session php
Lorsque cliquez sur le bouton « Modifier » utilisateur, il envoie un numéro de document à patent_load.php, et il est toujours le chargement correct:
var patent_number=$(this).val();
$('#user_input_text').load('pages/patent/patent_load.php?section=patent_claims&patent_number='+patent_number);
Mais quand je clique à la section du document à partir du menu, il apparaît vieux numéro de session:
$('#user_input_text').load('pages/patent/patent_load.php?section=patent_claims');
Voici une patent_load.php:
session_start();
session_regenerate_id();
if (isset($_SESSION['id'])){
$db=new mysqli('X','X','X','X');
$db->set_charset("utf8");
$section=$_GET['section'];
if(isset($_GET['patent_number'])){
$number=$_GET['patent_number'];
$_SESSION['patent_number']=$number;
echo 'get is set';
}
$patent_number=$_SESSION['patent_number'];
$query="select $section from new_patent_document where patent_number='$patent_number'";
$result=$db->query($query);
$row=$result->fetch_assoc();
echo $patent_number.', ';
echo $row[$section];
Tous idées comment puis-je le résoudre et pourquoi la variable de session n'est pas mise à jour. Merci d'avance.
Votre code est très vulnérable à l'injection SQL! Jetez un oeil à PHPs [PDO] (http://php.net/pdo) et ses déclarations préparées. – jwueller
@elusive Merci pour votre commentaire. Quand je résous ce problème, je vais mettre en œuvre des déclarations préparées – dsplatonov
Que voulez-vous dire par, "il semble vieux numéro de session". Est-ce que ça se règle une fois et plus jamais? Toujours afficher le précédent pour corriger id? Et faites-vous référence au numéro de brevet du numéro de SESSION actuel? –