session side-effect

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

  • session side-effect

    bei meinem login-script tritt nach erfolgtem login diese fehlermeldung am unteren bildschirmrand auf (der login funktioniert dabei aber so wie er soll):

    Warning: unknown: your script possibly relies on a session side-effect, which existed until PHP 4.2.3. pleas be advised that the session extension does not consider global variables as a source of date, unless register_globals is enabled. you can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in unknown on line 0
    register_global ist auf off und mit der eigenen übersetzung dieser meldung kann ich nicht viel anfangen. könnte da jemand ein paar klärende worte drüber verlieren oder wie es hier üblich ist ein hinweis zum nachlesen geben? das wäre super. anbei das loginscript:

    thx

    PHP-Code:
    session_start();
    require("connect.inc.php");

    if(session_is_registered('user')) {

        $user = $_SESSION['user'];

        header("location:k_bereich.php");

        die;     
    }

    <?php if(!isset($_POST['submit'])) { ?>

        <form action="<?php $PHP_SELF ?>" method="post">

          <table width="400" bgcolor="#ffffff" border="0" 

    cellpadding="1" 

    cellspacing="1" align="center">

            <tr1>

              <td width="170" bgcolor="#ffffff">Benutzername:</td>

                <td width="230" bgcolor="#ffffff"><input type="text"

     name="username" width="230" size="30" class="input"<?php

     
    if(!empty($_POST['username'])) {echo 

    value="'
    .$_POST['username'].'"';} ?>>

                </td>

            </tr1>

            <tr>

              <td width="170" bgcolor="#ffffff">Passwort:</td>

              <td width="230" bgcolor="#ffffff"><input type="password" 

    name="password" width="230" size="30" class="input"></td>

            </tr>

            <tr>

              <td height="34" colspan="2" align="right" 

    bgcolor="#ffffff"><input type="submit" name="submit"

     value="Anmelden" class="button">

              </td>

            </tr>

            <tr>
              <td bgcolor="#ffffff" align="left" colspan="2">Noch kein 

    Benutzerkonto? <a href="neu.php">Hier</a> 

    kostenlos registrieren </td>

            </tr>
          </table>      
        </form>
        <?php

    }elseif(!isset($_POST['username']) || $_POST['username'] == "")

    {
        echo 
    '<p align="center">Einen Benutzernamen brauchen wir

     schon ;-)'
    ;
        echo 
    '<form action="login.php" method="post">';    

        echo 
    '<input type="hidden" name="username" 

    value="'
    .$_POST['username'].'">';

        echo 
    '<input type="submit" name="zurueck" 

    value="Zur&uuml;ck">'
    ;

    }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&uuml;ck">'
    ;

        echo 
    '</p>';

        echo 
    '</form>';

    }else{
        
    $password1 md5($_REQUEST['password']);

        
    //$password1 = md5($_POST['password']);

        
    $query mysql_query("SELECT user, pass FROM users

     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&uuml;ck</a></p>'
    );

        if(
    $password1 != $result['pass']){

            echo 
    '<p align="center">Sorry, aber dieses

     Passwort
     ist falsch!<br><br>'
    ;

            echo 
    '<form action="login.php" method="post">';        

            echo 
    '<input type="hidden" name="username" 

    value="'
    .$_POST['username'].'">';

            echo 
    $username;

            echo 
    '<input type="submit" name="zurueck" 

    value="Zur&uuml;ck">'
    ;
            echo 
    '</form>';
            die;
        }else{
            
    $user $result['user'];

            
    session_register('user');

            echo 
    '<p align="center">LogIn 

    erfolgreich!!!!!!<br><br><a href="k_bereich.php">Weiter</a></p>'
    ;

            
    ?>
        <script language="JavaScript">

            window.setTimeout

    ('window.location.href="k_bereich.php"','4000')


            </script>
        <?php
    Zuletzt geändert von damilchmann; 30.09.2007, 22:33.

  • #2
    session_is_registered, session_register sind veraltete funktionen.

    statt session_is_registered
    einfach if(isset($_SESSION['user'])) benutzen
    und stat
    session_register,
    einfach $_SESSION['user']= $result['user'];
    Slava
    bituniverse.com

    Kommentar


    • #3
      und das verursacht diese meldung?

      Kommentar


      • #4
        warum fragst du?
        Slava
        bituniverse.com

        Kommentar


        • #5
          tja, weil diese meldung beim login kommt, deshalb frag ich. will sie ja wegbekommen bzw. wissen, wo das problem liegt. daher auch die frage, ob der hinweis auf das session_registered der grund für das problem bzw. die fehlermeldung ist

          Kommentar


          • #6
            ja!
            das ist der Grund, aber auch wenn das kein Grund wäre, lohnt es sich die code so anzupassen, wie ich dir vorgeschlagen habe.
            ist das schwer 2 zeilen zu verändern?
            Slava
            bituniverse.com

            Kommentar


            • #7
              natürlich ist das nicht schwer aber du verstehst doch sicher, dass ich nachfrage, ob das nun ein allg. hinweis war oder eben die antwort auf meine frage. das ging aus dem text nicht hervor. mein gott, warum immer eine frage mit ner gegenfrage beantworten???

              danke jedoch trotzdem, funzt wunderbar

              Kommentar


              • #8
                Wenn einen die Zweifel plagen,
                könnte man das Handbuch befragen...
                Wir werden alle sterben

                Kommentar


                • #9
                  dann wäre dieses forum wohl nutzlos, wenn das alles so einfach wäre.
                  "is es aber nich"

                  Kommentar


                  • #10
                    Nunja, zumindest kann man dort nachlesen, dass diese Funktionen veraltet sind! Jetzt noch ein kleinwenig nachdenlen, dann sollte man schon irgendwann auf Ideen kommen....
                    Wir werden alle sterben

                    Kommentar


                    • #11
                      mein gott, laber doch nicht. wozu dann solche foren, wenn doch alle bitte erstmal halbe profis sein sollen, bevor sie es wagen können hier fragen zu stellen.

                      für jemanden der es weiss, erschließt sich das natürlich, wenn dem aber nicht so ist, fällt einem nicht sofort das schlagwort ein, unter dem man gucken könnte. viele von euch hier haben verlernt, sich auch mal wieder auf ein niedrigeres niveau zu begeben und gehen immer von ihrem standard aus. das würde aber wie schon gesagt ein solches forum ad absurdum führen. also lasst doch einfach mal die klugen lehrersprüche, die musste sich jeder von uns in der schule genug anhören

                      reinhaun

                      Kommentar


                      • #12
                        OffTopic:
                        Oje... Das scheint mir ein klarer Fall von DokuLeseVerweigerung zu sein.
                        Wir werden alle sterben

                        Kommentar


                        • #13
                          *kopfschüttel

                          Kommentar


                          • #14
                            Hä? Das Stichwort Session hätte dir ja wohl in den Sinn kommen können?
                            http://php.net/session
                            Und wenn du dir die Website (sogar deutsch) komplett durch liest, wird da mehrmals erläutert, was man nicht tun sollte, was genau der Bug ist, etc. etc. etc.

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

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

                            Kommentar


                            • #15
                              OffTopic:
                              @ghostgambler
                              Glaub nicht, dass da noch Einsicht kommt...

                              Wer will, findet Wege,
                              wer nicht will, findet Gründe...


                              Wir werden alle sterben

                              Kommentar

                              Lädt...
                              X