未定义的指数角色?

时间:2013-01-22 18:43:30

标签: php

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

3 个答案:

答案 0 :(得分:1)

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

$role = $_SESSION['role'];

在使用之前,您应该始终检查是否存在数组键,除非您完全知道它将被设置(即您在代码中的其他地方硬编码)。像这样的东西

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

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

if($role == "member") {

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

答案 1 :(得分:0)

if(isset($ _ SESSION [“role”])&amp;&amp; $ _SESSION [“role”] ==“member”){

答案 2 :(得分:0)

您应该先将值$_SESSION['role'];分配给<?php if(isset($_SESSION['username'],$_SESSION['password'])) $_SESSION['role'] = 1; $role = $_SESSION['role']; if($_SESSION["role"] == "member"){ ?> 。快速但简单的方法是..

{{1}}