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
    }}

    ?>

这是我的错误:

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

4

3 回答 3

2

这意味着$_SESSION['role']没有设置。这很可能发生在这一行:

$role = $_SESSION['role'];

在使用数组键之前,您应该始终检查它是否存在,除非您绝对知道它会被设置(即您在代码的其他地方硬编码它)。所以像这样

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

然后,您还应该更新您有条件使用$role而不是$_SESSION['role'].

if($role == "member") {

在这里,您知道$role保证会设置它,因此在条件中使用它是安全的。

于 2013-01-22T18:53:02.570 回答
0

if(isset($_SESSION["role"]) && $_SESSION["role"] == "member"){

于 2013-01-22T18:58:11.457 回答
0

你应该先给它赋值$_SESSION['role'];。快速但简单的方法是..

<?php
if(isset($_SESSION['username'],$_SESSION['password']))
  $_SESSION['role'] = 1;
  $role = $_SESSION['role'];
 if($_SESSION["role"] == "member"){
?>
于 2013-01-22T18:58:13.407 回答