Probelm mit $_SESSION

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

  • Probelm mit $_SESSION

    Hallo zusammen,

    ich habe ein kleines Login Script das leider nicht mehr ganz funktioniert. Mein Script soll mich einloggen und danach klick ich auf einen link und dabei soll ich eingeloggt bleiben. Firefox macht es, IE 6 nicht.

    ich poste am besten mal meinen Quelltext vielleicht findet jemand nen fehler.

    --------------login.php--------------


    PHP-Code:
    <?php
    session_start
    ();
    require(
    "../connect/connect.inc.php");
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3D//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title>LogIn zum Verwaltungsbereich</title>
    <link href="../styles/style.css" rel="stylesheet" type="text/css">

    </head>
    <body>
    <?php if(!isset($_POST['submit'])) { ?>
    <form action="<?php $PHP_SELF ?>" method="post">
        <table width="400" bgcolor="#000000" border="0" cellpadding="5" cellspacing="1" align="center">
            <tr>
                <td bgcolor="#e7e7e7" align="center" colspan="2">
                    <b>Bitte erst anmelden</b>
                </td>
            </tr>
            <tr>
                <td width="170" bgcolor="#e7e7e7">Benutzername</td>
                <td width="230" bgcolor="#ffffff"><input type="text" name="username" size="20" class="input" 
    <?php if($_POST['username'] != "") { echo 'value="'.$_POST['username'].'"';} ?>></td>
            </tr>
            <tr>
                <td width="170" bgcolor="#e7e7e7">Passwort</td>
                <td width="230" bgcolor="#ffffff"><input type="password" name="password" size="20" class="input"></td>
            </tr>
            <tr>
                <td bgcolor="#e7e7e7" align="center" colspan="2">
                    <input type="submit" name="submit" value="Anmelden" class="button">
                </td>
            </tr>
        </table>
    </form>
    <?php
    }elseif(!$_POST['username'] || $_POST['username'] == ""){
    echo 
    '<p align="center">Einen Benutzername brauchen wir schon ;-)<br><br><a href="login.php">Zurück</a></p>';
    }elseif(!
    $_POST['password'] || $_POST['password'] == ""){
    echo 
    '<form action="login.php" method="post">';
    echo 
    '<p align="center"> Ein Passwort brauchen wir schon ;-) <br><br>';
    echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
    echo 
    '<input type="submit" name="zurueck" value="Zurück">';
    echo 
    '</p>';
    echo 
    '</form>';
    }else{
    $password=md5($password);
    $query=@mysql_query("SELECT user, pass FROM admin_mitglieder WHERE user='".$_POST['username']."'"
    or die(
    'Select ist fehlgeschlagen!');
    $result=@mysql_fetch_array($query) or die ('<p align="center">Sorry, aber dieser Benutzername 
    existiert nicht!<br><a href="login.php">Zurück</a></p>'
    );
    if(
    $password != $result['pass']){
    echo 
    '<form action="login.php" mehtod="post">';
    echo 
    '<p align="center">Sorry, aber dieses Passwort ist falsch!<br><br>';
    echo 
    '<input type="hidden" name="username" value="'.$_POST['username'].'">';
    echo 
    '<input type="submit" name="zurueck" value="Zurück"></p>';
    echo 
    '</form>';
    die;
    }else{
    $user=$result['user'];
    /*
    session_register('user');
    */
    $_SESSION['user']=$user;

    mysql_query("UPDATE admin_mitglieder SET lastlogin=NOW() where user='$user'");

    echo 
    "<a href=test.php>test</a>";


    }
    }
    ?>
    </body>
    </html>

    --------------test.php--------------


    PHP-Code:
    <?php
    session_start
    ();
    require(
    "../connect/connect.inc.php");
    if(
    $_SESSION['user'] == "") {
    header("location:login.php");
    die;
    }
    /*
    if(!session_is_registered('user') || $_SESSION['user'] == "") {
    header("location:login.php");
    die;
    }
    */
    echo "<html>";
    echo 
    "<title>Übersicht Begegnungen (Begegnung ändern/löschen)</title>";
    echo 
    "<link rel='stylesheet' type='text/css' href='../styles/style.css'>";

    echo 
    "<body>";

        
    $time getdate();
              
    $user$_SESSION['user'];

    echo 
    $user;
      
      
      
    echo 
    "</body>";
    echo 
    "</html>";
    ?>

    ich hoff mal jemand kann mir helfen...

    das ganze kann man sich natürlich auch anschauen unter www.fc-wittlingen.de/admin/login.php

    als Benutzer und Passwort jeweils: test

    gruß Mario
    Zuletzt geändert von roemario; 18.01.2005, 10:17.
    Nichts ist schwerer und
    nichts erfordert mehr Charakter
    als sich im offenen Gegensatz
    zu seiner Zeit zu befinden und
    laut zu sagen
    NEIN!!

  • #2
    http://www.php-resource.de/forum/sho...threadid=47906
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      ne schöne fehlerbeschreibung oder was sagt ihr dazu?

      s'wetter war gestern auch recht schön und mittags gabs pommes.

      ich schließ mich wahsaga's post an
      shit happens

      Kommentar


      • #4
        also gut, dann probier ich es nochmal:

        was mein script machen sollte:
        - es könen sich nur Benutzer mit Berechtigung anmelden
        - nach dem login soll ein link angezeigt werden, der auf die Seite test.php verweist.
        - die inhalt der seite test.php sollen nur dann angezeigt werden, wenn man angemeldet ist

        was mein script macht:
        - es können sich nur Benutzer mit Berechtigung anmelden
        - nach dem login wird ein link angezeigt, welcher auf die Seite test.php verweist.
        - der inhalt der Seite test.php wird nur unter firefox angezeigt. unter IE 6 werde ich wieder ausgeloggt.

        habe keine Ahnung wie ich mein script sonst genauer beschreiben soll...
        Nichts ist schwerer und
        nichts erfordert mehr Charakter
        als sich im offenen Gegensatz
        zu seiner Zeit zu befinden und
        laut zu sagen
        NEIN!!

        Kommentar


        • #5
          Hört sich nicht nach einem PHP-Problem an...

          Sicherheitseinstellungen des IE (Cookie-Behandlung?) überprüft?

          Kommentar


          • #6
            Original geschrieben von roemario
            - der inhalt der Seite test.php wird nur unter firefox angezeigt. unter IE 6 werde ich wieder ausgeloggt.
            übergabe der SID per cookie?
            einstellungen in den browsern diesbezüglich überprüft?
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              hm hat das was mit cookies zu tun wenn er mit "SESSIONS" arbeiten will?

              ich check auch nicht sein problem denn sowie im firefox als auch im ie kann ihc mich einloggen und kann danach auf den link klicken?
              shit happens

              Kommentar


              • #8
                meine browsereinstellungen kann ich leider nicht ändern (hab keinerlei rechte dazu).

                mir scheint es aber, als ob es das gleiche Problem wiehier ist, doch leider kann ich das durch meine berechtigungsprobleme nicht testen.

                @Magic11: du wirst also sobald du auf den Link klickst nicht wieder zu der anmeldemaske weitergeleitet (unter IE)??

                edit:

                Ich hab das jetzt auch mal ausprobiert mit einem ie bei dem ich die Sicherheitseinstellungen einstellen konnte. Funktioniert bei mir trotzdem nicht!

                Irgendwas mach ich falsch
                Zuletzt geändert von roemario; 18.01.2005, 14:31.
                Nichts ist schwerer und
                nichts erfordert mehr Charakter
                als sich im offenen Gegensatz
                zu seiner Zeit zu befinden und
                laut zu sagen
                NEIN!!

                Kommentar


                • #9
                  ich hab mal so nen fehlerausgabe reingebaut,

                  jetzt bringt er mir folgenden fehler:

                  Notice: Undefined variable: _SESSION in /srv/www/htdocs/web36/html/dev/new_fcw/admin/test.php on line 11

                  Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web36/html/dev/new_fcw/admin/test.php:11) in /srv/www/htdocs/web36/html/dev/new_fcw/admin/test.php on line 12


                  das würde folgende Zeilen betreffen:

                  PHP-Code:
                  if($_SESSION['user'] == "") {
                  header("location:login.php");
                  die;

                  wo ist da der fehler...
                  Nichts ist schwerer und
                  nichts erfordert mehr Charakter
                  als sich im offenen Gegensatz
                  zu seiner Zeit zu befinden und
                  laut zu sagen
                  NEIN!!

                  Kommentar


                  • #10
                    Original geschrieben von Magic11
                    hm hat das was mit cookies zu tun wenn er mit "SESSIONS" arbeiten will?
                    Schon mal was von Session-Cookies (Sitzungscookies laut IE) gehört?

                    Kommentar


                    • #11
                      Original geschrieben von Heini81
                      Schon mal was von Session-Cookies (Sitzungscookies laut IE) gehört?
                      schon mal gehört, dass das, was der IE "sitzungscookie" nennt, was anderes meint?

                      *scnr*
                      I don't believe in rebirth. Actually, I never did in my whole lives.

                      Kommentar


                      • #12
                        Original geschrieben von roemario
                        wo ist da der fehler...
                        da
                        Notice: Undefined variable: _SESSION in /srv/www/htdocs/web36/html/dev/new_fcw/admin/test.php on line 11

                        Warning: Cannot modify header information - headers already sent by (output started at /srv/www/htdocs/web36/html/dev/new_fcw/admin/test.php:11) in /srv/www/htdocs/web36/html/dev/new_fcw/admin/test.php on line 12


                        das würde folgende Zeilen betreffen:

                        PHP-Code:
                        if($_SESSION['user'] == "") {
                        header("location:login.php");
                        die;


                        Setz mal auf der Test.php folgende Zeile unter session_start() und poste die Ausgabe
                        PHP-Code:
                        echo '<pre>' print_r($_SESSIONtrue) . '</pre>'
                        Außerdem ersetz mal session_start() in Test.php durch
                        PHP-Code:
                        if (session_start())echo 'true'; else echo 'false'
                        und poste was ausgegeben wird, sollte zwar eigentlich wenn ne Fehlermeldung kommen (denke ich), aber man kann ja mal gucken

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          Also, ich werd zumindest mal nicht mehr ausgeloggt!

                          Und das hier bekomme ich angezeigt:

                          true

                          Array
                          (
                          )


                          kann leider nicht mehr dazu schreiben, da ich schule hab
                          Nichts ist schwerer und
                          nichts erfordert mehr Charakter
                          als sich im offenen Gegensatz
                          zu seiner Zeit zu befinden und
                          laut zu sagen
                          NEIN!!

                          Kommentar

                          Lädt...
                          X