passage de PHP4 à PHP5: script ne fonctionne plus

Petit nouveau ! | 2 Messages

23 sept. 2009, 19:07

Bonjour,
J'ai un petit souci depuis que le serveur qui héberge mon site est passé en PHP5. Le script suivant qui sert à interroger une base mysql ne fonctionne plus. Est-ce que quelqu'un peut m'indiquer les éléments à modifier pour qu'il soit "PHP5 ready":
<?php

function clean($string)

{for($x=0;$x<strlen($string);$x++)

  {if ($string[$x]!=" "&&$string[$x]!=" "){$totale.=$string[$x];}

   }

 return $totale;

}



function clean2($string)

{$found=0;

for($x=0;$x<strlen($string);$x++)

  {if (($string[$x]!=" ")||($string[$x]!=" ")||($found==0))

	{

         $found=0;

	 $totale.=$string[$x];

	 if (($string==" ")||($string[$x]==" "))

	     {$found=1;}

        }

  }



 return($totale);



 }



$auteur=clean2($auteur);

$reference=clean2($reference);

$theme=clean2($theme);

$texte=clean2($texte);

include('connect.inc');

print('<HTML><HEAD><TITLE> Moteur de Recherche Textes Philo</TITLE></HEAD><BODY BGCOLOR="#FFFFFF">
<p ALIGN="center"><span class="titre2">Moteur de recherche de textes philosophiques</span><BR>
<p ALIGN="center"><span class="titrenoir">1117 textes disponibles dans la base</span></p><BR>
<span class="texte"><FORM ACTION="search.php" METHOD="GET"><TD>
<span class="texte"><p ALIGN="center"><b>Auteur : </b><INPUT TYPE="text" NAME="auteur" VALUE="'.$auteur.'"></span></TD></p><BR><TD>
<span class="texte"><p ALIGN="center"><b>Texte : </b><INPUT TYPE="text" NAME="texte" VALUE="'.$texte.'"></span></TD></p><BR><TD>
<span class="texte"><p ALIGN="center"><b>Référence : </b><INPUT TYPE="text" NAME="reference" VALUE="'.$reference.'"></span></TD></p><BR><TD>
<span class="texte"><p ALIGN="center"><b>Thème : </b><INPUT TYPE="text" NAME="theme" VALUE="'.$theme.'"></span></TD></span></TR></p><TR><BR>
<span class="texte"><p ALIGN="center"><b>Opérateur logique "et" :</b><INPUT TYPE="radio" NAME="et" value="on"</span>');

if ($et=="on")	

	 {print('');}

print('<BR><span class="texte"><p ALIGN="center"><b>Opérateur logique "ou" :</b><INPUT TYPE="radio" NAME="et" value="ou"</span>');

if ($et=="ou")

	{print('');}

print('<p align=center><BR><INPUT TYPE="submit" VALUE="Chercher !"></TD></FORM></TR><BR><BR></p>');

if (isset($auteur)||isset($texte)||isset($reference)||isset($theme))

 {

if ($auteur!="")

 {$tab=$tab=explode(' ',$auteur);

 $taille=$taille+count($tab);}

if ($texte!="")

 {$tab=$tab=explode(' ',$texte);

 $taille=$taille+count($tab);}

if ($reference!="")

 {$tab=$tab=explode(' ',$reference);

 $taille=$taille+count($tab);}

if ($theme!="")

 {$tab=$tab=explode(' ',$theme);

 $taille=$taille+count($tab);}







$dm=mysql_connect("sql.ac-grenoble.fr",$sqluser,$sqlpass) or die(mysql_error());

mysql_select_db("philo",$dm);

$result=mysql_query("SELECT*FROM textesphilo");

while($ligne=mysql_fetch_array($result))

{

 $x=0;

 if (clean($auteur)!="")

 {$tab=explode(' ',$auteur);

  for($t=0;$t<count($tab);$t++)

    {if (strtolower($tab[$t])!='')

	 {

     if(stristr(strtolower($ligne[auteur]),strtolower($tab[$t])))

      {$x++;}

         }

    }

  }

 if (clean($texte)!="")

 {$tab=explode(' ',$texte);

  for($t=0;$t<count($tab);$t++)

    {if (strtolower($tab[$t])!='')

	 {

	if(stristr(strtolower($ligne[texte]),strtolower($tab[$t])))

         {$x++;}

  	  }

    }

  }

 if (clean($reference)!="")

 {$tab=explode(' ',$reference);

  for($t=0;$t<count($tab);$t++)

    {if (strtolower($tab[$t])!='')

	 {

     if(stristr(strtolower($ligne[reference]),strtolower($tab[$t])))

      {$x++;}

	 }

     }

  }





 if (clean($theme)!="")

 {$tab=explode(' ',$theme);

  for($t=0;$t<count($tab);$t++)

    {if (strtolower($tab[$t])!='')

	 {

	if(stristr(strtolower($ligne[theme]),strtolower($tab[$t])))

          {$x++;}

	}

    }

  }

 $totale+=$x;





if ($x!=0)

 {$trb["$ligne[pos]"]=$x;

 $aut["$ligne[pos]"]=$ligne[auteur];

 $parttext["$ligne[pos]"]=substr($ligne[texte],0,400);

 }

}



if (($totale>0))

{

asort($trb);

$x=-1;

foreach($trb as $key=>$val)

 {$x++;

  $pert[$x]=$val;

  $lien[$x]=$key;

  $aute[$x]=$aut[$key];

  $tex[$x]=$parttext[$key];

 }

for($x=(count($pert)-1);$x>=0;$x=$x-2)

 {if ($et!="on"||$pert[$x]==$taille)

  {

  print('<p align=center><TABLE WIDTH="50%" BORDER=0><TR><TD><span class="sstitremarron"> Pertinence :'.$pert[$x].'</TD></span><TD ALIGN="right"><A HREF="view.php?ref='.$lien[$x].'">'.$aute[$x].'</A></TD></TR><TR><TD COLSPAN="2"><span class="texte">'.$tex[$x].'...</TD></span></TR></TABLE><BR></p>');

  }

 }

}



else

 {print('<P ALIGN="center"><span class="texte"><b> Aucun texte de la base de données ne correspond à votre requête</b></span></P>');}

}





print('<BR><p align=center><A HREF="http://www.ac-grenoble.fr/PhiloSophie"> Retour</A></BODY></HTML></p>');?>

Mammouth du PHP | 985 Messages

23 sept. 2009, 20:18

Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Petit nouveau ! | 2 Messages

23 sept. 2009, 23:16

Bonsoir,
j'ai bien suivi le lien indiqué, mais n'étant pas un spécialiste en PHP, je n'y entends à peu près rien...
J'aimerai simplement qu'on me dise ce qui coince dans ce script, qui a été écrit par un de mes élèves il y a quelques années et qui doit être corrigé pour fonctionner à nouveau. Je ne pense pas que les corrections à apporter soient importantes.
Merci d'avance pour ceux qui ferons l'effort de me donner un petit coup de pouce.
Cordialement

Mammouth du PHP | 2937 Messages

24 sept. 2009, 10:23

Est-ce que des messages d'erreurs sont affichés lorsque ce script tente de s'exécuter ?

Autre piste à explorer : insérer le code suivant
<?php phpinfo (INFO_MODULES); ?>
et vérifier si un tableau mysql est affiché ou pas.