IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Session non fonctionnelle entre 2 hébergements en php 5.2.17


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Session non fonctionnelle entre 2 hébergements en php 5.2.17
    Bonjour à tous,

    Je développe un petit ERP en PHP pour gérer la compatibilité d'une petite entreprise.
    Tout fonctionne très bien mais depuis le changement de mon ordinateur (passage d'un Mac Pro à un Macbook Air), je n'arrive plus à faire fonctionner mon application via MAMP.

    Je l'ai donc installé sur un hébergement (chez Infomaniak) d'un ami qui la teste, et là, pas de problèmes. Ensuite, j'ai installé l'application chez un autre hébergement (Gandi, simple hosting) et bingo, cela ne fonctionne pas non plus.

    J'ai soupçonné dans un premier temps la version PHP utilisée par les hébergeurs. Infomaniak est en 5.2.17, comme la version utilisée sous MAMP, alors que Gandi simple host fonctionne sous 5.4.4-2.

    Le problème se situe au niveau du login dans mon application. J'ai structuré comme suit:

    Un fichier login.php ouvre la base de données et exécute la fonction session_start();

    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
    	if($_SERVER["REQUEST_METHOD"] == "POST")
    	{
    		// username and password sent from Form 
    		$myusername=$_POST['username']; 
    		$mypassword=md5($_POST['password']);
    		$sql="SELECT * FROM gc_users WHERE code='$myusername' and password='$mypassword'";
    		$result=mysql_query($sql);
    		$row=mysql_fetch_array($result);
    		$user_id=$row['id'];
    		$countrow=mysql_num_rows($result);
     
     
    		// If result matched $myusername and $mypassword, table row must be 1 row
    		if($countrow==1)
    		{
    			session_register("myusername");
    			$_SESSION['login_user']=$myusername;
    			$_SESSION['user_id']=$user_id;
     
    			redirect("modules/home/home_managment.php");
    		}
    		else 
    		{
    			echo "Votre code utilisateur ou votre mot de passe est invalide";
    		}
    	}
    Quand l'utilisateur est connu, il y a donc une redirection vers une page home_managment.php

    Cette page construit la page html:

    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
    <?php
     
    	// Load general screen elements
    	include("../../header.php");
     
    	// Call specific screen elements for cash journal
    	include("home_subnav.php");
     
    	// Load general screen elements
    	include("../../nav.php");
    ?>
     
    <div id="contentfull">
    	<p align="center"><img src="../../../images/home.png"></p>
    </div>
     
    <?php 
    	// Call footer element
    	include("../../footer.php");
    ?>
    Et c'est dans le fichier header.php que cela se situe

    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
    	session_start();
    	$user_check=$_SESSION['login_user'];
    	$ses_sql=mysql_query("SELECT j.code, j.lastname, j.firstname, j.id, j.conto, j.bic, j.car, j.cv, j.co2, j.fuelid, s.label FROM gc_users as j, gc_fueltypes as s WHERE code='$user_check' AND (j.fuelid=s.id)");
    	$row=mysql_fetch_array($ses_sql);
    	$user_loginid=$row['id'];
    	$login_session=$row['code'];
    	$lastname=$row['lastname'];
    	$firstname=$row['firstname'];
    	$conto=$row['conto'];
    	$bic=$row['bic'];
    	$car=$row['car'];
    	$cv=$row['cv'];
    	$co2=$row['co2'];
    	$fuel=$row['label'];
     
    	if(!isset($login_session))
    	{
    		redirect("../../login.php");
    	}?>
    Je ne pense pas que cela soit un problème de programmation car cela fonctionne chez Infomaniak, surtout que j'utilise la même version de PHP en local qu'infomaniak.

    Quels sont les paramètres que je dois comparer entre les différentes versions avec le phpinfo()?

    Quand je regarde les différences entre les deux, il n'y a que 2 paramètres différents:

    Registered serializer handlers: php php_binary wddx chez infomaniak
    Registered serializer handlers: php php_binary sur MAMP.

    Je vous remercie d'avance pour vos réponses

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Personne?

  3. #3
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    essaie de voir si tu ne dois pas crée un session_path un répertoire pour stocker les sessions sur lequel le démon php a des droits d'écriture comme chez free...

    http://php.net/manual/en/function.session-save-path.php
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mars 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mars 2012
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Pourtant, quand je tente la connexion en local (avec MAMP sous OSX), 3 fichiers sont créés à chaque tentative de connexion. 2 vides et un contenant ceci:

    myusername|s:3:"didier";login_user|R:1;user_id|s:1:"1";

    J'aimerai d'abord pouvoir l'utiliser en local...

    Une idée?

Discussions similaires

  1. [PHP 5.3] récupération $_files non fonctionnel avec jquery php
    Par Sniperwolf38 dans le forum Langage
    Réponses: 3
    Dernier message: 18/06/2013, 12h01
  2. [Wamp] PHP non fonctionnel
    Par Zippo94 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 09/04/2009, 18h25
  3. Zend_Layout : PHP non interpreté entre "<?=" et "?>"
    Par supertino7 dans le forum Autres composants
    Réponses: 1
    Dernier message: 22/02/2009, 07h41
  4. Réponses: 5
    Dernier message: 10/05/2007, 11h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo