Moteur de recherche
jypy
-
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!!!!
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!!!!
A voir également:
- Moteur de recherche
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Google moteur de recherche page d'accueil - Guide
- Copernic moteur de recherche - Télécharger - Navigateurs
- Copernic Desktop Search - Télécharger - Utilitaires
- Recherche de pairs utorrent ✓ - Forum Téléchargement
1 réponse
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!!!!!!!!
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!!!!!!!!