Passage de php3 à php5

Fermé
Linux67 Messages postés 307 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 7 juillet 2012 - 21 mai 2007 à 14:47
 drimann - 5 févr. 2010 à 10:54
Bonjour,

je suis actuellement en stage de fin d'étude, et une de mes tâches consiste en la migration de l'intranet d'un server Linux en php3 vers un server Windows 2003 avec php5.

La plus grande partie est transférée et le code est adapté, mais j'ai quelques pages qui me posent problème.

Voilà le code de l'une d'elle :

<html>
<head><title>Editer un plan</title></head>

<body>
<center>
<img src="images/editer.jpg" ></center>
<div align="left">
<blockquote><blockquote><blockquote><blockquote><blockquote><blockquote>
<?php
     $host="127.0.0.1:3306";
     $user="root";
     $passwd="***";

     mysql_connect($host,$user,$passwd);
     mysql_select_db("intranet");

  //--------//
 //Page n°1//
//--------//

$page = null;
$num = null;
$name = null;
$ressort = null;

if($page=="")
{

    if($num!="")
    {
    $result=mysql_query("SELECT * FROM caracteristique WHERE caracteristique.num=".$num);
    $name=mysql_fetch_array($result);
     }

    echo "<font face='arial' size=1>";
    echo "<form action='editer.php'>Numéro du ressort : <br>\r";
    echo "<input size=15 value='".$ressort."' type='text' name='ressort'><br><br>\r";
    echo "Designation : <br><textarea name='designation' cols='40' rows='3' wrap='VIRTUAL' style='width: 300px'>".$name['designation']."</textarea><br><br>\r";

    if($valide='O'){
        echo "Valide : <br><input type='radio' value='O' checked name='valide'>oui&nbsp;<input type='radio' value='N' name='valide'>non<br><br>\r";
          }else{
                echo "Valide : <br><input type='radio' value='O' name='valide'>oui&nbsp;<input type='radio' value='N' checked name='valide'>non<br><br>\r";
                }
    echo "Date de création : <br><input type='date' value='".$name['creation']."' name='creation' > (Au format AAAA-MM-JJ)<br><br>\r";
    echo "Auteur : <br><input type='text' value='".$name['auteur']."' name='auteur' ><br><br>\r";

    echo "Fichier : <br>\r";
    echo "<input type=radio checked  value=0 name='fichier'>\r";
    echo "<input type=text size=40 name='chemin' value='".$name['chemin']."'><br>\r";
    echo "<input type=radio value=1 name='fichier'>\r";
    echo "<input type=file size='40' name='chemin1'><br><br><br>\r";

    echo "<input type='submit' value='enregistrer' action='editer.php'><br>\r";
    echo "<br><i>Tous les champs doivent être remplis</i>\r";
    echo "<input type='hidden' name='page' value='1'></form></font>\r";

}

  //--------//
 //Page n°2//
//--------//

if($page=="1")
{

     $result=strtok($ressort,".");
     $part['typeplan']=$result;
     $result=strtok(".");
     $part['typemachine']=$result;
     $result=strtok(".");
     $part['type3']=$result;
     $result=strtok(".");
     $part['numordre']=$result;


     if($fichier==1)
     {
      $chemin=$chemin1;
      }

     $result=mysql_query("SELECT num FROM numeroplan WHERE numtypeplan='".$part['typeplan']."' AND typemachine='".$part['typemachine']."' AND type3='".$part['type3']."' AND numordre='".$part['numordre']."' ORDER BY num");
     $name=mysql_fetch_array($result);

     mysql_query("UPDATE caracteristique SET designation='".$designation."' , valide='".$valide."' , auteur='".$auteur."' , creation='".$creation."' , chemin='".$chemin."' WHERE num=".$name['num']);

     echo "<center><h2><font face='Arial'>Les informations ont été enregistré dans la base de donnée</font></h2></center>";
}

     echo "</blockquote></blockquote></blockquote></blockquote></blockquote></blockquote></div><center>\r";

$result=mysql_query("SELECT lnk,img,alt FROM lnkimg WHERE lnkimg.type='bouton' AND lnkimg.page='editer'");
$fields=mysql_num_fields($result);
$rows=mysql_num_rows($result);

while ($name=mysql_fetch_array($result))
{
        echo "<a href=".$name['lnk']." >\r";
        echo "<img border='0' src='images/".$name['img']."' alt='".$name['alt']."' width='146' height='146'>\r";
        echo "</a>&nbsp;&nbsp;&nbsp;&nbsp;\r";
}



?>
</center>
</body>

</html>



Mon problème est le suivant, sur le server Linux cette page m'affiche des zones de texte à remplir en fonction de numéros de plans de fabrication de pièces. Ensuite il me suffit de cliquer sur "enregistrer" pour que ces modifications soient prises en compte.


Mais ce code que j'ai tenté d'adapter de php3 à php5 ne me permet pas d'enregistrer les modifications, la page est simplement réinitialisée.

J'ai encore d'autres pages avec un problème similaire, mais j'éspère que lorsque j'aurai compris comment corriger ce code le reste suivra ;-)

Est-ce quelqu'un a une idée pour adapter ce code correctement pour qu'il tourne sous php5 ?

Merci d'avance.

6 réponses

fras34 Messages postés 92 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 27 mai 2007 36
21 mai 2007 à 17:07
surment un pb de register_globals non ?
à On ds le php.ini du php3 (conf par defaut)
à Off ds php.ini de php5 (conf par defaut)

fais un phpinfo() pour verifier sur les 2 servers

Non ?
0
Linux67 Messages postés 307 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 7 juillet 2012 123
21 mai 2007 à 17:11
Là je suis chez moi, je vais voir ça demain matin.

Mais si je ne me plante pas, j'ai repris le php.ini qui tournait sur l'ancien server avec php3 et j'ai fait quelques modifications pour le rendre compatible sur le nouveau server avec php5.

En tous cas merci pour cette piste, je vais vérifier ça et tenir tout la communauté informée ^^
0
fras34 Messages postés 92 Date d'inscription mardi 19 avril 2005 Statut Membre Dernière intervention 27 mai 2007 36
21 mai 2007 à 17:19
Visiblement si le script n'enregistre pas les modifs, c'est qu'il ne reçoit pas les données.

fais un print_r($_POST)
pour voir
0
Linux67 Messages postés 307 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 7 juillet 2012 123
22 mai 2007 à 08:53
Je viens de vérifer les register_globals et tu avais vu juste, il était bien à On dans le php.ini du php3 et Off dans celui du php5.

Ce qui est bizarre c'est la suite, tout est géré dans le même fichier "editer.php", aucune donnée n'est envoyée par la méthode POST.
Par contre elles s'inscrivent bien dans la barre d'URL (je sais que côté sécurité c'est pas top, mais ça reste en Intranet) , ça veut donc dire qu'elles sont envoyées je pense.

Alors je ne comprends pas pourquoi sous php3 tout fonctionnait correctement, et sous php5 il n'y a plus aucune réaction.
Il y a bien eu quelques modifications du code, mais uniquement des corrections de syntaxe sur des erreurs que php m'indiquait, il ne va quand même pas se saboter lui-même ^^
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Linux67 Messages postés 307 Date d'inscription lundi 21 mai 2007 Statut Membre Dernière intervention 7 juillet 2012 123
23 mai 2007 à 11:12
Quelqu'un aurait une solution à ce problème ?
J'ai passé quelques heures à faire des recherches et des essais, mais je n'ai aucun résultat pour le moment.
0
Bonjour,

Je sais que le tuto date de 2007, mais je voudrais savoir comment tu avais règlé ton problème? merci.
0