Bonjour à tous,
sachez tout d'abord que mes compétences en php sont très maigres et que je dois pourtant relancer un site php\mysql qui a soudainement cessé de fonctionné...
J'ai lu de nombreux post, tutoriaux et autres morceaux de codes et je dois dire que le mystère s'épaissie encore d'avantage pour moi!
Le site à brusquement cessé de fonctionner correctement en pleine journée, alors que personne n'a modifié son code depuis des années.
Son principe est de récupérer le username windows de l'utilisateur et d'aller le comparer à des table de la base mysql : il affiche alors tous les enregistrements où le "userid" correspond au "username" windows.
Or brusquement, sans changement (à priori) côté serveur, cette comparaison ne fonctionne plus.
En ajoutant des "echo" un peu partout pour débugger j'ai compris que le problème venais du fait que le site ne parvenait plus à récupéré l'identifiant windows du client connecté, et donc la requête ne renvoient rien.
Voilà comment le code débute :
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <?php session_start(); include ("database.php"); if (isset($_SESSION["UserName"])) { $UserName = $_SESSION["UserName"]; ..... ?>
$_SESSION["UserName"] n'étant initialisé nul part j'en ai conclu qu'il s'agissait de la fonction "session_start()" qui récupérait les infos de session de l'utilisateur, dont le "USERNAME".
Mais php étant interprété côté serveur, d'après ce que j'ai lu sur le net il n'a jamais été capable de faire ça! Pourtant, ce site a fonctionné!
Or auncun appel à aucune fonctionne autre que php: javascript ou vb...
Cependant je trouve un autre fichier, appelé par : xmlhttp.open("GET", "/ajax/savesession.php?Value="+Value,true); .
savesession.php:
Code PHP : 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 <?php session_start(); sleep(2); $QueryString = $_GET["Value"]; $Values = split("\|",$QueryString); $UserName = $Values[0]; $Seed = $Values[1]; if ( $Seed == $_SESSION["Seed"] ) { $_SESSION["UserName"] = $UserName; echo "Ok!"; } else echo "nOK"; $_SESSION["Seed"] = NULL; ?>
C'est manifestement ici que ce fait l'initialisation réelle de la variable : $_SESSION["UserName"] .Problème : si j'ajoute des echo à ce code :
echo $UserName; ou $_SESSION["UserName"] je n'obtient rien...
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $_SESSION["UserName"] = $UserName; echo "Ok!";
je me rend compte que dès ce moment $UserName est vide (mais le "OK!" s'affiche...)
Je me demande donc pourquoi cette remontée d'identifiant windows ne fonctionnent plus tout à coup!
Vos idées sont les bienvenues, d'avance merci!
(PS: j'espère avoir été intélligible...)
Partager