2017-08-13 2 views
0

Ich habe ein Suchformular, das das Ergebnis umleitet. Wenn diese Seite nicht existiert, möchte ich einen 404-Fehler anzeigen. Wie kann ich das machen?Suchleiste in HTML

Mein 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

Welche Rahmen verwenden Sie? –

+0

Ich bin nicht.verwenden. Ich habe nur einen soliden Hintergrund. –

+0

https://stackoverflow.com/questions/14421303/php-nearest-string-comparison Hier ist eine Lösung zum Vergleichen der nächsten übereinstimmenden Zeichenfolge Sie können ein Array von Namen für Dateien erstellen, die Sie haben und durchschleifen. – 3gth

Antwort

0

Erstens scheint es, dass es einige starke Punkte, die in Ihrer Idee falsch sind und möglicherweise zu verstehen suchen. Wie Ihr Beitrag und Code zeigt, erlauben Sie nur Benutzern, nach bestimmten Dingen zu suchen. Korrigieren Sie mich, wenn ich falsch liege und Ihr Code auf andere Weise funktioniert, aber ..

Stellen Sie sich vor: Ein 10-jähriger Junge aus Kenia landet auf Ihrer Website - wie soll er wissen, was für Inhalte Sie haben Website enthält? Oder wenn er es tut, wie wird er versuchen, es zu finden? Ja, er benutzt die Suche.

Der erste Schlag bekommt er, ist ein 404, weil er nach etwas gesucht, die nicht vorhanden ist und nicht weiß, dass Ihre Website ermöglicht es nur für bestimmte Dinge zu suchen, die es gibt. Er verlässt Ihre Website und kann den gewünschten Inhalt nicht finden.

Dies wird Funktion nicht suchen. Die Suche sollte Ihnen erlauben, nach allem zu suchen, eine Liste aller möglichen Ergebnisse anzuzeigen und einen Höflichkeitsfehler, wenn keiner gefunden wird - auf keinen Fall sofort zu einer bestimmten Seite zurückzukehren - statt dessen eine generische Seite für alle Suchen, oder einen 404 zu liefern, wenn er dies sagt Super-spezifische Seite existiert nicht.

ich reccommend Sie schauen in Algolia oder andere ähnliche Produkte Suche zu erleichtern. jedoch

Ihre Frage das Problem zu beheben (s), ...

  1. Sie haben eine fehlende Anführungszeichen in der Klassendeklaration der Taste div. Bearbeiten Sie das Q, um das zu beheben.
  2. Sie wirklich, wirklich brauchen, Indation zu verwenden. Es macht Ihren Code so viel einfacher zu lesen, und besser und ansprechender für andere, Ihnen zu helfen. Wird das auch bearbeiten.
  3. Was Sie brauchen, ist eine .htaccess-Datei in Ihrem Projektstamm, mit einer definierten 404-Seite, auf ein Mindestmaß zu reduzieren. So etwas wie bearbeitet, um an den Pfad und den Namen Ihrer 404-Fehlerseite angepasst zu werden. Sie entwerfen und entwickeln Ihre 404-Seite wie jede andere Seite. Diese wird gelten, gelten jedoch für ALLE Ihrer fehlenden Seiten, so stylen und bauen Sie es Inhalt angemessen (sehen Sie, warum eine Suchergebnisseite jetzt besser ist?).

    ErrorDocument 404 /404.html

  4. Wenn Sie nginx anstelle von Apache verwenden passieren, dies zu tun, anstatt in der Server-Konfiguration:

    error_page 404 /404.html;

  5. Alternativ können Sie eine Form um die Suche bauen könnte, und senden Sie die Abfragezeichenfolge (die ein fantastisches Wort für die Zeichenfolge ist, nach der der Benutzer sucht) an ein PHP-Skript von Ihnen, das feststellen kann, ob Ergebnisse angezeigt werden oder nicht und entsprechenden Inhalt anzeigen - wiederum könnte dies auch mit durchgeführt werden Algolia oder ähnlich - ju st parse und füttere es in einer geeigneten Form.