다음 페이지로 PHP Pass 변수 전달
PHP다음 페이지로 PHP Pass 변수 전달
그것은 꽤 간단하게 보이지만 그것을 할 수있는 좋은 방법을 찾을 수 없습니다.
첫 페이지에 변수를 만듭니다.
$myVariable = "Some text";
그리고 그 페이지에 대한 폼의 액션은 "Page2.php"입니다. 그래서 Page2.php에서 어떻게 그 변수에 접근 할 수 있습니까? 나는 세션을 가지고 그것을 할 수 있다는 것을 안다. 그러나 나는 그것이 단순한 문자열을 위해 너무 많다고 생각한다. 그리고 나는 단지 간단한 문자열 (파일 이름)을 전달하기 만하면된다.
이것을 어떻게 할 수 있습니까?
감사!
해결법
-
==============================
1.
HTML / HTTP는 상태가 저장되지 않습니다. 즉 이전 페이지에서 수행했거나 본 내용은 현재 페이지와 완전히 연결되어 있지 않습니다. 세션, 쿠키 또는 GET / POST 변수와 같은 것을 사용하는 경우를 제외하고. 세션과 쿠키는 세션보다 쿠키를 사용하는 것이 훨씬 안전합니다. 더 안전하지만 완전히 안전하지는 않습니다.
세션:
//On page 1 $_SESSION['varname'] = $var_value; //On page 2 $var_value = $_SESSION['varname'];
session_start ();를 실행하는 것을 잊지 마십시오. 문을 $ _SESSION 배열에 액세스하기 전에 그리고 브라우저에 출력을 보내기 전에이 두 페이지에 모두 표시됩니다.
쿠키 :
//One page 1 $_COOKIE['varname'] = $var_value; //On page 2 $var_value = $_COOKIE['varname'];
세션과 쿠키의 가장 큰 차이점은 세션을 사용하는 경우 서버의 변수 값을 저장하고 쿠키를 사용하는 경우 클라이언트의 변수 값을 저장한다는 것입니다. 나는 세션간에 쿠키를 사용하는 좋은 이유를 생각할 수 없다. 세션간에 데이터를 유지하기를 원한다면 제외하고, DB에 저장하고 사용자 이름이나 ID를 기반으로 검색하는 것이 더 나을 것이다.
GET 및 POST
링크의 변수를 다음 페이지에 추가 할 수 있습니다.
<a href="page2.php?varname=<?php echo $var_value ?>">Page2</a>
이렇게하면 GET 변수가 생성됩니다.
또 다른 방법은 페이지 2에 제출하는 양식에 숨겨진 필드를 포함시키는 것입니다.
<form method="get" action="page2.php"> <input type="hidden" name="varname" value="var_value"> <input type="submit"> </form>
그리고 2 페이지에서 :
//Using GET $var_value = $_GET['varname']; //Using POST $var_value = $_POST['varname']; //Using GET, POST or COOKIE. $var_value = $_REQUEST['varname'];
게시를 통해 양식을 게시하려면 양식의 메소드를 변경하십시오. GET은 해킹하기가 더 쉽지만 둘 다 똑같이 안전하지 않습니다.
새로운 요청이 세션 데이터를 제외하고 PHP의 코딩을 처음 시작할 때 스크립트의 완전히 새로운 인스턴스가 나를 잡았습니다. 일단 익숙해지면 꽤 간단합니다.
-
==============================
2.
위의 답변 주셔서 감사합니다. 여기 내가 어떻게했는지, 나는 따르는 사람들을 돕기를 바랍니다. 한 페이지에서 다른 페이지로 등록 번호를 전달하고자하므로 regName과 regValue :
첫 페이지를 만들고, 그것을 set_reg.php라고 부르세요 :
<?php session_start(); $_SESSION['regName'] = $regValue; ?> <form method="get" action="get_reg.php"> <input type="text" name="regName" value=""> <input type="submit"> </form>
두 번째 페이지를 만들고 get_reg.php라고합니다.
<?php session_start(); $regValue = $_GET['regName']; echo "Your registration is: ".$regValue."."; ?> <p><a href="set_reg.php">Back to set_reg.php</a>
위의 대답만큼 포괄적이지는 않지만, 제 목적을 위해 이것은 다양한 요소들 사이의 관계를 단순한 방식으로 설명합니다.
-
==============================
3.
양식에 숨겨진 필드로 포함하거나 양식 작업 URL을 추가 할 수 있습니다.
echo '<input type="hidden" name="myVariable" value="'. htmlentities($myVariable).'">';
또는
echo '<form method="POST" action="Page2.php?myVariable='. urlencode($myVariable).'">";
이것은 또한 데이터를 전달할 때 htmlentities와 urlencode의 사용법을 보여줍니다.
데이터를 클라이언트 측에 전달할 필요가없는 경우 세션이 더 적합 할 수 있습니다. 각 페이지의 시작 부분에서 session_start ()를 호출하면 $ _SESSION 배열에 데이터를 가져오고 설정할 수 있습니다.
값은 실제로 파일 이름이라고 명시 했으므로 보안 파급 효과에 대해 알고 있어야합니다. 파일 이름이 클라이언트 측에서 도착한 경우 사용자가 값을 변경했다고 가정합니다. 유효성을 확인하십시오! 사용자가 경로를 중요한 시스템 파일이나 제어 할 수있는 파일로 전달하면 어떻게됩니까? 스크립트를 사용하여 존재하거나 존재하지 않는 파일에 대해 서버를 "조사"할 수 있습니까?
$ _GET, $ _POST 또는 $ _COOKIE에 도착한 모든 데이터가 여기에 해당된다는 것을 알리는 것이 중요합니다. 최악의 적이 해당 배열의 내용을 만들고 이에 따라 코드를 작성한다고 가정하십시오!
-
==============================
4.
PHP에서 값을 전달하는 세 가지 방법이 있습니다.
이 세 가지 메소드는 다른 용도로 사용됩니다. 예를 들어 다음 페이지에서 값을 받고자한다면 'post'($ _POST) 메소드를 다음과 같이 사용할 수 있습니다. -
$a=$_POST['field-name'];
세션 변수를 사용할 수있는 것보다 한 페이지 이상에 variable 값이 필요한 경우 : -
$a=$_SESSION['field-name];
이 구문을 사용하여 SESSION 변수를 생성하기 전에 PHP 페이지의 맨 처음에이 태그를 추가해야합니다
session_start();
GET 메서드는 일반적으로 사용자가 입력 한 데이터를 동일한 페이지에 인쇄하는 데 사용됩니다. 구문은 다음과 같습니다.
$a=$_GET['field-name'];
POST 메서드는 일반적으로 GET보다 안전합니다. Get 메서드를 사용하면 URL 막대에 데이터를 표시 할 수 있기 때문입니다. 데이터가 암호와 같이 민감한 데이터 인 경우에는 inggeris가 될 수 있습니다.
-
==============================
5.
세션 만 좋은 방법 일 것입니다. GET / POST를 사용할 수도 있지만 잠재적으로 불안정합니다.
-
==============================
6.
이 코드를 시험해 보라.
숨겨진 필드를 사용하여 PHP 변수를 다른 페이지로 전달할 수 있습니다.
page1.php
<?php $myVariable = "Some text";?> <form method="post" action="page2.php"> <input type="hidden" name="text" value="<?php echo $myVariable; ?>"> <button type="submit">Submit</button> </form>
이 변수를 다른 페이지에 액세스 할 수 있도록 PHP 변수를 숨겨진 필드 값에 전달하십시오.
Pagi2.php
<?php $text=$_POST['text']; echo $text; ?>
-
==============================
7.
**page 1** <form action="exapmple.php?variable_name=$value" method="POST"> <button> <input type="hidden" name="x"> </button> </form>`
2 쪽
if(isset($_POST['x'])) { $new_value=$_GET['variable_name']; }
from https://stackoverflow.com/questions/871858/php-pass-variable-to-next-page by cc-by-sa and MIT lisence
'PHP' 카테고리의 다른 글
PHP_excel의 대안 (0) | 2018.09.02 |
---|---|
jQuery AJAX 파일 업로드 PHP (0) | 2018.09.02 |
닫기 태그를 생략하는 이유는 무엇입니까? (0) | 2018.09.02 |
Long-Polling, 웹 소켓, SSE (Server-Sent Events) 및 Comet이란 무엇입니까? (0) | 2018.09.02 |
준비된 문장에서 테이블 이름을 매개 변수화 할 수 있습니까? (0) | 2018.09.02 |