Register Globals

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

  • Register Globals

    Hi Leute, ich weiß, das Thema gibts sicherlich genau so oft wie ihr in eurem Leben auf dem Sch..haus wart *g...
    Ich hab da aber trotzdem noch ein Paar frägelchen.
    Bin noch aus der Zeit mit lernen usw in der RG Off noch nicht so großgeschribene wurde.
    Nun hab ich meinen eigenen Server und mache mir gerade so Paar Gedanken über die Schreibweise meiner Codes.
    Den ein oder anderen hab ich schon ändern müssen, so das meine Scripte weiterhin funktionieren.

    Folgendes:

    Bislang hatte ich immer so abgeglichen:

    PHP-Code:
    if($_GET['mobile'] == "set")
    {
        
    $_SESSION['mobile'] =1;
        
        
    header('location: m_index.php');
        exit;

    Jetzt muss ich gezwungenerweise den Code so schreiben..

    PHP-Code:
    if(isset($_GET['mobile']) and $_GET['mobile'] == "set")
    {
        
    $_SESSION['mobile'] =1;
        
        
    header('location: m_index.php');
        exit;
        

    Kann mir jemand erklären warum? Weil wenn ich nicht mit isset() überprüfe,
    wird die session $_SESSION['mobile'] nicht gesetzt. Ich verstehs nicht?!

    Dann eine weitere Frage:
    Wenn ich auf meiner index.php eine Session setze und auf der nächsten Seite, als Beispiel:
    test.php die Session abrufen will, ist diese bereits abgelaufen?! Allerdings nicht immer, sondenr nur manchmal..
    Den Grund bzw Fehler konnte ich noch nicht nachvollziehen.

    Bitte klärt mich auf Vielen Dank
    Zuletzt geändert von Marcus-24-D; 05.12.2011, 16:24.

  • #2
    Hallo,

    die Prüfung mit isset() solltest du auf jeden Fall machen, ansonsten wird eine Notice geworfen, wenn der GET-Parameter mobile nicht gesetzt ist. Was die Sessions angeht, hast du session_start() in wirklich jedem Script aufgerufen, welches in irgendeiner Form auf Session-Daten zugreift?

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hi, nein, ich setzte keine session_start in jedes Script.
      Allerdings includiere ich eine zentrale Datei die das session_start
      an erster Stelle stehen hat, darum denke ich, dass das eigentlich so ok ist oder?
      Oder muss tatsächlich selbst includierter Dateien ein session_start vorhanden sein?

      Zu den isset´s . Muss ich also tatsächlich immer überprüfen..mh..
      Stimmt..eine Notice wurde mir ausgegeben.
      Bei folgendem Script allerdings wird mir auch eine Notice vor den Kopf geschmissen.
      PHP-Code:
      if ($_SESSION['UserId'] > 
      {
         
      //inhalt

      Warum das? Laut der Fehlermeldung will php das ich vorher auch mit isset() überprüfe. Ich verstehe aber nicht warum..
      Dann kann ich doch genauso gut so überprüfen:
      PHP-Code:
      if (isset($_SESSION['UserId']))
      {
         
      //inhalt

      nur wird hier dann nicht mehr nach der id überprüft.
      also muss man immer den übelst lange code nutzen nur damit dieser sicher ist?
      PHP-Code:
      if (isset($_SESSION['UserId']) && $_SESSION['UserId'] > )
      {
         
      //inhalt

      ??

      Danke für Deine Beteiligung

      Kommentar


      • #4
        Jede Variable, auf die die zugreifst, die nicht vorhanden ist, erzeugt ein Notice.

        PHP-Code:
        ++$i// Notice: Variable gibt es noch nicht 

        Kommentar


        • #5
          Bei mir ist auch öfter mal die UserId = 0 für unangemeldete Gästen und eingeloggte User haben eine ID über 0.

          Dann ist folgendes möglich:
          PHP-Code:
          if (!empty($_SESSION['UserId'])) 

             
          //inhalt für User
          }else
          {
            
          // inhalt für Gäste

          Wir werden alle sterben

          Kommentar


          • #6
            undefinierte variablen..stümmt, so wars
            steht ja auch da *kopp @ tisch...
            ok, danke für die erleuchtung

            Kommentar

            Lädt...
            X