Ankündigung

Einklappen
Keine Ankündigung bisher.

Spezielle PHP-Suche

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Spezielle PHP-Suche

    Hallo,

    da ich noch relativ neu sowohl im Forum als auch in der PHP-Sprache bin und ich nicht alleine verzweifeln möchte, hoffe ich, dass mir jemand helfen kann.

    Also ich habe eine Hauptseite (Lexikon) auf der ich zwei Suchen einbauen möchte.

    1.) Im Ordner der Index sind viele andere HTML-Dateien gelagert.
    In der ersten Suchspalte, soll man direkt auf diese Seiten per Suche zugreifen können.
    Bsp.: Im Order befindet sich die IK.html | Der User gibt in die Suche IK ein. Er wird weitergeleitet und die Seite erscheint. || Wenn der User jedoch I eingibt, welche nicht im Ordner enthalten ist, dann soll die Meldung kommen, dass die Seite nicht vorhanden ist.

    2.) Diese Suche soll etwas anders aussehen und ist schon schwieriger zu handhaben (Vllt. auch nichts mehr für Anfänger).
    Nehmen wir wieder das Beispiel mit der IK.html. In dieser Suche soll der User verschiedene Wörter eingeben können, welche mit der IK.html verbunden sind.
    Bsp.: Der User gibt TestWort in die Suche ein und wird zu IK.html weitergeleitet. Nun gibt der User TW1 ein und wird weitergeleitet. Jetzt gibt der User TeW1 ein und es kommt die Meldung, dass die Seite nicht existiert. || Das heißt, dass ich IK.html mit Schlüsselwörtern in dieser Suche verbinden möchte.

    Das sind meine (ich hoffe nicht zu schwierigen) Wünsche. Es wäre sehr toll, wenn mir jemand helfen könnte!

    MfG Medo


  • #2
    Beschäftige dich mal etwas mit Lucene (solr / elasticsearch).
    Was bringst du denn für Vorkenntnisse mit?
    Standards - Best Practices - AwesomePHP - Guideline für WebApps

    Kommentar


    • #3
      Wenn ich das richtig verstehe, geht es doch um ein Suchformular?!
      Muß man dann zwingend Apache-Module dafür verwenden? Das sollte doch auch mit einfachsten Mitteln möglich sein, bspw.:
      file_exists()
      file_get_contents()

      Für den Fall, daß file_exists() false liefert halt ne Standard-Datei einlesen und ausgeben.
      Kann aber durchaus sein, daß ich die Anforderung falsch deute?!
      Competence-Center -> Enjoy the Informatrix
      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

      Kommentar


      • #4
        Zumindest Punkt 1 würde ich auch über file_exists() lösen, scheint mir der
        einfachste / direkteste Weg wenn sonst keine Funktionen benötigt werden außer
        der beschriebenen.

        Für Punkt 2 könnte man ggf die "Suchwort" => "anzuzeigende Datei"
        Zuweisungen in einer DB Tabelle speichern, dann halt prüfen ob das eingegebene
        Suchwort in der Tabelle vorhanden ist, wenn ja die zugeordnete Datei anzeigen /
        einlesen und wenn nicht wiederum die Standard "nicht gefunden" Seite.

        Kommentar


        • #5
          Zitat von Medolie Beitrag anzeigen
          Hallo,

          da ich noch relativ neu sowohl im Forum als auch in der PHP-Sprache bin und ich nicht alleine verzweifeln möchte, hoffe ich, dass mir jemand helfen kann.

          Also ich habe eine Hauptseite (Lexikon) auf der ich zwei Suchen einbauen möchte.

          1.) Im Ordner der Index sind viele andere HTML-Dateien gelagert.
          In der ersten Suchspalte, soll man direkt auf diese Seiten per Suche zugreifen können.
          Bsp.: Im Order befindet sich die IK.html | Der User gibt in die Suche IK ein. Er wird weitergeleitet und die Seite erscheint. || Wenn der User jedoch I eingibt, welche nicht im Ordner enthalten ist, dann soll die Meldung

          kommen, dass die Seite nicht vorhanden ist.

          2.) Diese Suche soll etwas anders aussehen und ist schon schwieriger zu handhaben (Vllt. auch nichts mehr für Anfänger).
          Nehmen wir wieder das Beispiel mit der IK.html. In dieser Suche soll der User verschiedene Wörter eingeben können, welche mit der IK.html verbunden sind.
          Bsp.: Der User gibt TestWort in die Suche ein und wird zu IK.html weitergeleitet. Nun gibt der User TW1 ein und wird weitergeleitet. Jetzt gibt der User TeW1 ein und es kommt die Meldung, dass die Seite

          nicht existiert. || Das heißt, dass ich IK.html mit Schlüsselwörtern in dieser Suche verbinden möchte.

          Das sind meine (ich hoffe nicht zu schwierigen) Wünsche. Es wäre sehr toll, wenn mir jemand helfen könnte!

          MfG Medo

          Hi,

          Zu 1.) Wenn ich vor einem Lexikon sitze und muss zur Suche erstmal einen Begriff (ein Kürzel) eingeben, um eine Seite zu finden, und bekomme nach der x.ten Eingabe die Meldung,

          dass eine entspr. Seite nicht gefunden wurde, fänd' ich das etwas frustrierend: Lexikon schließen

          Naheliegender wäre es doch, direkt eine Liste verfügbarer Seiten auszugeben, wo man eine Seite auswählen kann.


          Zu 2.) Da du ja ein Lexikon hast (entwickeln willst), fiele mir zu "In dieser Suche soll der User verschiedene Wörter eingeben können, welche mit der IK.html verbunden sind." noch ein,

          dass du die Seiten nach dem Alphabet benennen kannst: a.html, b.html . . . z.html. Sucht ein User nach einem Begriff, extrahierst du mittels substr den Anfangsbuchstaben,

          hängst die Dateiendung an und versuchst die entspr. Seite z.B. mit JavaScript zu laden. Gibt es die Seite (noch) nicht, so wird zum gesuchten Begriff auch nichts gefunden,

          womit die Suche nach einer Seite (Punkt 1.) eigentlich dann mit erledigt ist.

          Kurzes Beispiel:

          PHP-Code:
          <!DOCTYPE HTML>
          <html>
          <head>
          <title>Untitled</title>
          <script type="text/javascript">
          <!--
          function oeffne_url(url){
           window.location.href = url;
           return true;
          }
          // -->
          </script>
          </head>
          <body>
          <form action="" method="post">
          <p><input type="text" name="suchwort" /></p>
          <p><input type="submit" name="cmd" value="Suchen" /></p>
          </form>
          <?php
          if(isset($_POST['cmd'])){
           if(
          strlen($_POST['suchwort']) == 0){
             echo 
          "Sie haben kein Suchwort eingegeben.";
           }else{ 
          // else 1
                           /*
                          * Anfangsbuchstabe in Kleinschrift umwandeln
                          */
                        
          $suchseite strtolower(substr($_POST['suchwort'], 01)).".html";
                       
          /*
                       * Entweder jetzt die Seite nach "$_POST['suchwort']" durchsuchen,
                       * oder die Seite "$suchseite" aufrufen
                       */
                       
          if(file_exists($suchseite)){
                       
          ?>
                       <script type="text/javascript">
                       <!--
                       oeffne_url(<?php echo '"'.$suchseite.'"';?>);
                       // -->
                       </script>
                       <?php 
                       
          }else{ // else 2
                                    
          echo "Zu ihrem Suchbegriff '".$_POST['suchwort']."' existiert keine Seite.";
                                    } 
          // Ende else 2
                       
          // Ende else 1
          }
          ?>
          </body>
          </html>
          Gruß
          Günni

          Kommentar


          • #6
            Und was ist an der Lösung über JavaScript nun vorteilhafter als sowas:
            PHP-Code:
            if ( file_exists($suchseite) ) {

                
            header 'location: ' $suchseite );
                exit;


            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Zitat von Arne Drews Beitrag anzeigen
              Und was ist an der Lösung über JavaScript nun vorteilhafter als sowas:
              PHP-Code:
              if ( file_exists($suchseite) ) {

                  
              header 'location: ' $suchseite );
                  exit;


              Hi Arne Drews,

              weil in diesem Fall (in diesem Script) eine Fehlermeldung kommen würde . . .

              Warning: Cannot modify header information - headers already sent by (output started at /www/a_1lexikon2.php:5) in /www/a_1lexikon2.php on line 33

              Wäre das Zielscript zur Verarbeitung eine "reine" PHP-Datei, so wäre header natürlich die näherliegende Variante.

              Gruß
              Günni

              Kommentar


              • #8
                Ja, an der Stelle, logisch... Das sollte natürlich sinnvoller aufgebaut werden.
                Dann kommt die Meldung auch nicht! Stichwort: EVA

                Wenn das nicht eingehalten wird, empfinde ich eine JavaScript aufgrund dieser Tatsache eher als grob fahrlässig.
                Aber gut, wenn dem TE das natürlich vorgeschlagen wird, muß er entscheiden, ob er das so machen möchte.
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Zitat von Arne Drews Beitrag anzeigen
                  Ja, an der Stelle, logisch... Das sollte natürlich sinnvoller aufgebaut werden.
                  Dann kommt die Meldung auch nicht! Stichwort: EVA

                  Wenn das nicht eingehalten wird, empfinde ich eine JavaScript aufgrund dieser Tatsache eher als grob fahrlässig.
                  Aber gut, wenn dem TE das natürlich vorgeschlagen wird, muß er entscheiden, ob er das so machen möchte.
                  Hi,

                  ja sinnvoller kann man das wohl machen, würde ich selber auch.

                  Aber warum sollte JS grob fahrlässig sein? JS kann man einsetzen, wo man will. Auf dieser Seite z.B. am Ende:

                  PHP-Code:
                  <script type="text/javascript"><!--
                  var 
                  pageTracker _gat._getTracker("UA-4194548-2");
                  pageTracker._initData();

                  pageTracker._trackPageview();
                  //-->
                  </script> 
                  Jetzt wirf' dem Betreiber von php.de mal Fahrlässigkeit vor

                  Gruß
                  Günni

                  Kommentar


                  • #10
                    Mit grob fahrlässig meinte ich den Umstand an sich, dies zu verkomplizieren, anstatt die Scripte gleich von vornherein vernünftig zu entwickeln!
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar

                    Lädt...
                    X