Inclure le résultat d'une recherche google

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inclure le résultat d'une recherche google

par Pieterjan » 01 nov. 2005, 13:55

houla..
Il faut vraiment arrêter de penser "frames" mon gars..dis-toi bien que tu as une seule et unique page html, dont le contenu peut varier certes, mais ça reste une seule page html.. en fait, c'est plus proche des tableaux. Tu peux mettre ce que tu veux dans les tableaux, mais les tableaux font partie d'une seule et même page.. à mon avis, une bonne séance d'introduction au php ferais un grand bien :?

Tu dis:
les résultats vont s'afficher, mais vont utiliser les styles contenus dans conteneur.php
Ca c'est vrai ça., sauf si les styles sont définis dans les balises elles-mêmes. (et elles semblent l'être, vu que désactiver css sur google ne change quasi rien)
ça peut être considéré comme utilisation non autorisée d'un code (même si celui de google est téléchargeable, j'utilise d'autres sites de recherche depuis ma page et j'ai aucune idée des droits, je sais juste qu'on peut y accéder gratuitement mais PAS le code), ce qui n'est pas le cas avec une frame vu que c'est pareil que si j'allais directement sur le site, c'est une redirection.
Mouais, dans les deux cas, tu affiches google dans ta page (le html, c'est pas vraiment le code, c'est plutôt le résultat généré)
Etant une inclusion de code, ça m'étonnerait que je puisse changer l'URL de la barre d'adresse, sauf peut-être grâce à la variable $url.
Non. Je vais faire un petit exemple de ce qu'on peut faire, pour montrer que les frames, ça na rien avoir:
Quelques fichiers:

index.php
<?
$title="bonjour";
include "./head.php";

echo '
<style type="text/css">
@import "style.css";
</style>
';

if (!isset($_POST['hl']))
{
      $q=urlencode($_POST['q']);
      $url="http://www.google.be/search?hl=".$_POST['hl']."&q=".$q;
      echo '<span style="display:blink; font-size:36pt; color:yellow;">'.$url.'</span>';
      include $url;
} else 
include "./form.php";
}

echo "</body></html>";
?>
head.php
<?
$debut ='<html><head><title>';
$fin = '</title></head><body>';
echo $debut.$title.$fin;
?>
form.php

Code : Tout sélectionner

<form action=page.php method=post> <input type="text" name="q"> <input type="hidden" name="hl" value="fr"> <input type="submit" value="Rechercher" name="btng"> </form>
Et voila, un site qui marche !
Je sais pas pourquoi j'ai fais ça, mais bon, c'est pour montrer que ca n'as rien avoir avec des frames, et que donc des "target", y'en a pas, et y'a pas raison qu'il y en aie.

Pour ce qui est de l'image du haut, vu qu'il n'y en faut qu'une, qui ne doit pas se répéter, pourquoi se casser le cul a le faire afficher en css ? un simple <img> serait bien plus simple. Et nenni, pas besoin de faire un include la..tss tss. (visiblement une overdose de frames..)

Parler de "pseudo-frames" ne fait qu'accentuer l'embrouille...
j'espère que je fais un peu avancer le schmilblick la..

par johnjohn » 01 nov. 2005, 05:49

Bonsoir, voici la suite de mes tests :

j'ai finalement décidé de tester avec le PHP. En fait, j'ai essayé (en vain apparement) d'utiliser les pseudo-frame pour répondre à mon problème :

Mon idée générale (ça se trouve c'est possible mais je m'y prends mal) :

Soit conteneur.php constitué de 3 div.

Code : Tout sélectionner

#haut { height:99px; width:100%; background-image:url('green_haut.png'); background-repeat:no-repeat; } #centre { height:398px; width:100%; background-image:url('green_centre.png'); background-repeat:no-repeat; overflow:auto; } #bas { height:271px; width:100%; background-image:url('green_bas.png'); background-repeat:no-repeat; }
Haut est juste une image qui serait toujours affichée en haut de la page
Centre serait mon contenu changeant
Bas contient une image en fond et un menu de recherche constitué d'inputs, lists, radiobox...

Comme je l'ai dit, j'ai utilisé les pseudo-frame pour le haut et le bas, afin qu'ils soient toujours visibles.

Par contre, quand on me conseille d'utiliser le PHP pour inclure la page de résultat, je bloque : en effet, si j'ai bien compris, PHP n'inclue pas réellement la page, mais le code lui-même.
Or, des problèmes de logique se posent :
  1. les résultats vont s'afficher, mais vont utiliser les styles contenus dans conteneur.php
  2. ça peut être considéré comme utilisation non autorisée d'un code (même si celui de google est téléchargeable, j'utilise d'autres sites de recherche depuis ma page et j'ai aucune idée des droits, je sais juste qu'on peut y accéder gratuitement mais PAS le code), ce qui n'est pas le cas avec une frame vu que c'est pareil que si j'allais directement sur le site, c'est une redirection.
  3. Etant une inclusion de code, ça m'étonnerait que je puisse changer l'URL de la barre d'adresse, sauf peut-être grâce à la variable $url.
En résumé : je veux bien utiliser PHP pour faire mes pseudo-frames, ça fera plus "récent" mais je pense qu'il faut combiner avec des inputs HTML + javascript basiques, avec l'attribut target="_top" ou _parent, et faire en sorte que ces pseudo-frames s'affichent en permanence.

Autre question, sans rapport avec ce problème mais à propos des pseudo-frames :
j'ai bien suivi les tutoriaux, et j'ai enlevé toute trace de balises <html>, <head>..., des pages incluses. Or, seul ma pseudo frame du bas contient du code : toutes les inputs, select...
J'ai donc utilisé :
	<div id="bas">
		<?php
			include('php_bas.php');
		?>
	</div>

Qu'en est-il de mon image du haut, étant donné que l'url de l'image est déjà définie dans l'id #haut ?
	<div id="haut">
		<?php
			include('php_haut.htm'); 
		?>
	</div>
Bien sûr php_haut.htm est vide... Faut-il obligatoirement utiliser une page vide à inclure afin de conserver cette image à l'écran en permanence ?

Rahhh j'imagine que vous n'avez pas compris grand chose à ce que je veux, mais que voulez-vous, mon esprit est embrouillé mais j'ai la sensation d'être proche...

Bon, résumé de ma dernière idée :
une page conteneur.php qui peut être changée grâce à target et qui ne représenterait en fait que le milieu de l'écran. On inclue en haut et en bas les pseudo-frame...

Dur......................................................................

:?

par Johnjohn » 31 oct. 2005, 16:37

J'avais pas vu le problème sous cet angle. Ca pourrait être une solution, mais l'URL de la barre d'adresse, c'est pas aussi une variable ? j'ai cherché cherché mais je m'embrouille dans les window.document.location.href etc...

alt + D c'est tellement pratique en plus ^^

par Pieterjan » 31 oct. 2005, 14:16

hé ben ! que vive le php ! vu que tu as une variable avec l'url ($url, celui de recherche google, si je te suis bien) de ce qui s'affiche au milieu, tu fais ce que tu veux , tu peux l'afficher partout dans la page, en grand en petit en mauve et en rouge, inclure un bouton qui l'envoie direct a tous tes amis, l'enregistrer automatiquement dans tes favoris, l'enregistrer dans une base de données, l'imprimer direct, tout !
Tu rajoutes un "echo $url;" quelque part, et hop, la vie elle est belle.. tu peux même le faire dans un span, comme ça tu le mets en police 24 en jaune clair qui clignote (css: display:blink;) :D

Bienvenue dans le monde puissant du php !

C'est bien ça non ? juste récuperer l'adresse de la page affichée ?

par alexbad » 31 oct. 2005, 03:51

Oui t'as raison... commence à être temps que j'aille faire dodo :roll: Et en passant, tu pourrais te créer un compte au lieu de poster toujours en invité :wink:

par Invité » 31 oct. 2005, 03:48

L'url est l'url de la page qui est affichée. La seule façon de la changer (nan, serieu, y'a moyen, mais bon, autant dire qu'il n'y en a pas) c'est de changer de page...D'ailleurs tu ne nous a toujours pas dit pourquoi, pour quelles raisons et a quelle finalité tu veux changer l'url...
Le problème est cité là, je répondais à son pourquoi.

par alexbad » 31 oct. 2005, 03:36

Désolé, tu as été très clair mais je vois pas de question dans ton message :P

par johnjohn » 31 oct. 2005, 03:31

Bissoir

Ben pour des raisons simples :

- Savoir où je suis

- Mettre la page en marque-page (favori quoi)

- Copier coller l'URL pour filer à qqun

Ma page de démarrage, stockée en local (ou sur un serveur si j'utilise le PHP, mais j'hésite encore car je n'en ressens pas le besoin, le PHP ne répondant apparement pas à mon dernier problème assez génant; ma page de <frame> fonctionne parfaitement et je n'ai pas à me soucier de référencement ou quoi que ce soit, vu que c'est une page à utilisation personnelle), est sensée me faire gagner du temps. Sous sa mouture actuelle, elle remplit parfaitement son rôle sauf le point important qu'est le changement de l'url. J'avais en effet une ancienne version, qui chargeait les pages de résultats en utilisant le target="_top". Or, j'ai trouvé qu'avoir mes inputs de recherche toujours visibles et utilisables était un gros plus de "productivité" dans l'utilisation d'Internet.

J'espère avoir été plus clair !

par Pieterjan » 30 oct. 2005, 22:59

Oki oki, merci !

Un truc que je ne comprends pas : mon form initial utilise la méthode GET, pourquoi utiliser un POST désormais ?

et pourquoi vérifier que h1 existe ? je l'avais viré du code et ça marchait nickel

dernière question : ça va changer l'URL de ma barre d'adresse ou po ? car c'est vraiment ça que je recherche, car mes frames faisaient le même boulot que le code que vous m'avez donné mais mon seul problème était l'URL qui ne change pas

voili, j'espère que vous m'avez compris :shock:
Pour le POST ou GET, le code d'alexbad contient un formulaire qui envoye les données en POST, c'est donc comme ça qu'ils sont récupérés, changes si tu veux. Comme tu le vois, il sont transférés à Google en GET (à travers l'url).

Et puis, il faut se dire que des frames, y'en a pas. je sais pas qui a inventé cette appellation, mais ça n'a rien avoir. Ce que font les include, c'est INCLURE des données DANS la page html (donc en fait ce script inclut une page html entière au beau milieu d'une autre. C'est pas sexy, mais mieux que rien). L'url est et sera toujours celle de ta page php.

L'url est l'url de la page qui est affichée. La seule façon de la changer (nan, serieu, y'a moyen, mais bon, autant dire qu'il n'y en a pas) c'est de changer de page...D'ailleurs tu ne nous a toujours pas dit pourquoi, pour quelles raisons et a quelle finalité tu veux changer l'url...

par alexbad » 30 oct. 2005, 18:57

Faut s'adapter au code de google. Eux, si h1 existe pas, pas de recherche. Par contre, pour la méthode, je suis pas certain... tu vas sur google.com, tu fais afficher la source et tu vérifies.

par johnjohn » 30 oct. 2005, 16:09

Oki oki, merci !

Un truc que je ne comprends pas : mon form initial utilise la méthode GET, pourquoi utiliser un POST désormais ?

et pourquoi vérifier que h1 existe ? je l'avais viré du code et ça marchait nickel

dernière question : ça va changer l'URL de ma barre d'adresse ou po ? car c'est vraiment ça que je recherche, car mes frames faisaient le même boulot que le code que vous m'avez donné mais mon seul problème était l'URL qui ne change pas

voili, j'espère que vous m'avez compris :shock:

par Pieterjan » 29 oct. 2005, 22:24

Il veut utiliser PHP, il l'a dit lui-même.
En modifiant un peu le code d'alexbad, voici un truc qui marche.
<form action=page.php method=post>
   <input type="text" name="q">
   <input type="hidden" name="hl" value="fr">
   <input type="submit" value="Rechercher" name="btng">

</form>
<? 
if (isset($_POST['hl']))
{
      $q=urlencode($_POST['q']);
      $url="http://www.google.be/search?hl=".$_POST['hl']."&q=".$q;
      include $url;
}
?>
Alors pour t'expliquer un peu johnjohn, on vérifie si des valeurs ont étée "postées", ensuite on récupère la requete, on la met sous la forme qu'il faut, on construit une requete tel que google pourra l'interpreter (en gros, on lui fait croire qu'une requête a été formulée sur la page principale) et pour finir, on inclut la page de résultats de google dans la page, direct dedans. tu peux aussi choisir d'enregistrer la page entière dans une variable, pour l'utiliser plus tard. (avec file_get_contents).

par alexbad » 29 oct. 2005, 21:16

Dans ce cas tu as raison mais n'empêche qu'il devrait s'équiper parce qu'un site ne vie pas qu'en local et des frames sur le web, c'est pas très bien vu.

par Xenon_54 » 29 oct. 2005, 21:15

Oui car il ne nécessite pas de serveur Web ni PHP.

Et comme il semble être qq'un qui veut simplement avoir une page de recherche en local :roll:

par alexbad » 29 oct. 2005, 19:15

C'est mon genre d'erreur... J'ai corrigé. Et ton code Xenon_54, tu le trouves vraiment plus simple que l'include des résultats?