Php4 au php5

Dynamic88
Invité n'ayant pas de compte PHPfrance

04 mai 2012, 09:21

Bonjour,

Je me présente je m'appelle Sébastien et je suis étudiant en deuxième année de DUT INFO, je suis actuellement en stage en entreprise pour valider mon année.
Cependant j'ai un gros point faible... C'est le php... Et le site sur lequel je dois travailler est en php...

On m'a demander de transférer le site (en php 4.3.2) sur un autre serveur (php 5.1.6).

Je pensais que ce serait simple... Et voilà, rien ne fonctionne, j'ai modifier correctement chaque lien, chaque connexion à la base de données et rien ne fonctionne...
Les liens ne fonctionnent pas on dirait... Je clique sur un lien, l'URL change et est correct mais rien ne s'affiche et aucune connexion avec la base de données n'est réalisée. Voilà deux semaines que je suis la-dessus... et je suis au pied du mur, je ne comprend pas pourquoi cela ne marche pas... Est-ce quelqu'un peut m'expliquer à quoi cela peut être due?

Merci d'avance.

ViPHP
xTG
ViPHP | 7331 Messages

04 mai 2012, 09:43

Je regarderais en priorité deux choses :
- les short tags => Il faut passer de <? à <?php
- les variables => au lieu de $var il faut utiliser $_POST['var'] ou bien $_GET['var'] ou $_SESSION['var'] et ainsi de suite

ViPHP
ViPHP | 2577 Messages

04 mai 2012, 10:03

Bonjour,

un error_reporting(E_ALL); en debut de script te permettait de voir les variables non initialisée et t'aiderai à corriger plus rapidement rapidement
(http://php.net/manual/fr/function.error-reporting.php)
Ca peut aussi se paramétrer dans php.ini.

Pour faire un portage PHP3 vers PHP4, je n'avais pas hésiter à prévoir un paramétrage de PHP avec la register_globals pour pouvoir utiliser $var de la même façon que _POST['var']. Il faut voir si c'est un portage ou une correction de faille potentiel : c'est pas le même prix. A ma décharge, client chiant et application écrite avec les pied.

Edit : Pour PHP 5.1, il doit être possible de mettre register_globals à on (je sais que c'est sale, mais à voir ce qui est souhaité)

Dynamic88
Invité n'ayant pas de compte PHPfrance

04 mai 2012, 11:42

Re,

Merci à vous pour vos réponses si rapides.

C'était bien une erreur provenant du GET['var'];
J'ai juste rajouter cette méthode sur ma page Index.php et tout re-fonctionnait correctement.
Je ne récupérait pas le contenu de ma variable $page (qui contient à chaque fois ma page).

Cependant, les connexions de bases de données ne fonctionnent pas elles... Est-ce que l'encodage peut être responsable de cela?

Car j'ai eu aussi des soucis d'encodage... (la nouvelle base de données m'oblige à utiliser l'UTF-8 alors que le code était complétement en ISO).

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 mai 2012, 16:29

Salut

Si tu a mis des accents dans les utilisateurs / mot de passé pourquoi pas mais si non y a pas de raison.

Quel sgbd utilisé tu et quel est le code qui pose problème ?
Y a t'il une erreur particulière ?

Un symptôme plus concret ? (la c'est trop vague ;) ).

@+
Il en faut peu pour être heureux ......

Dynamic88
Invité n'ayant pas de compte PHPfrance

07 mai 2012, 09:15

Non pas d'accent... Dans les mot de passe...

J'utilise mySql serveur (forcé en UTF-8) sur un serveur de l'université de Nancy-Metz.

La moindre petite connexion ne veut pas se faire (même quand il s'agit de récupérer simplement un nom dans une table).

L'ancien stagiaire à fait un système de connexion sur chaque page... en utilisant cette méthode :

mysql_connect("le_serveur","l'identifiant","le_mot_de_pass");
mysql_select_db("le_nom_de_la_bdd");

J'ai l'impression que c'est correct...

Merci d'avance

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

07 mai 2012, 20:48

La comme ça il a l'air, il faut vérifier les identifiants auprès du dba !

Si la connexion ne réussi pas il doit y avoir un message d'erreur c'est obligé. il faut voir si le repport d'erreur est a E_ALL| E_STRICT pour le développement.

Test le retour de la fonction mysql_connect() si c'est false affiche le résultat de mysql_error().

@+
Il en faut peu pour être heureux ......