Poblème de sessions sur serveur mutualisé OVH

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Poblème de sessions sur serveur mutualisé OVH

par ceddric » 23 mai 2008, 11:37

EUUh oaui alors comment faire pour qu'une session de ce perde pas au bout de quelque page, car ca me fait plaisir de voir que je suis pas le seul dans ce cas!!!z toute vos idées ca serai cool
Merci :)

par lux » 23 mai 2008, 09:37

Hello. Moi j'ai remarqué un truc chez OVH, car je perdais des Sessions en cours de route ... évite de donner le même non à tes variables :
$pseudo = $_POST['pseudo']; 
$_SESSION['pseudo'] = $pseudo;
$pseudo = $_SESSION['pseudo']; 
Ce genre de truc me fait perdre mes sessions après 2-3 pages, aléatoirement, chez OVH. Donc appelle les $session1,$session2, etc... ça peut jouer, mais ça peut être qqch de totalement autre. J'ai pas vraiment réussi à déterminer d'ou venait le bug, et de temps en temps on me signale une perte de session, sans que je puisse le reproduire ... :x

par ceddric » 22 mai 2008, 22:07

oui bien sur session_start(); est au début de ma page je comprend pas c'est la premiere fois que ca me fait ca!!! arfff

par animithra » 22 mai 2008, 20:55

Re-bonsoir.

Pour info cela ne vient pas de chez ovh, je le sais puisque j'héberge mon site chez eux et que les sessions fonctionnent correctement.

Question stupide (mais utile on ne sait jamais) dans ta page de connexion, tu as bien un "session_start()" rassure-moi ?

Parce que dans le cas contraire la session n'est pas transmise/initialisée, et il sera alors logique que la variable de session ne contienne rien...

par ceddric » 22 mai 2008, 20:47

Je suis d'accord mon if n'est pas fermé car c'est une portion du code normalement il est fermé.
Pourqoi est ce que ca marche sur tous les serveur cette histoir de session ainsi que en local mais pas sur OVH comment ca ce fait qui ya t'il dans mon code qui ne va pas voici le programme qui initialise la session.

Code : Tout sélectionner

mysql_connect($sql_serveur, $sql_login, $sql_pass) or die("erreur de connexion au serveur $host"); $db_link = @mysql_connect($sql_serveur, $sql_login, $sql_pass); if(!$db_link) {echo ""; exit;} //Si des valeurs sont envoyées if (isset($_POST['pseudo']) AND isset($_POST['mot_de_passe'])) { //On réupère les infos postées par le formulaire sous forme de variables $pseudo = ($_POST['pseudo']); $mot_de_passe = ($_POST['mot_de_passe']); // On vérifie si le mot de passe correspond au pseudo $requete=mysql_db_query($sql_bdd,"select * from finance_membres_fc where nom=\"$pseudo\" and pass=\"$mot_de_passe\"",$db_link) or die(mysql_error()); //Si la requête est nulle, on affiche une erreur if(mysql_num_rows($requete)==0) { $ok= "<center><span class='erreur orange Style45'><b>Login et/ou Mot de passe invalide</b></span></center>"; } else //Si la requeête est correcte, on attribue une session et on redirige vers la zone membre { $ok= "<center><span class='erreur orange Style45'><b>Chargement en cours...</b></span><center>"; $_SESSION['pseudo'] = $pseudo;

par animithra » 22 mai 2008, 15:46

Bonjour.

Tout d'abord je note au passage que ton if ne semble pas fermé...

Pour le reste, premier problème, tu fais un if(isset(...)) or isset teste si la session existe mais pas si elle est vide.
Je te conseille de remplacer par if(!empty(...)) (qui retourne false si elle n'existe pas ou si elle est vide et true si elle existe et est non vide).

Normalement la condition ne sera pas vérifiée et si tel est le cas je t'invite à vérifier le script qui initialise la variable $_SESSION['pseudo'].

Bonne progra !

Poblème de sessions sur serveur mutualisé OVH

par CEDDRIC » 22 mai 2008, 14:40

Bonjour, voici mon problème qui ce passe sur ovh, par sur les autre serveurs, ni en local avec easy php.
Je me connecte via un formulaire qui me redirige sur une page admin donc j'attribu une sessions et grace a cette session je peut prendre les éléments de l'utilisateurs dans ma base de donnée. De la page admin quand je veut allez dans une autre pas avec ovh en récupérant toujours ma sessions ca ne fontionne plus donc erreur sql obligé car la session est perdu. On m'a dit que mon code étai obselète et avec des failles de sécurité pouvez vous m'aider.
Merci

Voici le code que je met au début de chaque page.

Code : Tout sélectionner

<? session_start(); require("infos_bdd.php"); if(isset($_SESSION['pseudo'])) { //On récupère la variable pseudo issue de la session $pseudo = $_SESSION['pseudo']; // CONNEXION MYSQL $db_link = @mysql_connect($sql_serveur, $sql_login, $sql_pass); if(!$db_link) {echo "Connexion impossible à la base de données <b>$sql_bdd</b> sur le serveur <b>$sql_server</b><br>Vérifiez les paramètres du fichier infos_bdd.php"; exit;} // On selectionne tous les champs de SQL concernant le pseudo $requete=mysql_db_query($sql_bdd,"select * from finance_membres_fc where nom=\"$pseudo\"",$db_link) or die(mysql_error()); $id=mysql_result($requete,0,"id"); $cabinet=mysql_result($requete,0,"cabinet"); ?>
Et donc voisi l'érreur sql normal car la variable pseudo qui vient de la sessions n'existe plus! Pourqoi???

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 5 in /home.10.29/financec/www/inc/membres_fc.php on line 16

Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 5 in /home.10.29/financec/www/inc/membres_fc.php on line 17