2011-02-03 8 views
-1

사용자가 로그온하고 로그인 한 후 페이지에 표시하는 동안 폼의 데이터를 저장하기 위해 PHP 세션을 시작하려고합니다. 지금까지의 모든 시도는 실패했고 내가 뭘 잘못하고 있는지 알지 못합니다. 그래서 내가 잘못한 곳을 말해 줄 수 있다면 이것은 나의 절차입니다.PHP 세션 문제

1 단계

첫 페이지 이전의 데이터를 수신 한 그것의 형태를 갖는다. 이 데이터 중 일부는 세션에 들어가야하기 때문에 페이지의 제일 맨 위에는 다른 것이 있기 전에 있습니다. 성공시

3 단계

<?php 

session_start(); 

$_SESSION['booking-form'] = array('GT_title' => $SEStitle, 'GT_actual_duration' => $SESactualduration, 'cal_startdate' => $SEScalstartdate, 'GT_picture' => $SESpicture, 'GT_total_duration' => $SEStotalduration, 'GT_total_dives' => $SEStotaldives, 'GT_total_price' => $SEStotalprice, 'GT_total_duration' => $SEStotalduration, 'GT_specifications' => $SESspecifications); 
?> 

2 단계

사용자 로그는 사용자가 지금 bookinginitial.php라고 다른 페이지에 관한 것이다. 다음

4 단계

bookinginitial .PHP의 코드이다. 나는 그것이 모을 수있는 방법의 3 가지 가능성을 가지고 설정했다.

<?php 

session_start(); 

$_SESSION['booking-form']; 
    echo $_POST['SEStitle']; 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 

<?php $_SESSION['booking-form']; 

echo $_POST['SEStitle']; 
?> 

<?php 
     echo $_POST['SEStitle']; ?> 
</body> 
</html> 

분명히 그것이 틀린 것이 분명하다. 내가 PHP로 시작했고 최선을 다하고 있기 때문에 그것이 세션 배열과 관련이 있는지는 모르겠습니다.

도움을 주시면 감사하겠습니다.

놀라운,

+2

var_dump ($ _SESSION)을 시도하면 내부에 – SergeS

답변

0

이것이 당신에게 문제가되는지 확실하지 않아서 "나는 3 가지 가능성으로 설정했습니다."라는 의혹에 대해 언급 할 것입니다. 그 자체로

이 라인은 아무것도하지 않습니다 :

$_SESSION['booking-form']; 

그리고 난 당신이 실제로 조건부로 래핑하는 의미 가정합니다. 구문은 다음과 같습니다.

<?php 
session_start(); 
print_r($_SESSION); ########### for debugging purposes ########### 

if ($_SESSION['booking-form']) { 

    echo $_POST['SEStitle']; 

    ?> 
    <!DOCTYPE html> 
    <html>... 
    <?php 
} 
elseif ($_SESSION['booking-form']) { 
    ... 

두 번째 조건은 가능한 다른 항목을 확인하기위한 것입니다. 하지만 귀하의 페이지가 실제로 무엇인지 전혀 모르겠습니다.

+0

나는 갈라진 틈이 생기지 않는다. 아마 내가하는 일을 설명하는 것이 가장 좋을 것입니다. 1) 고객이 양식을 채 웁니다. 2) 양식은 임시 페이지로 제출하여 주문한 내용을 확인합니다. 3) 의미있는 양식의 클라이언트 로그가 손실됩니다.세션의 사용은 해당 양식 데이터를 유지하고 로그인 한 후에 다른 페이지 (성공 페이지)에 표시하는 것이 었습니다. 로그인 시스템은 잘 작동하지만이 날짜를 붙잡기 만하면됩니다. 이전에는 세션을 사용한 적이 없으며 문서에서이 작업을 수행하는 방법을 볼 수 없습니다. –

+0

@RobinKnight : $ _SESSION 배열을 사용하는 것이 좋다고 생각합니다. 여기서 처리 로직에 대해 염려했습니다. Byron이 말했듯이'print_r()'테스트를 해보십시오. – mario

+0

OK 수신자 페이지에 print_r()을 넣습니다. 아무 반응이 없습니다. 내가 말했듯이 내가 어디에 놓아야할지 모르겠다. 문서에 따르면 전까지는 페이지 상단에 모두 표시됩니다. 나는 거기에서 무엇이 보여 질 수 있는지를 보지 못한다. 그러나 나는 그것을 거기에두고 다른 여러 장소에서 그것을 시도했다. 아무 반응이 없습니다. 왜냐하면 나는 그것을 사용하는 방법을 모르기 때문에 문서는 도움이되지 않는다. 페이지 1 'test'라는 페이지의 입력 값을 고정시키고 싶습니다. 3 페이지에 나는 그것을 보여주고 싶다. 어떻게해야합니까? 그렇다면 이해해야합니다. 감사. –

2

세션 배열에 액세스하면됩니다. 폼에서 필드를 보낼 때

echo $_SESSION['booking-form']['SEStitle'];

$_POST 배열에만 설정됩니다.

+0

OK 챕스가 표시되지만 어디로 이동합니까? 나는 그것을 임시로받은 2 곳에 넣었고 아무 일도 일어나지 않습니다. –

+0

세션의 내용을 보려면'print_r ($ _ SESSION)'을하십시오. 배열을 다시 보면, 실제로'echo $ _SESSION [ '예약 양식'] [ 'GT_title']; ' –