Program Tip

세션 변수로 배열

programtip 2020. 11. 23. 19:53
반응형

세션 변수로 배열


PHP에서 배열을 세션 변수로 만들 수 있습니까?

상황은 특정 페이지에 대한 링크가있는 일부 셀이있는 테이블 (페이지 1)이 있다는 것입니다. 다음 페이지에는 각각의 확인란이있는 이름 목록 (세션 배열에 보관하려는 2 페이지)이 있습니다. 이 양식을 제출하면 거래 페이지 (3 페이지, 게시 된 확인란의 값이 해당 이름의 데이터베이스에 보관 됨)로 연결됩니다. 이제 첫 페이지로 돌아가서 다른 셀을 클릭하면 세션 배열에 새 이름 목록이 포함됩니까 아니면 이전 목록이 포함됩니까?


예, PHP는 배열을 세션 변수로 지원합니다. 예제는 이 페이지참조하십시오 .

두 번째 질문에 관해서는 세션 변수를 설정하면 변경하거나 변경할 때까지 동일하게 유지 unset됩니다. 따라서 세 번째 페이지가 세션 변수를 변경하지 않으면 두 번째 페이지가 다시 변경할 때까지 동일하게 유지됩니다.


예, 세션에 어레이를 넣을 수 있습니다. 예 :

$_SESSION['name_here'] = $your_array;

이제 $_SESSION['name_here']원하는 모든 페이지에서를 사용할 수 있지만 session_start()세션 함수를 사용하기 전에 줄 을 입력했는지 확인하십시오 . 따라서 코드는 다음과 같아야합니다.

 session_start();
 $_SESSION['name_here'] = $your_array;

가능한 예 :

 session_start();
 $_SESSION['name_here'] = $_POST;

이제 다음과 같은 페이지에서 필드 값을 가져올 수 있습니다.

 echo $_SESSION['name_here']['field_name'];

질문의 두 번째 부분은 다른 배열 데이터를 할당하지 않는 한 세션 변수가 남아 있습니다.

 $_SESSION['name_here'] = $your_array;

세션 수명은 php.ini 파일 로 설정됩니다 .

여기에 더 많은 정보


session_start();          //php part
$_SESSION['student']=array();
$student_name=$_POST['student_name']; //student_name form field name
$student_city=$_POST['city_id'];   //city_id form field name
array_push($_SESSION['student'],$student_name,$student_city);   
//print_r($_SESSION['student']);


<table class="table">     //html part
    <tr>
      <th>Name</th>
      <th>City</th>
    </tr>

    <tr>
     <?php for($i = 0 ; $i < count($_SESSION['student']) ; $i++) {
     echo '<td>'.$_SESSION['student'][$i].'</td>';
     }  ?>
    </tr>
</table>

먼저 implode () 함수를 사용하여 배열을 문자열로 변경하십시오. $number=array(1,2,3,4,5,...); $stringofnumber=implode("|",$number);를 들어 문자열을 세션에 전달합니다. 예를 들어 $_SESSION['string']=$stringofnumber;배열을 사용하려는 페이지로 이동하면 문자열을 폭발 시키십시오. 예를 들어 $number=explode("|", $_SESSION['string']);마지막으로 숫자는 배열이지만 각 페이지에서 배열을 시작해야합니다.

참고 URL : https://stackoverflow.com/questions/2306159/array-as-session-variable

반응형