SESSION PopUp Problem

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

  • SESSION PopUp Problem

    Ich kann mich erfolgreich einloggen in meinen Login, werde erfolgreich weitergeleitet, Session wird auch mitgenommen, aber wenn ich dann ein PopUp Fenster aufrufe, in dem ein Frame steht, ist die Session nicht vorhanden. Hat jemand eine Idee, warum die mir verloren geangen ist und vor allem warum?

    PopUp Datei
    PHP-Code:
    <?php session_start();

    if(
    $_SESSION[ip]) {
          include(
    "../config.php");
          include(
    "../db_connect.php");
        
    $sql "INSERT INTO `test` (test,test_ip) VALUES('$_GET[name]','$_GET[test_ip]')" or die("MySQL Error: ".mysql_error());
        
    mysql_query($sql) or die("MySQL Error: ".mysql_error());
    ?>
    <html>
    <head>
    <title><?php echo"$_SESSION[ip]"?>Test PopUp</title>
    <frameset  rows="79%,21%" frameborder="0" border="0">
       <frame border="0" src="window1.php">
       <frame border="0" src="window2.php">
    </frameset>
    <noframes>
    Ihr Browser unterstützt keine Frames!
    </noframes>
    </head>
    <body>

    </body>
    </html>
    <?php }
    else {
    echo 
    "<center>Zugriff verweigert!</center>";
    ?>
    Zuletzt geändert von kerbstone; 06.12.2004, 21:48.

  • #2
    wie wärs, wenn du die session an die frame-src's übergibst?
    Kissolino.com

    Kommentar


    • #3
      Aber das Ding ist, wenn ich das PopUp Aufrufe habe ich ja nicht mal die Session im Titel,
      wo ich kontrolliere ob die Session an die Datei übergeben wurde....
      Der Zugriff wird verweigert.?

      Kommentar


      • #4
        dem popup auch die session übergeben?
        Kissolino.com

        Kommentar


        • #5
          Ich sehe gerade, dass das Problem schon eher losgeht.
          Wenn ich mich erfolgreich eingeloggt habe und die Seite aktualisiere,
          bin ich sofort ausgeloggt...

          login.php
          PHP-Code:
          $ip $REMOTE_ADDR;

                if(
          in_array($name$username)){
                    if(
          in_array($pass$userpass)){
                        
          session_start();
                        
          $_SESSION[ip] = "$ip";

                    include(
          "connection.php");

                    
          $sql "INSERT INTO `test` SET `test` = '".$name."', `test_ip` = '".$ip."'"
                            
          or die("MySQL Error: ".mysql_error());
                    
          mysql_query($sql) or die("MySQL Error: ".mysql_error());

                        
          header("Location: logged_in/index.php");
                    exit;
                    }
                    else {
                       echo
          "$error[login]";
                    }
                } 

          Kommentar


          • #6
            Mit Strings arbeiten übst du noch !
            PHP-Code:
            //sowas wie:
            $test='$blubb';

            //oder:
            $wuff[blubb]='x'

            Wie prüfst du wann du eingeloggt bist und wann nicht ?

            Wenn man bedenkt das der Sessionspeicherbedarf realtiv klein sein sollte, muss sowenig Info wie möglich gespeichert werden.

            Man fragt z.B. die SessionuserTable ab ob ein NULL Wert für User X existiert wenn ja ausgeloggt und wenn nicht steht dort dann die Loginzeit wann er eingeloggt wurde......Davon ausgehend kann man die Onlinezeit errechnen......Und alle Einträge die Älter als 15min sind werden durch einen Cronjob auf NULL gesetzt oder aber durch eine wiederkehrendes Script was oft abgerufen wird....
            Die Session kann dann u.A. die IP+User_ID enthalten
            [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
              Weil du einen Redirect per Header machst, und dabei wiederum nicht die Session-ID anhängst.
              hopka.net!

              Kommentar


              • #8
                Original geschrieben von Hopka
                Weil du einen Redirect per Header machst, und dabei wiederum nicht die Session-ID anhängst.
                so ist es
                [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


                • #9
                  Wie leite ich sonst automatisch weiter? mit refresh?

                  Kommentar


                  • #10
                    Es spricht ja nichts gegen Weiterleitungen mit Header, aber du musst die Session-ID anhängen, sonst funktioniert das mit den Sessions nicht.

                    Lies dir am besten mal durch, was das Handbuch zum Thema Sessions zu sagen hat:
                    Session Funktionen
                    Insbesondere die Abschnitte über die Konstante SID und die Funktionen session_name und session_id.
                    hopka.net!

                    Kommentar

                    Lädt...
                    X