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();
Quand l'utilisateur est connu, il y a donc une redirection vers une page home_managment.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
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"; } }
Cette page construit la page html:
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
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"); ?>
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.
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"); }?>
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
Partager