2014-12-16 4 views
-1

이것은 사용자가 장바구니에 원하는 제품을 추가 할 수있는 쇼핑 온라인 페이지이지만 사용자가 장바구니보기를 클릭 할 때 변수 $ _SESSION [ onlineshop.php에서

: shoppingcart.php에서

<a href="shoppingcart.php?si=<?php echo session_id; ?>"><img src="cartt.png" alt="ٍShopping Cart" style="width:40px;height:40px"><br/>Shopping Cart</a> 

:

session_start(); 
    session_id($_GET['si']); 
'cart_Name는'] 데이터베이스에서 정보를 검색 할 페이지를 shoppingcart.php, 나는이 코드를 시도

는하지만 나에게이 오류 준 : 당신이 $의 _GET 변수에서 세션을로드하는 이유

Warning: Unknown: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0 

Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\xampp\tmp) in Unknown on line 0 
+3

당신은 shouldn 그것을 넘겨 줄 필요가 없다면,'shoppingcart.php' 페이지에서'$ _SESSION [ 'cart_Name']'을 통해 접근 할 수 있어야합니다. – Darren

+1

세션에 무언가가있는 경우 다른 페이지로 전달할 필요가 없습니다. 모든 페이지는'session_start();'등을 호출하여 세션에 액세스 할 수 있습니다. 실제로 세션 변수를 URL을 통해 전달하면 세션 변수를 사용하는 목적도 상실됩니다. – developerwjk

+0

첫 번째 페이지에서'session_start();'도 사용했다면 첫 페이지에 $ _SESSION [ 'cart_Name']을 설정하고'session_start(); '가 포함 된 후속 페이지에서이를 검색 할 수 있습니다 맨 먼저. 그 과정에서 다른 도메인 이름으로 뛰어 들지 않는다고 가정합니다 ...? –

답변

0

이 세션 ID가 두 페이지 사라지지를, 내가 궁금합니다.

또한 URL을 수정하고? si로 게임을하면 사람들이 다른 사람의 세션을 도용 할 수 있습니다. 이는 보안상의 문제입니다.

만약 당신이 당신의 페이지 B.php이 코드에

session_start(); 
$_SESSION["cartname"] = "foo"; 
<a href="B.php">click Me </a> 

을해서, A.php 페이지 :

session_start(); 
echo $_SESSION["cartname"]; 

가 표시됩니다 foo는

안부