Wirklich unheimliches Problem

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

  • Wirklich unheimliches Problem

    Ich brüte über diesem Problem jetzt schon 2 Tage, find' aber den Fehler nicht.
    Folgendes Problem:
    Jedes mal wenn ich die index page des Forums, das ich grad code, aufrufe poppt die Startseite auf. Soweit so gut.
    Folgende Fehler: Das Logo ist auf der linken Seite, sollte aber laut HTML-Code (der stimmt hundert pro) link sein. Außerdem werden die Cookies scheinbar nicht richtig gelesen. Ich werde immer wieder als 'unregistered' (bzw. 'not logged in') erkannt.
    Bis jetzt auch noch nicht soooo ungewöhnlich, wenn ich nun aber auf einen Link klicke, der wiederrum auf die index.php führt (an diesen ist allerdings 'ne Session-ID anghängt), klappt alles. Das Logo ist auf der richtigen Seite und ich werde auch als eingeloggt angezeigt.
    Macht man sich also ans Debuggen, und versucht die Cookies per echo-Befehlt auszugeben, nichts. Aha, Cookies nicht richtig gesetzt. Nischt is. Cookies sind richtig (werden ja nach Klick auf Link erkannt).
    Jetzt hab ich einfach mal die Routine Verbindung zur DB auskommentiert. Jetzt müsste eigentlich sofort eine Reihe von Fehlern erscheinen. Nichts. Alles (mehr oder weniger) normal: Falsches Logo, nicht eingeloggt. Die Page wird aber ansonsten vollkommen OK angezeigt. Es müssten aber wahnsinnig viele Fehler erscheinen, schließlich ist das Board ohne DB-Verbindung aufgeschmissen (und könnte nicht mal das Logo ausgeben).
    Klare Sache, die Seite wird aus dem Cache geholt. Nischt is.
    Ich habe am unteren Rand der Seite eine kleine Statistik eingebaut, die anzeigt wie viele Queries es gab, wie lange diese gedauert haben und wie lange die Scriptausführungszeit insgesamt war. Diese Zahlen verändern sich aber jedes mal wenn das nicht-eingeloggt-Problem auftritt, also wird da doch irgendetwas berechnet. Allerdings müsste sich doch dann auch irgendwas anderes verändern.

    Benutze WAMP mit PHP 4.2.0
    Register_globals ist on.

    edit: Der Fehler tritt auch auf jeder anderen Seite (nicht nur der index.php) auf. Verschwindet aber wie gewohnt nach dem Klick auf einen Link.
    Zuletzt geändert von Nezzar; 07.05.2002, 19:24.
    "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

  • #2
    poste mal code
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Das lässt sich 'n bisschen Schlecht machen, da sich das Teil aus mehreren Includes zusammensetzt. Das würde den Rahmen wohl sprengen. Ich weiß ja auch nicht welches Stück Code ich posten soll, da ich ja nicht weiß das Prob liegt (nicht genau).
      Also hier ist mal der Code, der Datei von der ich vermute, das der Fehler hier liegt. (jetzt kommt ein Riesenstück Code)
      global.php:
      PHP-Code:
      <?php
      //the db connection
      $dba = new basicdb;

      $dba->dbhost $config[host];
      $dba->dbuser $config[user];
      $dba->dbpass $config[pass];
      $dba->dbname $config[dbname];

      $dba->connect();

      //misc stuff
      set_magic_quotes_runtime(0);

      //some useful vars 
      $timenow time();//make time available for all scripts
      $starttime microtime();
      $cookietime $timenow 2592000;//plus 1 Month
      $root getsetting("root");
      $sesslifetime get_cfg_var('session.gc_maxlifetime');

      //session related stuff
      /*
       *Hier kommt jetzt die neugeschriebene Session-Verwaltung,  hier liegt der Fehler bestimmt nicht.
       */

      session_set_save_handler("sess_open""sess_close""sess_read""sess_write""sess_destroy""sess_gc");

      ini_set("session.use_trans_sid"0);//disable transient sid, may cause trouble O_o
      session_name("sid");
      session_start();
      session_register("user","pass","userid","lastpage","visitedpages");

      $visitedpages++;
      $lastaction $timenow;

      //user-related stuff
      $user $HTTP_COOKIE_VARS["cuser"];
      $pass $HTTP_COOKIE_VARS["cpass"];

      if(empty(
      $user)) {
          
      $user "Guest";
          
      setcookie("cuser"$user$cookietime);
          
          
      $userid "0";
          
          
      $pass "Guest";
          
      setcookie("cpass"$pass$cookietime);    
      } else {
          if(
      $user == "Guest") {
              
      $userid 0;
          } else {        
              
      $dba->queryfirst("SELECT userid FROM user WHERE name='$user'");
              
      $userid $dba->lastrecord["userid"];
          };
      };

      getusersettings();//Hier wird Array $uinfo "hergestellt". Nein, ich hab nicht vergessen das $uinfo global zu deklarieren

      if($uinfo["browseswithcookies"] == 1) {
          if(!isset(
      $HTTP_COOKIE_VARS["sid"])){//sets cookie with sid if not already set
              
      $sessionid session_id();
              
      setcookie("sid"$sessionid);
          } else {
              
      $sessionid "";
              
      session_id($HTTP_COOKIE_VARS["sid"]);
          };
      } else {
          
      $sessionid session_id();
      };
      Bevor die Datei ausgeführt wird, werden noch diverse Dateien importiert, u.a. die DB-Klasse und und Funktionsdeklarationen, also alle nötigen Variablen, die hier z.B. zur DB-Verbindung gebraucht werden sind vorhanden.
      Zuletzt geändert von Nezzar; 07.05.2002, 19:42.
      "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

      Kommentar


      • #4
        BTW

        Das ist heftig ... da hat wohl jemand den Vorteil der Sessions nicht verstanden ...
        Schlimm genug wenn man Benutzernamen und Kennwort unverschlüsselt übers Netz senden muss,
        aber mit jeder GET anfrage beides wieder übers Netz zu schicken ... das ist heftig ...

        Dabei könnte man so schön die Requesting-IP und die ID des angemeldeten Benutzers in der Session speichern ... usw. ...
        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Wer sagt denn, dass das die Variablen über GET kommen? Die sind alle in der Session gespeichert!
          Man loggt sich ein, kriegt Cookies, und Username und Passwort bleiben in der Session und in den Cookies gespeichert? Wo ist denn da was von GET?
          "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

          Kommentar


          • #6
            Original geschrieben von Nezzar
            Wer sagt denn, dass das die Variablen über GET kommen? Die sind alle in der Session gespeichert!
            Man loggt sich ein, kriegt Cookies, und Username und Passwort bleiben in der Session und in den Cookies gespeichert? Wo ist denn da was von GET?
            Jeder Cookie der vom Browser für einen bestimmten Server oder eine Servergruppe gespeichert ist wird bei jeder Art von HTTP request GET/POST im Request-Header mitgesendet ... sonst würde der Webserver wohl kaum mitkriegen das ein Cookie vorhanden ist geschweige den das PHP Dir Dein Array $HTTP_COOKIE_VARS/$_COOKIE aufbauen könnte.

            Die beiden Zeilen

            PHP-Code:
            //user-related stuff
            $user $HTTP_COOKIE_VARS["cuser"];
            $pass $HTTP_COOKIE_VARS["cpass"]; 
            sowie die Zeilen

            PHP-Code:
                $user "Guest";
                
            setcookie("cuser"$user$cookietime);
                
                
            $userid "0";
                
                
            $pass "Guest";
                
            setcookie("cpass"$pass$cookietime); 
            verraten mir das du sowohl den Benutzernamen, als auch das Kennwort in Cookies speicherst.

            Natürlich kommen die beiden Daten nicht über GET sondern über JEDE Anfrage ( ob GET oder POST )!!!
            Sie werden nicht IN der Session sondern AUCH IN der Session gespeichert!

            PHP-Code:
            session_register("user","pass","userid","lastpage","visitedpages");
            ...
            //user-related stuff
            $user $HTTP_COOKIE_VARS["cuser"];
            $pass $HTTP_COOKIE_VARS["cpass"]; 
            carpe noctem

            [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
            [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

            Kommentar


            • #7
              Na gut, wenn man das so sieht...die Sachen sind aber eben nicht in der URL zu sehen, wie es ja bei GET wär. Deshalb -> so unsicher ist's nun auch wieder nicht.
              Dann muss ich das PW eben noch verschlüsseln, kein Problem.
              Trotzdem ist mein Prob noch nicht gelöst. Ich hab echt keinen Schimmer woran das liegen könnt.
              "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

              Kommentar

              Lädt...
              X