2014-05-16 1 views
0

오류가 발생한 이유를 알 수 없습니다. 추가 단추를 누르면 새로 고침시 알림이 사라집니다.공지 사항 : ISSET을 사용하는 경우에도 정의되지 않은 색인

<?php 

    session_start(); 
    //session_destroy(); 
    $page ='index.php'; 

    mysql_connect('localhost','root','') or die(mysql_error()); 
    mysql_select_db('cart') or die(mysql_error()); 


    if (isset($_GET['add'])) { 

     $_SESSION['cart_'.$_GET['add']] +'1'; 
     } 

    function products() { 

    $get = mysql_query('Select id, name, description, price from products where quantity > 0 order by id desc'); 

    if (mysql_num_rows($get) == 0) 
    { 
    echo "There are no products to display"; 
    } 
     while ($get_row = mysql_fetch_assoc($get)) { 
      echo '<p>'.$get_row['name'].'<br/>' 
         .$get_row['description'].'<br/>' 
         .number_format($get_row['price'],2) 
         .' <a href="cart.php?add='.$get_row['id'].'"> 
         Add 
         </a> 
       </p>'; 

      } 
    } 
    echo $_SESSION['cart_1'] 
?> 

-------- 처음으로의 index.php를 실행 한 후 index.php를

<?php require 'cart.php' ?> 
<html> 
<head> 
</head> 
<body> 

<?php products(); ?> 

</body> 
</html> 

, 나는 오류가 나타납니다 : 공지 사항 : 정의되지 않은 인덱스 : cart_1을 E에 : \ xamp \ htdocs \ ShopCart \ cart.php on line 35

+0

그 행에'= '기호를 잊어 버린 것 같습니다 ... – bwoebi

+0

'cart = 123'항목이 이전에 정의되지 않았기 때문에'+ ='와 같은 고지가 나타납니다. – mario

답변

1

주의 사항은 echo $_SESSION['cart_1']에서옵니다. 그리고 거기에 isset()을 사용하고 있지 않습니다. 이 같은 시도 : 그건 당신이 기대하는 거라면

if (isset($_SESSION['cart_1'])) { 
    echo $_SESSION['cart_1']; 
} else { 
    echo "Session cart_1 is not set. Here is what is inside Session: " . implode(', ',array_keys($_SESSION)); 
} 
0
$_SESSION['cart_'.$_GET['add']] +'1'; 

이는 세션 변수를 만들지 않습니다. 당신은

$_SESSION['set_1'] = 0; 

로 설정하고 나는 '추가'변수가 무엇인지 모르는

$_SESSION['set_1']++; 

와 함께 증가한다. '2'라고 말하면, 세션은 set_21이 아니라 set_1으로 지정됩니다. 단, php의 연결 연산자는 '.'입니다. '+'가 아닙니다.

+0

'추가'는 cart.php에 링크하는 버튼입니다. –