php
  • session
  • 2013-04-24 213 views 0 likes 
    0

    在我來到這裏之前,我已經閱讀了許多不同的事情來解決這個問題。 反正我得到注意:未定義索引:錯誤

    "Notice: Undefined index: Username in C:\xampp\htdocs\home\header.php on line 18" 
    

    我無法弄清楚什麼我做錯了。 我用cookies來處理會話,所以這有點不同。

    這裏是代碼。

    的index.php

    <table class='siteTable'> 
    <tr> 
    <td class='account'> 
    
    
    <?php 
    if(!$ULN){ 
    echo" 
    <div class='settings1'> 
    <center>Login</center> 
    <br /> 
    
    </div> 
    <div class='settings2'> 
    <center>Register</center> 
    <br /> 
    
    </div> 
    "; 
    } else { 
    echo" 
    Logged In! 
    "; 
    } 
    ?> 
    </td> 
    <td> 
    
    </td> 
    </tr> 
    </table> 
    
    <?php include("footer.php"); ?> 
    

    的header.php

    <?php 
    ob_start(); 
    ?> 
    <html> 
    <head> 
    <link href='css/style.css' type='css/text' rel='stylesheet'> 
    </head> 
    <body style='background-image:url("darkbg.png");'> 
    <?php 
    include("database.php"); 
    ?> 
    <div class='mainDiv' style='background-image:url("mdbg.png");'> 
    <div class='siteBanner' style='background-image:url("siteBanner.png");'></div> 
    <?php 
    session_start(); 
    
    
    $LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
    $ULN = mysql_fetch_object($LoggedIn); 
    
    
    $banner = true; 
    if($banner == true){ 
    echo"<div class='Banner'>In the works.</div>"; 
    } 
    ?> 
    <div class='siteLinks'> 
    <ul> 
    <a href='index.php'> 
    <li> 
    Home 
    </li> 
    </a> 
    <a href='#catalog.php'> 
    <li> 
    Catalog 
    </li> 
    </a> 
    <a href='#users.php'> 
    <li> 
    Users 
    </li> 
    </a> 
    <a href='#forum.php'> 
    <li> 
    Forum 
    </li> 
    </a> 
    </ul> 
    </div> 
    <div class='siteContent'> 
    

    我使用

    "$LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
    $ULN = mysql_fetch_object($LoggedIn);" 
    

    檢查的用戶或沒有登錄,和th問題在哪裏。 對不起,如果這已被回答已經或沒有,如果是這樣我不能找到它。 我發現的所有東西都是用戶$ _POST或$ _GET。

    +2

    說 「不」 意大利麪條代碼...... – 2013-04-24 20:54:42

    +0

    說 「不」 在Word中編寫代碼。 – elclanrs 2013-04-24 20:55:11

    +0

    對縮排代碼說「不」 – raidenace 2013-04-24 20:56:35

    回答

    0

    查詢前查詢$_SESSION['Username']。新訪問者不會設置該會話變量。

    if (isset($_SESSION['Username'])) { 
        $LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
        $ULN = mysql_fetch_object($LoggedIn); 
    } 
    
    1

    不是告訴你這個實例有什麼問題,而是告訴你如何調試你自己的代碼。這些是根據錯誤消息找出問題的步驟。

    1. 查找行號。「......第18行」告訴你問題出現在代碼的第18行。計數直到達到那一行。這是這一個:

    $的loggedIn =請求mysql_query( 「SELECT * FROM用戶其中username = '」。$ _ SESSION [ '用戶名'。 「'」);

    1. 搜索谷歌的錯誤消息,短語,找出這意味着什麼。在這種情況下,這是「未定義的索引」。單詞「index」是數組的關鍵字的另一個詞。順便說一句,$ _GET,$ _POST和$ _SESSION都是數組。 「未定義」表示索引不存在。用簡單的英語,這意味着$ _SESSION ['用戶名']還不存在。您應該先檢查它是否存在,然後再試着去查看它。
    if(isset($_SESSION['Username'])) { 
         $LoggedIn = mysql_query("SELECT * FROM Users WHERE Username='".$_SESSION['Username']."'"); 
         $ULN = mysql_fetch_object($LoggedIn); 
    } else { 
         $ULN = false; 
    } 
    
    相關問題