Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL Webou Webou Pro
Recherche avancée  
*
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
18 Novembre 2017, 13:11:16


Connexion avec identifiant, mot de passe et durée de la session


Pages: [1]   Bas de page
  Imprimer  
Auteur Fil de discussion: Petit moteur de recherche interne en php  (Lu 4531 fois)
0 Membres et 1 Invité sur ce fil de discussion.
ventearticles
Nouveau
*
Hors ligne Hors ligne

Messages: 13


Voir le profil WWW
« le: 17 Mai 2010, 10:56:33 »

Bonjour à tous, je débute dans la programmation en php (pour l'instant, je ne fais que créer des programmes lus dans des livres de ce thème).

Ainsi, j'ai décidé de placer un petit moteur de recherche pour mon site dans le but de le rendre plus complet (http://www.ventearticles.webou.net).

Cependant, lorsque je le mets en ligne, j'ai cette erreur :

Fatal error: Call to undefined function teste() in /home/venteart/public_html/mrech.php on line 76

dans cette portion du code concernée:
//Examen des fichiers
foreach($fhtm as $fnam){
$fich=fopen($fnam, 'r');
$texte=strtoupper(fread($fich, 32000));
fclose($fich);
if (teste()){
   $page.='<a href="'.$fnam.'">'.$fnam.'</a>&nbsp;&nbsp;';
   }
}
echo $page. "\n</body></html>";

Bien entendu j'ai créé la fonction test(), mais dans un foum sur commentcamarche.com(http://www.commentcamarche.net/forum/affich-17713148-petit-moteur-de-recherche)
. Mais je n'ai pas trouvé de réponses satisfaisantes. F&acirc;ch&eacute;

On m'a dit qu'il faut la déclarer, or comme je débute, je ne sais pas trop comment faire, si ça se trouve  c'est tout simple.

Si quelqu'un peut m'aider. Merci. Sourire
Journalisée
Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« le: 17 Mai 2010, 10:56:33 »

 Journalisée
MrsB
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 1 133



Voir le profil
« Répondre #1 le: 17 Mai 2010, 12:45:53 »

Ben logiquement
(de préférence entre les 2 balises head de la page concernée)
function teste() {
code qui dit ce qu'elle fait
}

Mais je ne comprends pas ton if (teste()), donc je ne garantis pas que ça va marcher pour autant!!
Journalisée
leon59143
Sr. Member
****
Hors ligne Hors ligne

Messages: 269



Voir le profil
« Répondre #2 le: 17 Mai 2010, 12:59:29 »

Bonjour,

peux tu nous donner ta fonction teste() stp?

@MrsB : le if(teste()) renvoie un booléen. Soit true soit false. Donc lorsqu'apache arrive dans le if, il exécute la fonction teste(), si c'est true alors il rentre dans le if, sinon, il passe au else s'il y en a un.
Journalisée

Aucun support par mp ne sera traité.

Vouloir faire de belles phrases, c'est bien! Mais être compréhensible, c'est beaucoup mieux. 
MrsB
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 1 133



Voir le profil
« Répondre #3 le: 17 Mai 2010, 13:05:34 »

Sans dec'? Grima&ccedil;ant

Ce qui m'inquiète, c'est l'appel brutal de fonction dans un if sans param a priori. Et rien ne garantit que c'est bien un booleen qui doit sortir...

Ca peut passer, ça dépend du reste du script.
Maintenant, passer sur le bon objet, j'en mettrais pas ma main au feu.
Journalisée
Bouyachaka
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 31


Voir le profil WWW
« Répondre #4 le: 17 Mai 2010, 13:25:16 »

Fatal error: Call to undefined function teste() in /home/venteart/public_html/mrech.php on line 76

Bien entendu j'ai créé la fonction test()

Si t'as fait la même faute dans ton code elle est là l'erreur parce que là ton code ne trouve pas la fonction teste().  Roulement des yeux
Journalisée

Forums Webou.net - Hébergement gratuit et sans publicités avec PHP/MySQL
« Répondre #4 le: 17 Mai 2010, 13:25:16 »

 Journalisée
MrsB
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 1 133



Voir le profil
« Répondre #5 le: 17 Mai 2010, 13:36:09 »

Madre de Dios faut que j'apprenne à lire!!!
 Grima&ccedil;ant Grima&ccedil;ant Grima&ccedil;ant
Journalisée
leon59143
Sr. Member
****
Hors ligne Hors ligne

Messages: 269



Voir le profil
« Répondre #6 le: 17 Mai 2010, 14:47:42 »

Fatal error: Call to undefined function teste() in /home/venteart/public_html/mrech.php on line 76

Bien entendu j'ai créé la fonction test()

j'avais vu mais je me suis laissé dire qu'il avait fait une faute de frappe lors du post sur le forum. Apres, c'est sur que s'il a reproduit  la même erreur, alors plus besoin de chercher. ^^

@MrsB : d'après ta réaction, ( "sans dec') j'en conclus que tu avais compris. Alors qu'es ce qui te gene? if(isset....) ou if(mail...)  sont des fonctions courantes que tu as sûrement déja rencontrées et qui fonctionnent sur le même principe, alors je ne vois pas ou est le probleme.

Si t'as fait la même faute dans ton code elle est là l'erreur parce que là ton code ne trouve pas la fonction teste().  Roulement des yeux

Edit MrsB: j'y peux quoi si, quand je digère, quand on me cause php je comprends javascript? Tu verras un peu quand tu seras du 3ème âge!!!
« Dernière édition: 17 Mai 2010, 20:17:06 par MrsB » Journalisée

Aucun support par mp ne sera traité.

Vouloir faire de belles phrases, c'est bien! Mais être compréhensible, c'est beaucoup mieux. 
ventearticles
Nouveau
*
Hors ligne Hors ligne

Messages: 13


Voir le profil WWW
« Répondre #7 le: 17 Mai 2010, 17:52:30 »

Voilà ma fonction test():

function test() {
   global $texte, $l1, $l2, $l3, $l4;
   $sat1=true;
   $sat2=true;
   if ($l1 != ' ' && strpos ($texte, $l1)===false) {$sat1=false;}
   if ($l2 != ' ' && strpos ($texte, $l2)===false) {$sat1=false;}
   if ($l1 == ' ' &&$l2 == ' ') {$sat1=false;}
   if ($l3 != ' ' && strpos ($texte, $l3)===false) {$sat2=false;}
   if ($l4 != ' ' && strpos ($texte, $l4)===false) {$sat2=false;}
   if ($l3 == ' ' &&$l4 == ' ') {$sat2=false;}
   return $sat1 || $sat2;
   }
Journalisée
ventearticles
Nouveau
*
Hors ligne Hors ligne

Messages: 13


Voir le profil WWW
« Répondre #8 le: 17 Mai 2010, 18:04:36 »

Je me suis rendu compte que j'avais mis teste() au lieu test(). Cependant j'ai toujours des messages qui se répètes :

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 14

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 15

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 17

Warning: strpos() [function.strpos]: Empty delimiter in /home/venteart/public_html/mrech.php on line 18
Journalisée
leon59143
Sr. Member
****
Hors ligne Hors ligne

Messages: 269



Voir le profil
« Répondre #9 le: 17 Mai 2010, 18:59:59 »

on pourrait avoir le contenu de ta page stp. Car la, ca va ere difficile de t'aider
Journalisée

Aucun support par mp ne sera traité.

Vouloir faire de belles phrases, c'est bien! Mais être compréhensible, c'est beaucoup mieux. 
Bouyachaka
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 31


Voir le profil WWW
« Répondre #10 le: 17 Mai 2010, 19:51:47 »

Empty delimiter à mon avis t'as oublié une parenthèse, un crochet ou un guillemet quelque part.
Journalisée

MrsB
Staff Webou.net
*****
Hors ligne Hors ligne

Messages: 1 133



Voir le profil
« Répondre #11 le: 17 Mai 2010, 20:08:22 »

Poor lay zanglay:
http://www.webmasterworld.com/php/3782096.htm
En clair pour cette erreur: strpos reçoit une chaîne vide donc il râle en warning.

Vu ton code et les répétitions des lignes des warnings, je pense que $l1, $l2, $l3, $l4 sont vides.

En fait les tests $l1 != ' ', $l2 != ' ' etc (qui sont là pour éviter le warning strpos)  ne fonctionnent pas.

C'est probablement parce que tu as ajouté un espace entre ' et '
Essaie de mettre "" à la place de ' '

Si ça ne marche pas:
Vu ton code
//Recuperation des locutions à chercher
$l1 = strtoupper (stripslashes($_POST['l1']));
$l2 = strtoupper (stripslashes($_POST['l2']));
$l3 = strtoupper (stripslashes($_POST['l3']));
$l4 = strtoupper (stripslashes($_POST['l4']));

pour l'instant je vois 2 possibilités:
-les champs sont vides en l1,l2,l3,l4 dans le formulaire
ou
-tu ne récupères pas les données du formulaire
(et là peut y avoir 50000 raisons)

il faudrait donc tester si quand tu colles une valeur même débile en force ($l1='a', $l2='b', etc) tu as toujours les warnings.
« Dernière édition: 17 Mai 2010, 20:38:41 par MrsB » Journalisée
ventearticles
Nouveau
*
Hors ligne Hors ligne

Messages: 13


Voir le profil WWW
« Répondre #12 le: 20 Mai 2010, 18:14:19 »

En effet, j'ai supprimer les espaces entre les '. Je ne savais pas que ça aurait autant d'importances Souriant!
Maintenant, je n'ai plus de messages d'erreur.

Merci beaucoup!
Journalisée
jom006
Nouveau
*
Hors ligne Hors ligne

Messages: 49


Yo !


Voir le profil WWW
« Répondre #13 le: 20 Mai 2010, 20:14:19 »

Bonjour,
Content que ton problème soit résolus ^^
Chaque petit caractère a son importance dans le web même un espace qui est invisible " " car si on regarde la table ASCII on constate qu'il son propre code, par exemple son code decimale est 32, tu peut l'essayer en restant appuyer sur ALT dans ton clavier et tape 32 au coté numérique, ça va te faire un espace =)

lien vers table ASCII : http://www.asciitable.com/

Cordialement,
Jom006.
Journalisée
Pages: [1]   Haut de page
  Imprimer  
 
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Dilber MC Theme by HarzeM
Page générée en 0.027 secondes avec 21 requêtes.