2011-10-11 3 views
0

나는 이것을 알아낼 수 없으며 몇 가지 방법을 시도해 보았습니다.개체를 사용할 때 PHP 세션을 에코하는 방법

나는 다중 페이지 양식을 가지고 있는데, form_1.php는 제출시 정보를 DB로 보내고 form_2.php로 리디렉션됩니다. 나는를 form_2.php에 도착하면이

<?PHP 
if ($_POST) 
{ 
    session_start(); 

    foreach ($_POST as $field => $value) 
    { 
     $_SESSION['formdata'][$field] = $value; 
    } 
} 
.....code that sends info to db and then redirects page to form_2.php 
?> 

:

<?php 

session_start(); 

if (!empty($_POST)) { 

    // Used for later to determine result 
    $success = $error = false; 

    // Object syntax looks better and is easier to use than arrays to me 
    $post = new stdClass; 

    // Usually there would be much more validation and filtering, but this 
    // will work for now. 
    foreach ($_POST as $key => $val) 
     $post->$key = trim(strip_tags($_POST[$key])); 

....more code that loads dompdf and sends a pdf to email 
?> 

나는 같은 것을 사용하는 경우 :

<?php echo $post->Name; ?> 
<?php echo $post->Address; ?> 
<?php echo $post->City; ?> 
<?php echo $post->State; ?> 

나는 함께 form_1.php에 세션을 시작

어디서나 데이터가 표시되도록하려면 아무 것도 얻지 못합니다. 내가 객체를 사용하고 있기 때문에

<?php echo $_SESSION['Name'] ?> 

그것을인가 :

에 해당하는 사용자들은이 쓸 수있는 방법이 있나요? 내가 좋아 할 데이터 참조

<?php 
session_start(); 
Print_r ($_SESSION); 
?> 

: 나는 form_2.php에 이르기까지 모든 것을 닦아 그냥 사용하여 세션 인쇄 할 경우

도움이 될 수 있습니다

Array ([sfm_from_iframe] => 0 [formdata] => Array ([sfm_form_submitted] => yes [Employer_Zip] => 33333 [Injury_type] => Array ([0] => Head [1] => Left Shoulder [2] => Chest) [FirstName] => test [LastName] => tester [Address] => 1212 myaddy [City] => city1 [State] => Maine [Zip] => 55555 [Country] => AntiguaAndBarbuda [Phone] => 555-555-5555 [Email] => [email protected] [Employer_Name] => my employer [Employer_Address] => 1212 empaddy [Employer_City] => city2 [Employer_State] => Georgia [DBA_Carrier] => mycarrier [Employer_Phone] => 333-333-3333 [Accident_Date] => 10-03-2011 [Message] => asefsafsadf sadf asdfsdafsadf [yes_no] => yes [SocialSecurity] => 333-33-3333 [Submit_x] => 57 [Submit_y] => 13)) 

추가 노트를 ...

난 그냥 form_2.php 및 사용 POST를 사용하는 경우

<?php echo $post->Name; ?> 
<?php echo $post->Address; ?> 
<?php echo $post->City; ?> 

모든 것이 제대로 표시되지만 해당 페이지로 직접 POST를 사용하면됩니다. 세션 객체를 에코하는 방법을 쓰는 것으로 뭔가를 망쳐 놓고 있다고 생각하기 때문에 리디렉션을 사용하지 않습니다.

의견이 있으십니까?

+0

나는 당신의 세션 문제가 무엇인지 이해하지 못합니다. form_2.php에 대한 소스 코드를 얻을 수 있습니까? –

답변

0

는이 같은 리디렉션 :

DB에 삽입

Form1에 -submit-> 파일 -redirect-> Form2를

그 다음이 POST 데이터가 전달되지 않는 알아야하는 경우라면 세 번째 페이지. 더 자세한 정보 없이는 좋은 대답을하기는 어렵지만 어쨌든 DB 삽입 스크립트를 form2의 맨 위에 포함하고 form1을 form2에 직접 전달하거나 POST 데이터를 세션에 저장하여 form2의 맨 위에 가져와야합니다. 도움이 :)

+0

나는 simfatic 형태 (소프트웨어)를 사용하여 DB에 모든 정보를 보내고 있습니다. 제출 한 후 리다이렉트를 생성하여 올바른지 아닌지를 모르거나 form_2.php에 POST가 없다고 말할 수 없습니다. 그냥 리디렉션. simfatic의 코드는 다음과 같이 리디렉션을 정의합니다. $ tupage = new FM_ThankYouPage(); $ tupage-> SetRedirURL ("http://myurl.com/pdf_email/form_2.php"); $ formmailobj-> addModule ($ tupage); – rick

0

을 당신은 당신의 OOP 프레임 워크에서 제공하는 코드를 혼합하는 (CMS의 아마 어떤 종류)와 데이터가없는 경우는 $ 포스트를 사용하려고

희망.

$ _SESSION은 페이지 변경간에 데이터를 유지하는 데 사용됩니다. 당신은 당신의 form2.php에 모두 함께 병합하려면 다음 코드를 사용할 수 있습니다

foreach ($_POST as $key => $val){ 
     $post->$key = trim(strip_tags($_POST[$key])); 
} 
foreach($_SESSION['formdata'] as $key => $val){ 
     $post->$key = trim(strip_tags($_POST[$key])); 
} 

그런 다음, 당신이 당신의 $ 포스트 개체를 검사 할 때, 당신은 지금 거기에 데이터가 있어야합니다.

행운을 낸다

+0

그건 작동하지 않는 것 같아요. – rick

+0

나는 당신의 권리가 무언가가 혼합되고 있다고 생각합니다. 이것은 simfatic 형태의 핵으로 추가되었습니다 : if ($ _POST) { \t session_start(); \t \t의 foreach ($ 필드와 $ _POST => $ 값) \t \t \t {$ _SESSION [ 'formdata'] [$ 필드 = $ 값; \t \t} }이 때문에 양식을 내가 DOMPDF를 사용하여 2 form_2에 사용이 쉽게이 // 개체 구문이 좋아 보이는 만들어 내게 배열보다 사용하기 쉽게되고 있었다 \t $ 포스트 = 새 stdClass; \t \t // 일반적으로 훨씬 더 많은 유효성 검사 및 필터링이 있지만이 \t //는 현재 작동합니다. \t foreach ($ _POST를 $ key => $ val) \t \t $ post -> $ key = trim (strip_tags ($ _ POST [$ key]))); – rick

관련 문제