Seite Laden (Modular)

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

  • #16
    PHP-Code:
    if (isset($_GET['pageID'])) {
      
    show_page($_GET['pageID']);
      } else {
      
    show_page('1');

    Aber die Funktion show_page ist ein elendes CCC HHHHHHH AAAAAAAAAAAA OOOOOOOOOOOOOOOO SSSSSSSSSSSSSSSSSS. Dem Autor fehlt es am elementaren logischen Denken, bzw. Grundkurs. Ist das hier eine gratis Informatikschule eins-zu-eins?

    Kommentar


    • #17
      Hm und was empfielst du du mir?

      Kommentar


      • #18
        Original geschrieben von eArtis


        PHP-Code:
        function show_page($param) {
          global 
        $db$smarty;
          
        $id $_GET['pageID'];
          
        $_GET['id'] = $_GET['pageID']; 
        Sehr interessant. Was soll das ?


        Original geschrieben von eArtis
        PHP-Code:
          $result $db->query("
                SELECT
                    pageID as id, pageNAME as pname, pageTitle as ptitle, pageContent as pcontent
                FROM
                    d3b_pages
                WHERE
                    pageID = '
        $id'
            "
        ); 
        Dein feld pageID ist vom typ varchar/text ?

        Original geschrieben von eArtis
        So funktoniert es wenn ich /pages.php?pageID=1 aurufe, aber wenn ich nur pages.php aufrufe wird ERROR aber nicht im Contentbereich angezeigt sondern übern header.
        Ist beides kein wunder. Erstens brauchst du offensichtlich die id damit
        du ein ergebnis aus der db bekommst. Wenn die pageID nicht übergeben
        wird kanns ja auch nicht klappen. Zweitens ist die ausgabe von "Errrooooor"
        nunmal vor der ausgabe der restlichen inhalte. Du hast es doch selbst
        geschrieben. Die seite wird erst ausgegeben wenn du smarty's display methode
        aufrufst.

        Du kannst doch einfach einen default-wert für pageID setzen wenn du
        keinen übergeben bekommst. Dann noch den query anpassen und
        es sollte zumindest mal laufen.

        greets
        (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

        Kommentar


        • #19
          Hi,
          Das hier war nur als Test
          $_GET['id'] = $_GET['pageID'];
          Das is jetzt weg.

          Dein feld pageID ist vom typ varchar/text ?
          Nein, sodern int(11), why?

          Ich müsste das dann einfach so machen oder?
          PHP-Code:
          function show_page($id 1) {

          Kommentar


          • #20
            Original geschrieben von eArtis

            Nein, sodern int(11), why?
            Weil in deinem query einfache anführungszeichen um den wert gesetzt werden.
            Daraus folgere ich, dass es sich um eine zeichenkette handelt.
            AFAIK folgert mysql das ebenfalls. Die müssen da weg.

            Ich müsste das dann einfach so machen oder?
            PHP-Code:
            function show_page($id 1) {

            Nein, entweder so wie phoenix es geschrieben hat, oder du speicherst
            den getparameter in einer variablen namens id, der du einen default-wert
            verpasst, falls der getparameter nicht gesetzt ist.

            page_shower.php
            PHP-Code:
            function show_page($id){
            global 
            $db,$smarty;

            $result $db->query"SELECT * FROM ` bla`  WHERE `pageID` = {$id});
            if(!
            $result){
                 
            //tu was
            }

            //hier kommt das ganze smarty-assignment-zeugs

            //die rekursion die hier steht nimmst du raus
            //if(isset($_GET['pageID'])){ show_page($_GET['pageID']); }else{}

            //und noch anzeigen
            $smarty->display('index.tpl');

            page.php
            PHP-Code:
            require_once 'page_shower.php';

            $id = isset($_GET['pageID']) ? intval($_GET['pageID']) : 1//oder was auch immer default ist

            //$smarty erzeugen
            //$db  erzeugen

            show_page($id); 
            greets
            (((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")

            Kommentar


            • #21
              Was ich empfehle? ein einfaches tutorial, leider in englisch http://www.w3schools.com/php/default.asp

              ich dachte mal es gibt sie auch in deutsch aber finde es nicht mehr.

              für den anderen poster, ich setze alles in einer query in '...' , auch Zahlen.
              genauer '\\'' . mysql_real_escape_string($x) . '\\'' . mysql muss es immer vom text
              her konvertieren, egal ob es mit oder ohne ' ist.

              So zerreisst es die query nicht, wenn mal eine zahl $x es nicht ist.
              Zuletzt geändert von phoenix20; 02.06.2006, 16:39.

              Kommentar


              • #22
                unsinn:
                PHP-Code:
                function show_page($param) {
                  global 
                $db$smarty;
                  
                $id $_GET['pageID'];
                  
                $_GET['id'] = $_GET['pageID'];
                  
                //$name = $_GET['pageName'];
                  
                $result $db->query("
                        SELECT
                            pageID as id, pageNAME as pname, pageTitle as ptitle, pageContent as pcontent
                        FROM
                            d3b_pages
                        WHERE
                            pageID = '
                $id'
                    "
                );
                while(
                $row $db->fetch_array($result)) {
                  
                $smarty->assign('content'$row['pcontent']);
                  }
                  } 
                sinn:
                PHP-Code:
                function show_page($param) {
                  global 
                $db$smarty;
                   
                $param=mysql_real_escape_string($param); //(sql-I)
                   
                $result $db->query("
                        SELECT
                            pageContent
                        FROM
                            d3b_pages
                        WHERE
                            pageID = '
                $param'
                        LIMIT 1
                    "
                );
                    
                $row $db->fetch_array($result)) 
                    
                $smarty->assign('content'$row['pageContent']);
                    
                mysql_free_result($result);

                Fehlerfang mal weggelassen.
                EDIT:
                noch schutz gegen sql-I ergänzt, um nicht nach DDSIG schuld zu sein.
                Zuletzt geändert von phoenix20; 02.06.2006, 16:47.

                Kommentar


                • #23
                  Hallo,

                  Ich danke euch, ich hab das ganze jetzt so gemacht:
                  PHP-Code:
                    #FUNCTION show_page // Hole die Pages aus der Datenbank
                    
                  function show_page($param) {
                    global 
                  $db$smarty;
                    
                     
                  $param mysql_real_escape_string($param); //(sql-I)
                     
                  $result $db->query("
                          SELECT
                              pageTitle as title, pageContent as content
                          FROM
                              d3b_pages
                          WHERE
                              pageID = '
                  $param'
                          LIMIT 1
                      "
                  );
                      
                  $row $db->fetch_array($result);
                      
                  $db->free_result($result);
                      
                      
                  //ganze smarty-assignment-zeugs
                      
                  $smarty->assign('content'$row['content']);
                      
                  $smarty->assign('title'$row['title']);

                      
                  //GET PageID
                      
                  if(isset($_GET['pageID'])){ 
                        
                  show_page($_GET['pageID']); 
                      }
                      else{
                      }

                      
                  //Output index.tpl
                      
                  $smarty->display('index.tpl');
                      
                    }
                  //Ende Function
                    
                    
                    
                  $pageID = isset($_GET['pageID']) ? intval($_GET['pageID']) : 1//Seite 1 wird immer angezeigt
                    
                  show_page($pageID); 
                  Das funktoniert auch wunderbar, nur wenn ich pageID=2 aurufe habe ich ne lange Ladezeit, kann das an xampp liegen?

                  Kann ich das jetzt auch eigentlich so einstellen, wenn page.php aufgerufen wird soll statt:
                  Code:
                  {include file="pages.tpl"}
                  die main.tpl angezeigt werden:
                  Code:
                  {include file="main.tpl"}

                  Edit:
                  Xampp schmiert ab wenn cih immer pages.php=id=$id aufrufe, muss es danach immer neu starten.
                  Zuletzt geändert von eArtis; 03.06.2006, 14:30.

                  Kommentar


                  • #24
                    Ok hab das jetzt wegen der Ladezeit,.. gelöst, es lag daran:
                    PHP-Code:
                    //GET PageID
                        
                    if(isset($_GET['pageID'])){ 
                          
                    show_page($_GET['pageID']); 
                        }
                        else{
                        } 
                    Hab das rausgetan.

                    Nun zu meiner zweiten frage, kann mir da jemand vll. tipps geben.

                    Kommentar

                    Lädt...
                    X