Aucun script moteur de recherche PHP ne marche !! - PHP - Programmation
Marsh Posté le 24-12-2011 à 14:19:09
Si j'ai pas mis les scripts c'est que je pense que le problème ne vient pas d'eux étant donné qu'il y a le même problème pour les deux..
Marsh Posté le 24-12-2011 à 14:37:59
tu ne mets ni les sciprts, ni ton code pour les intégrer, ni la base de données, ni même le nom des scripts utilisés, ni une page accessible en ligne pour tester
Marsh Posté le 24-12-2011 à 14:49:39
Désolé voici alors quand même le code de index.php où est situé le moteur de recherche (2ieme script testé) :j'ai juste modifié les variables, changer recherche.php3 et copier dans index.php, ajouté des includes et j'obtiens toujours : "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !"
<?
/******************************************************************
* VARIABLES A MODIFIER
******************************************************************/
// NOMBRE DE RESULTATS PAR PAGE
$limit=2;
// NOM DE CE SCRIPT
$script_name="index.php";
// SERVEUR SQL
$sql_serveur="mysql51-31.pro";
// LOGIN SQL
$sql_user="Confidentiel";
// MOT DE PASSE SQL
$sql_passwd="Confidentiel";
// BASE DE DONNEE
$sql_bdd="confidentiel";
// RECHERCHE AVEC TOUS LES MOTS : METTEZ "and"
// RECHERCHER LES PAGES QUI CONTIENNENT AU MOINS UN MOT : METTEZ "or"
$et_ou="or";
include("head.html" ); //header html
include("menu-index.html" ); //header html
include("debut-contenu.html" ); //header html
$fichier_courant = substr($_SERVER['PHP_SELF'],0,strrpos($_SERVER['PHP_SELF'],'.'));
$name_cookie = $fichier_courant == '/index' ? $_SERVER['SERVER_NAME'] : $fichier_courant;
if(isset($_COOKIE[$name_cookie]))
{
$cookie_affiche_div = (get_magic_quotes_gpc())? stripslashes($_COOKIE[$name_cookie]) : $_COOKIE[$name_cookie];
$tab_affiche_div = unserialize($cookie_affiche_div);
}
?>
<div id="div_A" class="explica"><p onclick = "ShowDiv('div_A')" class="fermer">X</p>
Texte d'introduction
</div>
<form action="index.php" method="POST">
<div style="width:244px;">
<input type="text" class="multiSelect" onFocus="this.style.backgroundColor='#F9F9F9'" onBlur="this.style.backgroundColor='#FFF'" size="20" name="mot">
<input type="submit" class="valider" name="valider" value="OK">
</div>
</form>
<div style="clear:both;"> </div>
<?
/******************************************************************
* PROGRAMME PRINCIPAL
******************************************************************/
$db_link = mysql_connect("$sql_serveur","$sql_user","$sql_passwd" );
$mot=strtolower($mot);
$mots=split(" ",$mot);
$nombre_mots=count($mots);
$z=1;
$texte="Pages contenant <b>"$mots[0]"</b>";
$phrase="'%$mots[0]%'";
while($z<$nombre_mots)
{
$phrase.=" ".$et_ou." mots like '%$mots[$z]%'";
$texte.=" ";
if($et_ou=="and" ){$texte.="et";}else{$texte.="ou";}
$texte.=" <b>"$mots[$z]"</b>";
$z++;
}
if($debut=="" ){$debut=0;}
$debut=$page*$limit;
// NOMBRE TOTAL D'ENREGISTREMENTS REPONDANT A LA REQUETE
$requete=mysql_db_query("$sql_bdd","select count(*) from recherche where mots like $phrase order by id",$db_link);
$nb_total=mysql_result($requete,0,"count(*)" );
$requete=mysql_db_query("$sql_bdd","select * from recherche where mots like $phrase limit $debut,$limit",$db_link);
$num=mysql_num_rows($requete);
// DEFINITION DU MESSAGE A AFFICHER
if ($num==0) {echo "Désolé, aucune page de ce site ne contient <b>$mot</b>...";}
else if ($mot=="" ) {echo "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !";}
else if (strlen($mot)<2) {echo "Veuillez saisir au moins 2 caractères.";}
// AFFICHAGE DES RESULTATS
else {
echo "<b>$nb_total</b> réponse";
if ($nb_total>1) {echo "s";}
echo "<br>$texte";
$i=0;
while($i<$num)
{
$url=mysql_result($requete,$i,"url" );
$description=mysql_result($requete,$i,"description" );
$titre=mysql_result($requete,$i,"titre" );
echo "<br><br><a href=\"$url\"><b>$titre</b></a><br>$description<br><font size=1>$url</font>\n";
$i++;
}
echo "<br><br>";
// AFFICHAGE DU LIEN PRECEDENT SI BESOIN EST
// (LA PREMIERE PAGES EST 0)
if ($page>0)
{
$precedent=$page-1;
print "<a href=\"$script_name?page=$precedent&mot=$mot\">PRECEDENT</a> \n";
}
// AFFICHAGE DES NUMEROS DE PAGE
$i=0;$j=1;
if($nb_total>$limit)
{
while($i<($nb_total/$limit))
{
if($i!=$page){echo "(<a href=\"$script_name?page=$i&mot=$mot\">$j</a> ) ";}
else {echo "<b>($j)</b> ";}
$i++;$j++;
}
}
// AFFICHAGE DU LIEN SUIVANT SI BESOIN EST
if($debut+$limit<$nb_total)
{
$suivant=$page+1;
echo "<a href=\"$script_name?page=$suivant&mot=$mot\">SUIVANT</a>";
}
}
// DECONNEXION DE LA BASE DE DONNEE
mysql_close($db_link);
include("pied-index.html" );
?>
Marsh Posté le 24-12-2011 à 17:40:20
Après avoir posté ce problème sur de nombreux forums j'ai trouvé moi même la solution sur un forum, j'ai ajouté :
Code :
|
Source : http://forum.phpfrance.com/php-deb [...] ml#p254858
Marsh Posté le 26-12-2011 à 20:36:35
ton problème venait surement des register_globals qui étaient à "on" avant et ton hébergeur les a passé à "off" ou c'est lorsque ton hébergeur a mis à jour une version de PHP sur ton hébergement et par défaut maintenant les register_globals sont à off
Ce qui prouve que tes scripts php étaient assez dégueulasses.
Marsh Posté le 24-12-2011 à 13:57:05
Bonjour !
J'ai essayé deux scripts de moteur de recherche php liée à une table de ma base de donnée
Mais avec ces deux scripts quand j'entre un mot clé (présent dans la table) rien ne se passe,
J'ai toujours le "Veuillez saisir un ou plusieurs mot-clés avant de cliquer sur 'OK' !" ou autre message pour l'autre script comme si je n'avais entré aucun mot clé !
Cela fait 1 semaine que je cherche à localiser le problème mais RIEN !
Est-ce un problème de liaison avec la base, d'OVH etc ?
Merci d'avance !!
Configuration :
Mac Mini
avec OSX Lion, Mamp, Fraise, Filezilla
Chez OVH