請問一個SESSION的錯誤訊息

edited 十月 2013 in PHP新手區
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, 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.

我寫了一個使用者資料編輯的程式(id_check.php)
在確認帳號密碼後~~
會進行 session_register("user_id");
然後列印下面這段javaScript
//////////////////////////////////
<script>
alert("歡迎您再次回來");location.href="../admin.php";
<\script>
//////////////////////////////////
正常的話他應該要跳到admin.php這個頁面並顯示出使用者編輯畫面

但是現在程式在執行確認之後卻沒有跳到admin.php
而是在原來頁面...顯示上面那段錯誤訊息
但是我若直接在瀏覽器輸入admin.php的位址請問有人知道這段訊息的意義嗎?

其實在id_check.php還寫了密碼錯誤的檢查程序
同樣是用javascript讓網頁跳回登入的頁面
但是都沒有問題...反而輸入正確資料會跳不到該去的頁面
卻可以正常顯示使用者編輯資料的畫面(表示session有被註冊)

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=1940

評論

  • edited 八月 2006
    你可以照著錯誤訊息說的,在 php.ini 把 session.bug_compat_42 與 session.bug_compat_warn 兩個設定設定為 false 。

    不確定你的程式碼如何運作會出現這樣的錯誤訊息,好像 PHP 提醒你不要使用這樣的方式吧。
  • edited 八月 2006
    我其實已經照他說法改了~~
    但是差別只是少了警告訊息~~
    那段javaScript並沒有被執行

    我仔細說明一下我使用session的部份
    ********************
    id_check.php
    這個程式會接收POST過來的帳號跟密碼,然後取出資料庫的資料比對
    正確無誤的話
    session_register("user_id");
    然後列印跳頁的JAVASCRIPT....跳到admin.php
    ********************

    admin.php
    這裡先檢查session是否註冊了user_id
    if(isset($_SESSION["user_id"]))
    確定後從資料庫叫出user_id的資料顯示出來
    $st_id = $_SESSION["user_id"];

    ********************************************

    以上就是我程式碼中有使用session的部份
    至於為什麼帳號密碼檢查過了卻不執行javascript讓我很納悶
    因為我若輸入錯誤的密碼...javascript是會執行的~且跳到對應的頁面
    反而密碼正確,註冊了session後出問題
    但是我這時直接執行admin.php這個頁面的話
    是正常運作的~~表示$_SESSION["user_id"]是存在的
  • edited 八月 2006
    關於這訊息原文是這樣~不知道是否有人了解他的意思?

    ; PHP 4.2 and less have an undocumented feature/bug that allows you to
    ; to initialize a session variable in the global scope, albeit register_globals
    ; is disabled. PHP 4.3 and later will warn you, if this feature is used.
    ; You can disable the feature and the warning separately. At this time,
    ; the warning is only displayed, if bug_compat_42 is enabled.

    session.bug_compat_42 = 1
    session.bug_compat_warn = 1
  • edited 八月 2006
    Everything is OK!!!
Sign In or Register to comment.