2013-01-22 54 views
0
<?php 
if(isset($_SESSION['username'],$_SESSION['password'])) 
$role = $_SESSION['role']; 
if($_SESSION["role"] == "member"){ 
?> 

<form name ="add_cart" method="post" action="Shoppingcart.php" onSubmit="alert('Item added!')"> 
<input type='hidden' name='id' id="id" value='<?php echo $id; ?>'> 
<input type="text" name="quantity" id="quantity" value="1" size="3" maxlength="3"> 
<input type="submit" name="Add" value="ADD TO CART" style="width:150px; background-color:black; border:none; color:White "/> 
       </td> 
      </form> 

     <?php 
    }} 

    ?> 

這是我的錯誤:UNDEFINED INDEX角色?

NOTICE: UNDEFINED INDEX: ROLE IN C:\XAMPP\HTDOCS\FYP2\FOODCATALOG.PHP ON LINE 181

回答

1

這意味着$_SESSION['role']未設置。這是在該行有可能發生的事情:

$role = $_SESSION['role']; 

你總是在使用前應檢查數組鍵的存在,除非你絕對知道它會被設置(即你很難在你的代碼的其他地方的代碼吧)。因此,像這樣

$role = ''; 
if(!empty($_SESSION['role'])) { 
    $role = $_SESSION['role']; 
} 

然後,您應該也更新您有條件使用$role而不是$_SESSION['role']

if($role == "member") { 

在這裏,你知道$role可以保證被設定,因此它是安全的條件來使用它。

0

如果(isset($ _ SESSION [ 「角色」])& & $ _SESSION [ 「角色」] == 「會員」){

+0

謝謝!有用!! – user2001394

0

您應該高於一切assing的值$_SESSION['role'];。快速但簡單的方法是..

<?php 
if(isset($_SESSION['username'],$_SESSION['password'])) 
    $_SESSION['role'] = 1; 
    $role = $_SESSION['role']; 
if($_SESSION["role"] == "member"){ 
?>