2017-08-13 17 views
0

J'ai un formulaire de recherche, qui redirige vers le résultat. Si cette page n'existe pas, je veux afficher une erreur 404. Comment puis je faire ça?Barre de recherche en HTML

Mon code

<center> 
    <input name="txtSearch" maxlength="12" size="25" type="text" class="field" id="txtSearch" /> 
    <div>&nbsp;</div> 

    <div class="button" style="display:inline-block"> 
     <a onclick='window.location.href="" + document.getElementById("txtSearch").value;'> 
      Submit 
     </a> 
    </div> 
</center> 
+0

Quel cadre utilisez-vous? –

+0

Je ne suis pas.en utilisant. Je n'ai encore qu'un solide passé. –

+0

https://stackoverflow.com/questions/14421303/php-nearest-string-comparison Voici une solution pour comparer la chaîne la plus proche, vous pouvez créer un tableau de noms pour les fichiers que vous avez et la faire défiler. – 3gth

Répondre

0

Tout d'abord, il semble, qu'il ya des points forts qui sont mal dans votre idée et peut-être la compréhension de la recherche. Comme le montre votre message et votre code, vous autorisez uniquement les utilisateurs à rechercher des éléments spécifiques. Corrigez-moi, si je me trompe et que votre code fonctionne d'une autre manière, mais ..

Imaginez ceci: un garçon de 10 ans du Kenya finit sur votre site - comment est-il censé savoir quel contenu votre site contient? Ou s'il le fait, comment va-t-il essayer de le trouver? Yup, il utilise la recherche. Le premier coup, il obtient, est un 404, parce qu'il a cherché quelque chose qui n'existe pas, et ne sait pas que votre site ne permet que de rechercher des choses spécifiques, qui existent. Il quitte votre site, incapable de trouver le contenu qu'il voulait.

Ce n'est pas une fonction de recherche. La recherche devrait vous permettre de rechercher tout, afficher une liste de tous les résultats possibles, et une erreur polie si aucun n'est trouvé - certainement pas reditecter à une page spécifique immédiatement - à la place, une page générique pour toutes les recherches, ou servir un 404 si page super-spécifique n'existe pas.

Je vous recommande de regarder dans Algolia ou d'autres produits similaires pour faciliter la recherche.

Pour résoudre votre problème mais ... la question de (s),

  1. Vous avez un guillemet manquant à la déclaration de classe du bouton div. Éditera le Q pour corriger cela.
  2. Vous avez vraiment, vraiment besoin d'utiliser indendation. Cela rendra votre code beaucoup plus facile à lire et plus attrayant pour les autres. Je vais modifier cela aussi.
  3. Ce dont vous avez besoin, c'est un fichier .htaccess dans votre racine de projet, avec une page 404 définie, au minimum. Quelque chose comme ceci, édité, pour adapter votre chemin et nom de page d'erreur 404. Vous allez concevoir et développer votre page 404 comme n'importe quelle autre page. ALL de vos pages manquantes, donc style et construisez son contenu de manière appropriée (voir pourquoi une page de résultats de recherche est mieux, maintenant?).

    ErrorDocument 404 /404.html

  4. Si vous arrive d'utiliser nginx au lieu de apache, faire la place dans votre configuration du serveur:

    error_page 404 /404.html;

  5. Sinon, vous pouvez créer une forme autour de la recherche, et envoyer la chaîne de requête (qui est un mot fantaisiste pour la chaîne recherchée par l'utilisateur) à un de vos scripts PHP, qui pourrait déterminer s'il y a des résultats à afficher ou non et afficher un contenu approprié - encore une fois, cela pourrait aussi être fait Algolia ou similaire - ju st analyser et nourrir votre contenu sous une forme appropriée.