Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Datenbankbasierte Website mit URL aufbauen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Datenbankbasierte Website mit URL aufbauen

    Hallu Community (und nikosch )

    Ich habe jetzt mein CMS soweit erstmal fertig, das ich Seiten erstellen kann. Nun bin ich dabei, meine Public Site zu programmieren.

    Im Grunde soll alles über der URL ausgelesen werden.
    Code:
    http://www.example.com
    http://www.example.com/news/
    http://www.example.com/news/wissenschaft/
    http://www.example.com/news/wissenschaft/mein_artikel_38293891/
    So möchte ich halt die URL's haben

    Ich habe schon bisschen was gemacht. Index.php, init.php, .htaccess, klassen.

    Nur weiß ich jetzt nicht genau, wie ich wirklich anfangen soll. Meine URL Kontrolliere ich Stück für Stück, ob alle Seiten in meiner Datenbank existieren. Wenn alle Seiten existieren holt er sich vom letzten (also www.example.com/news/wissenschaft/mein_artikel.3728173) den Namen und erstellt damit die Seite. Ob das aber so gut ist, weiß ich nicht.

    Wenn ich http://www.example.com/news/news/news z.B. in der URL eingebe, zeigt er mir trotzdem nur die Seite von News, dabei hätte ich gerne eine Fehlermeldung, das es diese Seite ja eigt nicht gibt.
    Wahrscheinlich müsste ich dann über die Parent_ID das denn abchecken. Liege ich da richtig?



    PS: Falls i.was nicht verstanden wurde, bitte bescheid sagen


  • #2
    Zitat von Jumper93 Beitrag anzeigen
    PS: Falls i.was nicht verstanden wurde, bitte bescheid sagen
    Verstehe nicht, wie dir jetzt geholfen werden soll ohne einen Schnipsel Source gesehen zu haben.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Wie wäre es, wenn ich die URLs schon vorher in der Datenbank abspeichern würde?
      Also von dieser URL: www.example.com/seite1/seite1_1/
      speicher ich dann nur dieses hier: /seite1/seite1_1/

      Ich würde dann von diesen URL-Teil mit der in der Datenbank vergleichen und die ID meiner Page raussuchen. Somit könnte ich natürlich dann auch meine Page zusammen bauen. Wäre das ne möglichkeit?
      Könnte man das so machen?^^

      Kommentar


      • #4
        tkausl hat es bereits gesagt: wie wäre es mit code?

        mfg Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          Ich brauch hier nicht wirklich nen Code zeigen, da es hier sinnlos wäre. Ich suche irgendeine möglichkeit, aus einer URL eine Page aufzubauen.

          Kommentar


          • #6
            Ich frage mich ernsthaft, wie man behaupten kann, man hätte ein CMS geschrieben ("Ich habe jetzt mein CMS soweit erstmal fertig"), wenn man noch nicht mal dieses grundlegende Problem gelöst hat

            Ich suche irgendeine möglichkeit, aus einer URL eine Page aufzubauen.
            Ja, denn such mal schön.
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Ich würde dann von diesen URL-Teil mit der in der Datenbank vergleichen und die ID meiner Page raussuchen. Somit könnte ich natürlich dann auch meine Page zusammen bauen. Wäre das ne möglichkeit?
              Das halte ich für eine schwachsinnige Idee. Es gibt doch zig Blogposts, Tutorials, Forenbeiträge zu Routern. Diese solltest du dir mal zu Gemüte führen.

              Kommentar


              • #8
                Zitat von Chris. Beitrag anzeigen
                Das halte ich für eine schwachsinnige Idee. Es gibt doch zig Blogposts, Tutorials und Forenbeiträge zu Routern. Diese solltest du dir mal zu Gemüte führen.

                Kommentar


                • #9
                  Nikosch, fang nicht damit wieder an. Jeder kennt dich und deine Art.
                  Ein CMS ist im Hintergrund, wo ich gerade dran bin ist der Public Bereich und der ist Seperat.

                  Ich habe 2 Vorschläge gemacht, beide wurden garnicht erst durchgelesen wie ich es hier sehe. Einen Code brauche ich dazu noch nicht, da ich erst den logischen Teil erst suche wie was am besten funktioniert und co. Nicht mehr.

                  Kommentar


                  • #10
                    Ein CMS ist im Hintergrund, wo ich gerade dran bin ist der Public Bereich und der ist Seperat.
                    Das bedeutet nicht, dass das URL Routing unterschiedlich sein muss.

                    Kommentar


                    • #11
                      Zitat von Chris. Beitrag anzeigen
                      Das bedeutet nicht, dass das URL Routing unterschiedlich sein muss.
                      Ist es in diesen Fall aber. Das CMS ist eine Ordnerbasierte Struktur und der Public Bereich eine Datenbankbasierte Struktur

                      Kommentar


                      • #12
                        Zitat von Jumper93 Beitrag anzeigen
                        Ist es in diesen Fall aber. Das CMS ist eine Ordnerbasierte Struktur und der Public Bereich eine Datenbankbasierte Struktur
                        Darf man fragen, was genau du damit meinst und worin dabei der Sinn besteht?

                        Kommentar


                        • #13
                          Im CMS ist meine Stuktur so
                          PHP-Code:
                          +class
                             - 
                          Database.php
                             
                          - ...
                          +
                          media
                             
                          +css
                             
                          +js
                             
                          +jquery
                             
                          +img
                          +modul
                             
                          +dashboard
                             
                          +page
                                 
                          -index.php
                                 
                          -page_add.php
                                 
                          -page_delete.php
                                 
                          -und so weiter
                             
                          +... und noch viel mehr
                          -index.php
                          -init.php
                          -page.php //hier wird die Seite zusammen gebaut
                          -.htaccess 
                          Das kann man schlecht mit ner URL in der Datenbank vergleichen

                          Datenbankbasierte Struktur wäre in diesen fall mit der URL Speicherung in der Datenbank so
                          PHP-Code:
                          +class
                             -
                          Database.php
                             
                          -...
                          +
                          media
                             
                          +css
                             
                          +js
                             
                          +jquery
                          -index.php
                          -init.php
                          -page.php 
                          Hier ist also fast garnichts drin. In der page.php wird der gesamte Aufbau der Seite automatisch gesteuert dank der Datenbank. Bei der Ordnerbasierte Variante muss ich alles per "hand" machen. Das ist der kleine Unterschied.

                          Bei der Ordnerbasierten Variante muss ich die URL zerlegen, da diese nicht in der Datenbank gespeichert ist. Geht ja auch schlecht, da man ihn erst beibringen muss, das im Modul ein neuer Ordner ist mit X-Dateien.
                          Bei der Datenbankbasierte Variante brauche ich nur die Page-ID, um alles herauszufinden.

                          Kommentar


                          • #14
                            das stichwort routing haste überlesen?

                            Kommentar


                            • #15
                              moma, ja...

                              meine funktion jetzt
                              PHP-Code:
                              public function getURLObjectAndPageID()
                                  {
                                      
                              $pfad     $_SERVER['REQUEST_URI'];
                                      
                              $temp    explode('/',$pfad);
                                      
                                      
                              $i 0;
                                      
                              $new_array = array();
                                      foreach(
                              $temp as $data)
                                      {
                                          if(
                              $data != '')
                                          {
                                              
                              $new_array[$i] = $data;
                                              
                              $i++;
                                          }
                                      }
                                      
                                      
                              $check_array count($new_array);
                                      if(
                              $check_array == 0)
                                      {
                                          
                              $sql "
                                              SELECT    `id`
                                              FROM     `page`
                                              WHERE    `page_frontpage` = 1
                                          "
                              ;
                                          
                              $result Database::query($sql);
                                          
                              $data Database::getObject($result);
                                          
                              $page_id $data->id;
                                      }
                                      elseif(
                              $check_array != 0)
                                      {
                                          
                              $page_url '';
                                          foreach (
                              $new_array as $data)
                                          {
                                              
                              $page_url $page_url.'/'.$data;
                                          }
                                          
                                          
                              $sql "
                                              SELECT    id
                                              FROM    page
                                              WHERE    page_url = '"
                              .mysql_real_escape_string($page_url)."'
                                          "
                              ;
                                          
                              $result Database::query($sql);
                                          
                              $data Database::getObject($result);
                                          
                                          if(isset(
                              $data->id))
                                          {
                                              
                              $page_id $data->id;
                                          }
                                          else
                                          {
                                              
                              $page_id 'error';
                                          }    
                                      }
                                      else{};
                                      
                                      return 
                              $page_id;
                                  } 
                              Damit kriege ich immer meine korrekte Page_ID und kann damit jetzt meine Website aufbauen

                              Kommentar

                              Lädt...
                              X