2014-01-30 3 views
1

GET 메소드로 page1.php에서 page2.php로 데이터를 전송합니다. page2.php에서 나는 형식으로 함께 제출에 내가 (자기) page2.php을 보내려면 다른 형태를 추가하고, 여기에 지금이전 페이지의 양식 데이터를 다시 사용할 수 있습니까?

http://mydomain.com/page2.php?value1=myname&value2=xyz123 

: 그래서 URL에, 나는대로 값을 얻고있다 다음과 같습니다 :

http://mydomain.com/page2.php?value1=myname&value2=xyz123&value3=1234 

내가 원하는 것은 새로운 값을 URL의 이전 값 끝에 추가하는 것입니다.

이전 페이지에서 가져온 데이터를 다시 사용할 수 있습니까? 다음 코드를

<form method="get" action="'."http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'"> 

을 시도하지만 내가 어떤 도움이나 제안을 부탁드립니다 오히려 http://mydomain.com/page2.php?value1=myname&value2=xyz123&value3=1234

http://mydomain.com/page2.php?value3=1234에 가치를 보내고있다.

+0

URL 문자열을 구성하여 ** 새 값을 추가 할 수 있습니다. 그러나 이것이 데이터를 구문 분석하는 안전한 방법은 아니라는 점을 명심하십시오. 해킹과 공격에 취약합니다.GET 대신 POST 사용을 고려하고 대신 세션 사용을 고려하십시오. – datelligence

+0

고맙습니다 @ 데이터. URL 문자열을 구성하거나 튜토리얼을 찾을 수있는 링크를 제공하는 방법을 알려주시겠습니까? – programmer

답변

1

URL에 암호가 표시되지 않도록하려면 대신 POST 메서드를 사용해야합니다 (예 : GET).

GET으로 데이터가 URL에 표시됩니다. POST을 사용하면 데이터가 HTTP 요청에 포함되지만 URL에는 표시되지 않습니다. POST을 사용하면 사용자는 이 더 안전하다고 생각합니다.. 이 암호는 소스 코드에서 볼 수 때문에 좋은 생각이 아니다

<input type="hidden" name="uname" value="<?php echo $_GET['uname']; ?>" /> 
<input type="hidden" name="pass" value="<?php echo $_GET['pass']; ?>" /> 

그러나 다시 : 귀하의 질문에 대해


는 한 가지 방법은 양식에 어떤 숨겨진 입력을 넣어하는 것입니다 .

<?php 

$_SESSION['uname'] = $_GET['uname']; 
$_SESSION['pass'] = $_GET['pass']; 

?> 

그러나 다시, 이 세션 배열에 암호를 저장하는 것은 좋은 생각이 아니다 :

다른 방법은이 같은 세션 변수를 설정하는 것입니다. 이를 피하려면 사용자 당 고유 ID를 $_SESSION['id']에 저장할 수 있습니다.

세션을 사용하려면 html 앞에 session_start()으로 전화해야합니다 (공백을 피하십시오).

세션에 대한 자세한 내용은 the documentation입니다.

+0

도움을 주셔서 감사합니다. 사실 저는 uname을 사용하고 있습니다. 현실에서는 국가, 도시 등과 같은 일부 지역 값을 보내야합니다. 두 번째 페이지에서 데이터베이스에서 사용할 수있는 전화 번호를 묻는 경우 로그인 페이지 나 등록 페이지로 리디렉션됩니다. 그러나 URL 끝에 새 값 (전화 번호)을 추가 할 수 없습니다. – programmer

+0

사람들은 URL, 심지어 국가, 도시 등에서 자신의 개인 데이터를 보지 않으려 고 조심해야합니다. 그러나 실제로 구현하고자한다면 숨겨진 입력이 필요합니다. – Happy

0

양식에 숨겨진 입력을 사용해야합니다. 따라서 page1이 page2에 게시되면 page2의 생성 된 HTML에는 해당 값이 포함됩니다. 나중에 page2가 제출되면 숨겨진 필드의 값과 전화에 입력 된 값을 보냅니다. 다음과 같은 것 :

<form> 
    <input type="hidden" name="uname" value="<?= $uname ?>" /> 
    <input type="hidden" name="pass" value="<?= $pass ?>" /> 

    <input type="text" name="phone" value="" /> 
    </form> 

HTML을 'value'속성에 넣기 전에 탈출하는 것을 잊지 마십시오.

+0

페이지에서 값의 수가 동적입니다. 또한 각 제출마다 URL에 적어도 15 개 이상의 속성이 있습니다. 따라서 숨겨진 필드를 만드는 것은 매우 어렵습니다. URL에 새 값을 삽입 할 수있는 방법이 있습니까? – programmer

관련 문제