Moteur de recherche

jypy -  
 jypy -
Bonjour,
salut a tous.j'ai fait un script de recherche que voici:

<?php
if(isset($_POST['mot']) && $_POST['mot'] != '')
{
require_once('connect_base.php');
/******************************************************************
* VARIABLES A MODIFIER
******************************************************************/

$limit=2;// NOMBRE DE RESULTATS PAR PAGE
$script_name="recherche.php";// NOM DE CE SCRIPT
$et_ou="or";// RECHERCHE AVEC TOUS LES MOTS : METTEZ "and"
// RECHERCHER LES PAGES QUI CONTIENNENT AU MOINS UN MOT : METTEZ "or"

/******************************************************************
* PROGRAMME PRINCIPAL
******************************************************************/
$mot=$_POST['mot'];
$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++;
}
$debut="";
$page="";
if($debut==""){$debut=0;}
$debut=$page*$limit;

// NOMBRE TOTAL D'ENREGISTREMENTS REPONDANT A LA REQUETE
$req1="select count(*) from recherche where mots like '$phrase' order by id" ;
$requete=mysql_query($req1);
$nb_total=mysql_result($requete,0,"count(*)");
//$nb_total=mysql_num_rows($requete); //$nb_total=mysql_result($requete,0,"count(*)");

$req2="select * from recherche where mots like $phrase limit $debut,$limit";
$requete=mysql_query($req2);
$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();
}
?>
********************************************************************************************
le probleme est que quand je teste ce programme il ne passe pas seulement qu'une page vide apparait.
alors est ce qu'il y une bonne ame qui peut m'aider??
merci d'avance!!!!
Configuration: Windows XP
Firefox 3.0.5

1 réponse

  1. jypy
     
    bonjour,
    voici un script pour etablir un forum sur mon site mais lorsque je le teste des messages d'erreur qui me sont incomprehensible s'affichent

    <?php
    session_start();
    if ((!isset($_SESSION['login'])) || ($_SESSION['login'] == ''))
    {
    // La variable $_SESSION['login'] n'existe pas, ou bien elle est vide
    // <=> la personne ne s'est PAS connectée
    echo '<p>Vous devez vous <a href="index.php">connecter</a>.</p>'."\n";
    exit();
    }
    ?>
    <?
    // On teste si on est en local ou non
    $isLocal = ($_SERVER["SERVER_NAME"]=="localhost");
    // === CONNEXION A LA BD ===
    // connexion
    mysql_connect($sql_serveur,$sql_user,$sql_passwd);
    mysql_select_db($sql_bdd);
    // === AJOUT DU MESSAGE EVENTUEL ===
    if(@$_POST['message']) 
    {
    // Requête d'insertion (ID sera mis à jour automatiquement)
    $SQL = "INSERT into forum_messages(quand,login,email,message,reponse)"
    ." VALUES(" . time()
    .",'".$_POST["login"]."'"
    .",'".$_POST["email"]."'"
    .",'".addslashes($_POST["message"])."'"
    .",'".$_POST["reponse"]."'"
    .")";
    mysql_query($SQL);

    // Réponse = n° auto si message initial
    if(!$_POST["reponse"]) 
    {
    $id = mysql_insert_id();
    mysql_query("UPDATE forum_messages"
    . " SET reponse=".$id." WHERE id=".$id);
    // Envoi de la réponse par email
    if(!$isLocal&&($_POST["reponse"]!="0")) 
    {
    // Gestionnaire ou répondeur du forum
    $from = "From: forum@asp-php.net";
    // Sujet du mail
    $sujet = "Reponse a votre message sur le forum";
    // Sélection des destinataires
    $SQL = "SELECT * FROM forum_messages WHERE reponse="
    . $_POST["reponse"]." ORDER BY id DESC";
    $res = mysql_query($SQL);
    // Ne pas envoyer à l'auteur de la réponse
    $temp=",".$_POST["email"].",";
    // Pour chaque adresse
    while($val=mysql_fetch_array($res)) 
    {
    // Déjà envoyé ?
    if(!strpos(" ".$temp,",".$val["email"].",")) 
    {
    // Corps du message
    $body = "Bonjour ".$val["login"].",\n\n"
    . "Un visiteur a repondu a votre message sur le forum :"
    . "\n".str_repeat("_",40)."\n"
    . $_POST["login"]." >> ".$_POST["message"]
    . "\n".str_repeat("_",40)."\n"
    . "\nen reponse a votre message du ".date("d/m/Y",$val["quand"])." :"
    . "\n".str_repeat("_",40)."\n"
    . $val["message"]
    . "\n".str_repeat("_",40)."\n"
    . "\nPour poursuivre la discussion, veuillez vous rendre a l'adresse\n"
    . "http://".$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]
    . "?post=".$_POST["reponse"]
    ."\n\nA bientot\n";
    // Envoi du mail
    mail($val["email"],$sujet,$body,$from);
    // mémorise l'adresse
    $temp .= $val["email"] . ",";
    }
    }
    }

    // Mémorisation des login/email dans un cookie
    setcookie("login",$_POST["login"],time()+30*24*3600);
    setcookie("email",$_POST["email"],time()+30*24*3600);
    mysql_close();
    Header("Location: index.php");
    }

    // === AFFICHAGE DE LA PAGE ===

    ?>

    *******************************************************************************************
    voici son formulaire:

    <table>
    <form method="post" action="forum.php" name="form1">
    <tr><td align="right">Login</td>
    <input name="login" maxlength="15" value="<?php echo @$_COOKIE['login'] ?>">
    </td><td rowspan="3">
    <textarea name="message" cols="60" rows="5"></textarea>
    </td>
    </tr><tr>
    <td align="right">Email</td><td>
    <input name="email" maxlength="50" value="<? echo @$_COOKIE["email"]?>">
    </td>
    </tr><tr>
    <td colspan="2" align="center">
    <input type="button" value="Nouveau sujet" onClick="repond(0)">
    <input type="hidden" name="reponse" value="0">

    </td>
    </tr>
    </form>
    </table>
    *******************************************************************************************
    alors j'ai besoin de votre aide pour me sortir de cette galere
    merci!!!!!!!!
    0