[API] Super newbie

  • Auteur de la discussion Auteur de la discussion metisaz
  • Date de début Date de début
WRInaute discret
Salut,

Grand débutant en php, on m'a conseillé d'installer l'Api de Google pour pouvoir disposer d'un moteur de recherche interne. Ben je suis toujours pas au bout de mes peines ! lol

J'ai obtenu ma clé, téléchargé le dossier zipé "googleapi" (pas réussi à l'utiliser), essayé le tuto du JDN mais je galère vraiment !

Pouvez-vous m'apporter votre aide svp.

J'ai mis sur mon serveur Free, au même niveau que l'index.html, le fichier googlesearch.php (j'ai mis une clé factice pour l'exemple) suivant.
<html>
<body>
<?php
if (!isset($recherche) || $recherche=="")
{
?>
<form method="post" action="<?=$PHP_SELF ?>">
Entrez vos mots-clés:<br>
<input type="text" name="recherche">
<input type="submit" name="Submit" value="Envoyer">
</form>
<?php
}
else
{
?>
<form method="post" action="<?=$PHP_SELF ?>">
Entrez vos mots-clés:<br>
<input type="text" name="recherche" value="<?=$recherche;?>">
<input type="submit" name="Submit" value="Envoyer">
</form>
<?php
include("nusoap.php");

$soapclient = new soapclient("http://api.google.com/search/beta2");

$params = array(
'key' => 'fsKk6kpQFHI9/HhZaDCuiGO+Y9k87896',
'q' => $recherche,
'start' => 0,
'maxResults' => 10,
'filter' => true,
'restrict' => '',
'safeSearch' => true,
'lr' => 'lang_en|lang_fr',
'ie' => '', 'oe' => ''
);

$result = $soapclient->call("doGoogleSearch", $params, "urn:GoogleSearch", "urn:GoogleSearch");

if ($result['faultstring'])
{
?>Erreur: <?=$result['faultstring'];?><?
}
elseif ($result['estimatedTotalResultsCount'] == 0)
{
?>Votre recherche n'a pas donné de résultat.<?
}
else
{
?><hr>
Votre recherche sur <b><?=utf8_decode($result['searchQuery']);?></b> a renvoyé environ <?=$result['estimatedTotalResultsCount']?> résultats.<br>
<?
if (is_array($result['resultElements']))
{
foreach ($result['resultElements'] as $r)
{
?>
<p><a href="<?=$r['URL'];?>"><?=utf8_decode($r['title']);?></a>
<br><?=utf8_decode($r['snippet']);?> (<?=$r['cachedSize'];?>)<p>
<?
}
}
}
}
?>
</body>
</html>

Ma page html se trouve ici
 
WRInaute discret
Voilà, j'ai modifié mes deux fichiers.

Dans mon fichier html j'ai ça, je pense que c'est pas bon, mais ne sait pas corriger :
<div class="frame-d"><form method="post" action=" Undefined variable: $_SERVER['REQUEST_URI']http://formagreuh.free.fr/googlesearch.php">
Entrez vos mots-clés:<br>
<input type="text" name="recherche">
<input type="submit" name="Submit" value="Envoyer">
</form></div>
 
WRInaute impliqué
metisaz a dit:
Voilà, j'ai modifié mes deux fichiers.

Dans mon fichier html j'ai ça, je pense que c'est pas bon, mais ne sait pas corriger :
<div class="frame-d"><form method="post" action=" Undefined variable: $_SERVER['REQUEST_URI']http://formagreuh.free.fr/googlesearch.php">
Entrez vos mots-clés:<br>
<input type="text" name="recherche">
<input type="submit" name="Submit" value="Envoyer">
</form></div>

<div class="frame-d"><form method="post" action="http://formagreuh.free.fr/googlesearch.php">
Entrez vos mots-clés:<br>
<input type="text" name="recherche">
<input type="submit" name="Submit" value="Envoyer">
</form></div>

Ca ira mieux. :wink:
 
WRInaute discret
Merci haderach, c'est fait (ça commence à ressembler à quelque chose lol).

Warning: main(nusoap.php): failed to open stream: No such file or directory in /var/www/free.fr/c/e/formagreuh/googlesearch.php on line 23

Warning: main(): Failed opening 'nusoap.php' for inclusion (include_path='/var/www/free.fr/c/e/formagreuh/include:.') in /var/www/free.fr/c/e/formagreuh/googlesearch.php on line 23

Fatal error: Cannot instantiate non-existent class: soapclient in /var/www/free.fr/c/e/formagreuh/googlesearch.php on line 25

Bon, il me manque encore des trucs visiblement.

  • Me faut-il copier des fichiers du dossier "googleapi" sur mon serveur ?
    Quelles modifications apporter sur mon fichier googlesearch.php ?
 
WRInaute discret
Ouais, ben j'ai bien regardé dans le dossier googleapi et si j'ai un sous-répertoire "soap-samples", je n'ai pas le fameux nusoap.php. C'est normal ? Ou le trouver ? Thanx.
 
WRInaute discret
(suis content, ça prend forme...)

Placé nusoap.php.

Le moteur de recherche ne porte pas sur les mots présents dans mon site. Je me doute bien qu'il faut le temps que Google indexe mes pages, cependant Google me sort des résultats qui sont loin d'être ceux d'une recherche interne.

Que modifier pour que Google ne recherche que sur mon site ?

Je pensais avoir à utiliser le dossier googleapi . Il ne m'est pas utile ?
 
WRInaute impliqué
Au lieu de rechercher tes mots clés simplement il faut ajouter en début de chaine site:www.tonsite.com mot1 mot2 etc...

Toi tu passes à l'api
mot1 mot2

il faut lui passer

site:www.tonsite.com mot1 mot2
 
WRInaute discret
Merci de ces indications mais j'avoue que je ne comprends pas bien hélas.

J'ai bien pigé qu'il fallait que je spécifie l'adresse de mon site, mais je ne trouve pas le "début de chaîne". Sur quel fichier le trouver (googlesearch.php je pense) ? A quel endroit exactement placer l'adresse du site concerné ?
 
WRInaute discret
Cool, je pense que ça fonctionne. Cependant, peux-tu me confirmer que le moteur ne "fonctionnera" qu'une fois mes pages indexées ?
 
WRInaute discret
Bon, et bien mes pages semblent indexées par Google (quand je fais une recherche sur Google, il me trouve bien le site), cependant le moteur de recherche interne ne trouve aucun résultats.

Pourquoi ?

Le site est là.
 
WRInaute discret
Et bien le moteur marche... mais pas sur les bonnes pages : il ne me sort que des résultats présents sur webrankinfo.com. Publicité déguisée ? :lol:

Pouvez-vous me dire ou ais-je commis mon erreur svp ?
 
WRInaute discret
Je pète les plombs : je parcours mes fichiers (nusoap.php et googlesearch.php) je trouve pas mon erreur, pourtant je suis sûr qu'elle est énorme !

Un extrait de la page appelée.

<html>
<body>
<?php
if (!isset($recherche) || $recherche=="")
{
?>
<form method="post" action="<?=$_SERVER['REQUEST_URI']?>">
Entrez vos mots-clés:<br>
<input type="text" name="recherche">
<input type="submit" name="Submit">
</form>
<?php
}
else
{
?>
<form method="post" action="<?=$_SERVER['REQUEST_URI']?>">
Entrez vos mots-clés:<br>
<input type="text" name="recherche" value="<?=$recherche;?>">
<input type="submit" name="Submit" value="Envoyer">
</form>
<?php
include("nusoap.php");

$recherche = "http://formagreuh.free.fr/ ".$recherche."";

$soapclient = new soapclient("http://api.google.com/search/beta2");

$params = array(

Help svp ! :cry:
 
WRInaute impliqué
$recherche = "http://formagreuh.free.fr/ ".$recherche."";

$soapclient = new soapclient("http://api.google.com/search/beta2");

Il faut remplacer la ligne $recherche="http etc..." par

$recherche = "site:http://formagreuh.free.fr/ ".$recherche."";

:wink:
 
WRInaute discret
Impec', c'est ça !

Le moteur fonctionne, cependant j'ai de gros soucis en ce qui concerne les accents qui ne sont pas retranscrit sur la page de résultat.

Second problème, j'aimerai que la recherche puisse bénéficier d'une certaine tolérance, notamment entre l'orthographe du mot-clé utilisé et le mot dans le corps de texte, exemples : "renovation" --- trouve ---> "rénovation" ou "habita" ---trouve---> "habitat".

Je crois que des fichiers présents dans le dossier Google api servent à résoudre ce genre de problème... si vous pouviez m'aider ?

Merci encore :wink:
 
WRInaute discret
Ben, je veux bien le laisser faire, mais le problème c'est qu'il ne fait rien ! Essaye les exemples cités plus haut dans Google et essaye les dans l'Api, le résultat n'est pas le même.

Comment faire en sorte que l'Api se comporte véritablement comme Google ?
 
Discussions similaires
Haut