Question

Est-il possible de passer une variable de recherche dans le moteur Google Custom Search que j'ai embarqué sur mon site? Je peux obtenir le moteur de recherche de travail, mais je ne peux pas passer un terme via POST (il vient d'un bouton de recherche sur d'autres pages du site)

J'ai essayé de pirater le code que je trouve ici: http: //code.google.com/apis/ajax/playground/?exp=search#hello_world

Et voici ce que j'ai jusqu'à présent ... (q $ est le terme que je passe à lui)

<script type="text/javascript">
    google.load('search', '1', {language : 'en'});

    function OnLoad()
    {
        var customSearchControl = new google.search.CustomSearchControl('***my key****');
        customSearchControl.setResultSetSize(google.search.Search.FILTERED_CSE_RESULTSET);
        customSearchControl.draw('cse');
        searchControl.execute("$q");
    }
    google.setOnLoadCallback(OnLoad);
</script>   

Merci

Était-ce utile?

La solution

Désolé, je sais que c'est une réponse merdique, mais vous avez réellement obtenu ce droit en dehors de référencer le nom de la variable erronée. Oh, aussi, en aparté, j'espère aussi que vous faites une sorte de aseptisation sur $ q, au cas où quelqu'un a posté quelque chose comme ceci à votre formulaire: terme « ); alert ( » aha

    customSearchControl.draw('cse');
    searchControl.execute("$q");

devrait être:

    customSearchControl.draw('cse');
    customSearchControl.execute("$q");

En outre, je vous remercie de la question - je cherchais comment faire moi-même

Autres conseils

est d'aider toute personne qui utilise PHP en essayant de réaliser le même but. L'exemple ci-dessus utilise ...

customSearchControl.execute("$q");

pour lire le paramètre étant en passe. Sur un site de PHP que vous utilisez ...

customSearchControl.execute("<?php echo $_POST['your_paramter_name_here'];?>");

Vous pouvez utiliser $ _GET ou $ _REQUEST si votre paramètre est pas dans le message.

Bien sûr, vous devez devez désinfecter l'entrée en premier. Quelque chose comme ça est assez faible, mais il est un début ...

customSearchControl.execute("<?php echo htmlentities( trim( $_POST['your_paramter_name_here'] ), ENT_QUOTES );?>");

Dans le cas où une personne est à la recherche d'un peu plus droite solution avant / simple. Tout ce que vous avez à faire est de passer des mots-clés de recherche dans le paramètre GET nommé q (à partir de votre formulaire personnalisé dans la page où se trouve votre GCS), GCS utilisera automatiquement cette phrase de recherche.

Source: https://developers.google.com/custom- Recherche / JSON-api / v1 / using_rest

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top