[Funktion] $_get

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

  • [Funktion] $_get

    Gude,

    Vorhaben:
    Neue Site includen Mittels Array und $_GET d.H. Linkname
    index.php?section

    section wird im array gesucht und $_site["link"] behinhaltet den zu includenden pfad Alles klar soweit?

    PHP-Code:
    # getSection Function die mit $_GET ausliest..
    function getSection()
    {
        
    reset($_GET);
        list(
    $section$value) = each($_GET);
        if (!
    $section || $value) return false;
        return 
    $section;


    Anschliesend mal ein Beispiel Array

    PHP-Code:
    $_sites = array(
    "404"=>              array("link"    => "module/error/404.php""type"    => "single",    "title" => "404"),
    "home"    =>      array(    "link"    => 'module/home/home.php'"type"    => "single",    "title" => "home"));// .....  usw. 
    link -> is wohl klar..
    type -> Single Box or Double Box (relevant for die content anzeige)
    title -> interne übersichtlkichkeit


    Nun das Problem an der ganzen Geschichte ist das die function getSection nicht funktioniert. Debugge mir schon ein wolf ab aber ich gehe jetzt mal davon aus das es an den php.ini einstellungen liegt, da es auf meinem alten webspace funktioniert.

    Jemand eine Idee ?

  • #2
    Verwendest du Superglobale?

    Du übergibst der Funktion keinen Parameter. Folge: Das Script kann aus nüchts auch kein Goldnugget zaubern....
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

    Kommentar


    • #3
      joa nur das schöne daran ist local und auf meinen webserver funktioniert das, nur auf einen anderen nicht

      www.xskaschy.info/phpinfo.php - PHP-Info

      Kommentar


      • #4
        register_globals ist dort on !

        das auf off setzen. Bringt nichts ausser unnötige Sicherheitslücken.....

        In späteren Version wird diese Einstellung standardmäßig bereits abgeschaltet.....

        Um deine Vars zuzugreifen gibt es $_POST,$_GET, $_REQUEST,$;SERVER usw.

        Übergib einfach $_GET als Parameter der Funktion
        [color=blue]MfG Payne_of_Death[/color]

        [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
        [color=red]Merke:[/color]
        [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

        Murphy`s Importanst LAWS
        Jede Lösung bringt nur neue Probleme
        Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
        In jedem kleinen Problem steckt ein großes, das gern raus moechte.

        Kommentar


        • #5
          Funtkioniert auch nicht


          PHP-Code:
          // page.inc.php
          class Page 
          {
              function 
          getSection($get_s)
              {
                
          reset($get_s);
                list(
          $section$value) = each($get_s);
                if (!
          $section || $value) return false;
                return 
          $section;
              }
              function 
          getContent($contentScript)
              {
                  if(
          file_exists($contentScript)) {
                      include (
          $contentScript);
                  } else {
                      include (
          'module/error/404.php');
                  }
              }
              
          // hier sind noch n paar funktionen

          PHP-Code:
          // index.php
          require_once ("w4lms/page.inc.php");

          $Page        = new Page;    global $Page;

          $GLOBALS["section"]     = $Page->getSection($_GET);

          if (!
          $GLOBALS["section"]) $GLOBALS["section"] = 'home';

          if (!isset(
          $_sites[$GLOBALS["section"]]["link"])) $GLOBALS["section"] = '404';

          $contentScript $_sites[$GLOBALS["section"]]["link"];

          // usw.....

          $Page->getContent($contentScript); 

          // usw..... 
          Zuletzt geändert von Skaschy; 14.12.2004, 11:04.

          Kommentar


          • #6
            mach ein
            PHP-Code:
            echo "<pre>";
            print_r($get_s);
            echo 
            "</pre>"
            In deiner sich nun rausgestellten Methode.....
            Wenn du dort Werte hast, dann stimmt deine Logik in der Methode nicht....

            Vor allem woher kommt überhaupt $section.....

            Und nochmal Debuuuuuuuugggggingggggg Schritt für Schritt......
            [color=blue]MfG Payne_of_Death[/color]

            [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
            [color=red]Merke:[/color]
            [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

            Murphy`s Importanst LAWS
            Jede Lösung bringt nur neue Probleme
            Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
            In jedem kleinen Problem steckt ein großes, das gern raus moechte.

            Kommentar


            • #7
              PHP-Code:
              echo "<pre>";
              print_r($get_s);
              echo 
              "</pre>"
              Code:
              Array
              (
              )

              Mhh okay mom... mal weiter suchen

              $section -> array aus $get_s ?

              EDIT:
              Liegt eindeutig an register_globals On
              Zuletzt geändert von Skaschy; 14.12.2004, 11:44.

              Kommentar


              • #8
                ... und auch error_reporting benutzen.

                http://de.php.net/error_reporting


                ... dann noch zu register_global off belesen.


                http://www.php.net/manual/de/security.globals.php

                http://www.php.net/manual/de/languag...predefined.php
                mfg
                marc75

                <Platz für anderes>

                Kommentar


                • #9
                  na deine $section taucht in der Klasse nirgends auf und nirgendwo ist ersichtlich woher die ihren Wert bekommt.....

                  Und mal nebenbei hör auf mit den verdammten Globalen Variablen......

                  Wenn PHP als Apache Modul läuft erstellst du eine .htaccess und schreibst darein

                  php_value register_globals off

                  Ansonsten mail an den Hoster und fragen ob er weiss was er tut.......
                  [color=blue]MfG Payne_of_Death[/color]

                  [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
                  [color=red]Merke:[/color]
                  [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

                  Murphy`s Importanst LAWS
                  Jede Lösung bringt nur neue Probleme
                  Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
                  In jedem kleinen Problem steckt ein großes, das gern raus moechte.

                  Kommentar

                  Lädt...
                  X