2013-01-07 1 views
-1

에서 다른 페이지로 리디렉션 php file .. $ _POST를 사용하여 값을 얻는 곳이 어디입니까? 하지만 특정 URL에이 값을 보낼 수있는 방법은 무엇입니까?내가 이것에 대한</p> <pre><code>http://www.abc.co.uk/acy/xyzerequest&name='me'&email='[email protected]' </code></pre> <p>내가 폼 & 포스트에게 그것을 만든 아래처럼 특정 URL에 해당 양식 값을 제출해야 두 개의 필드가 & 이메일 &의 이름으로 나는 양식을 가지고 PHP

그래서 최종 사용자는

친절하게 내가 어떻게 achieve..I는 마지막 3 시간에서 시도하고 있었다 수 나를 인도 .. 자신의 이메일 ID &가 그의 값으로 해당 URL로 이동 이름 &를 입력 & 좋은 운이 없다 .

+0

POST를 사용하여 양식 메서드로 URL에서 변수를 숨기면 url의 변수 만 볼 수 있습니다 (예 : 'http://www.abc.co.uk/acy/xyzerequest&name='me'&email = '[email protected]'') 양식 방법으로 GET을 사용하는 경우 – Stu

+0

질문이 명확하지 않습니다. 좀 더 자세히 설명해 주실 수 있습니까? –

+0

header ("location : your_url"); – sandip

답변

0

잘 알고 있듯이 스크립트는 사용자 이름과 이메일을 수집하고 URL을 작성하여 사용자를 리디렉션해야합니다.

그래서 스크립트는 다음과 같이 보일 것입니다 (이것은 단지 안내선 일뿐입니다).

<?php 
    if(isset($_POST['submit'])){ 
     $name = $_POST["name"]; 
     $email = $_POST["email"]; 

     //create the URL 
     $url = "http://www.example.com/yourpage.php?name=" . urlencode($name) . "&email=" . urlencode($email); 

     //send the header 
     header("Location: " . $url); 
     //exit the script 
     exit(); 
    } 
    ?> 
    <html> 
     <body> 
     <form method="post" action="" name="name"> 
      Name:<input type="text" name="name"> 
      Email:<input type="text" name="name"> 
      <input type="submit"> 
     </form> 
     </body> 
    </html> 

URL이가는 한 ?은 "변수"가 시작되는 위치를 나타냅니다.

원시 사용자 데이터에서 URL을 생성해서는 안됩니다. 특히 다른 스크립트 중 하나로 전송하는 경우에는 특히 그렇습니다. 항상 urlencode($data)을 사용해야하며 데이터 URL이 안전합니다. 또한 데이터 유효성 검사와 스크러빙을 조사해야합니다.

그래서이 스크립트가 수행하는 작업은 먼저 게시 된 항목이 있는지 확인하고, 게시 된 경우 데이터를 수집하고 URL을 만들고 리디렉션을위한 헤더를 보내고 종료합니다. 그렇지 않은 경우 사용자가 정보를 입력 할 수있는 양식을 제공합니다.

0

다른 사람들이 귀하의 질문에 대한 명확성이 충분하지 않다고 말했기 때문에.

내가 제대로 이해한다면 사용자가 제출 버튼을 클릭 할 때 해당 URL이 표시되기를 원합니다.

그런 경우에는 양식을 게시하지 말고 GET을 사용해야합니다. 비밀번호와 같은 정보를 전달하는 경우 정보가 URL에 직접 표시 될 수 있으므로 GET을 사용하지 않는 것이 좋습니다.

위의 조치로 서버 측에서 일부 리소스가 수정 된 결과를 얻지 않아야합니다. 리소스 만보고 수정하지 못합니다.

EDIT : 다른 사람들이 질문을 더 잘 이해하고있는 것으로 보이며 매개 변수가 추가 된 헤더 ("위치 : someurl")가가는 길 같습니다.

-1
<?php 
$user = $_GET["user"]; 
$pass = $_GET["pass"]; 

    header('http://www.abc.co.uk/acy/xyzerequest&name=' . $user . '&email=' . $pass) ; 

?> 
+3

header ('Location : ..'을 사용하여 특정 페이지로 리디렉션합니다. – Bgi

0

당신은 header 기능을 사용하여 Location: 헤더를 설정하여 다른 페이지로 리디렉션합니다. 예 : @lampwins으로

header("Location: http://stackoverflow.com/"); 

지적은, 일반적으로이 exit와 함께 사용된다. 페이지의 나머지 부분은 실행되지 않습니다 (비정상적인 부작용 및 불필요한 서버로드가 발생할 수 있기 때문에).

+0

줄에'및 exit()'을 추가하면이 시점에서 스크립트가 종료되고 클라이언트가 잘 리디렉션됩니다. '("Location : http://stackoverflow.com/") 및 exit(); – lampwins

0

이 작업을 수행하는 한 가지 방법은 form.php와 같은 양식을 사용하여 양식을 표시 한 다음 action = myphp 대신 해당 양식의 처리를 위해 자체로 리디렉션하는 것입니다. 그러면 form.php 만 넣으면됩니다. 자신에게 리디렉션 한 다음 맨 위에 필요한 것을하십시오. 이렇게하면 URL에 비밀번호를 보낼 필요가 없습니다.

<?php 
if(isset($_POST['submit'])) { 
    $name = $_POST['name']; 
    $email = $_POST['email']; 

    // do here whatever you wanted to do with the user and email in your form 
    // you can show a different html page or redirect on, or login or whatever. 
} else { 
    // the form html elements will only show if the form is not already submitted by the user. This allows you to do what you need to do on one page without processing and then redirecting using the header. 
?> 
<!-- form.php --> 
<form method=post action="form.php"> 
name <input name="name" value="" size="10" /><br /> 
email <input name="email" value="" size="25" /><br /> 
<input type="submit" name="submit" value="go" /> 
</form> 
<?php 
    } 
?> 
0

하자 나 정리 일,

  1. 당신은 당신의 제출에 두 개의 값 (이름, 이메일)을 얻는다.
  2. 이제이 두 URL을 다른 URL로 처리하게됩니다. 내가 맞다면,이 경우 PHP "헤더"기능과 같은

    <?php 
        header("Location:http://www.abc.co.uk/acy/xyzerequest?name=".$_POST['name']."&email=".$_POST['email']); 
    ?> 
    

    을 사용할 수 있습니다, 헤더 값이 빈 응답

    <some header value> 
    Contet-Type:text/plain 
    Location:http://www.abc.co.uk/acy/[email protected][email protected] 
    <some header value> 
    
    으로 클라이언트 나 브라우저에

보내

그래서 그 이름과 이메일 값은 모든 사람이 알고 있습니다.

PHP는 렌더링 페이지가 끝날 때 클라이언트에 가변 범위를 잃어 버리기 때문에. 변수에 값을 저장하는 것은 쓸모가 없습니다. 하지만 다른 옵션이 있습니다. $ _SESSION 변수를 사용하면이 작업을 수행 할 수 있습니다. 다음 폼

  1. 는 세션 설정 값을 제출할

    < PHP $ _SESSION [ '이름'] = $ _POST [ '이름']; $ _SESSION [ 'email'] = $ _POST [ 'email']; ?

    <?php 
        header("Location:http://www.abc.co.uk/acy/xyzerequest"); 
    ?> 
    

    2. >

다음과 같은 특정 URL로 리디렉션,

지금 리디렉션 된 URL의 핸들러에서, 당신은 세션에서

<?php 
    $name = $_SESSION['name']; 
    $email = $_SESSION['email']; 
?> 

그래서를 그 값을 읽을 수 있습니다, 값은 숨겨져 있으며 다른 페이지 핸들러를 사용할 수 있습니다.

$form = "<form name='autoForm' method='post' action='http://www.abc.co.uk/acy/xyzerequest'> 
      <input type='hidden' name='name' value='{$_POST['name']}' /> 
      <input type='hidden' name='email' value='{$_POST['email']}' /> 
      <script type='text/javascript' language='javascript'> 
       document.autoForm.submit(); 
      </script> 
     </form>"; 

echo $form; 

이 automaticaaly 만듭니다 : 어떤 사람들로

0

이미 (당신이 후 기호와 데이터를 리디렉션해야하는 경우)이 작업을 수행하는 가장 쉬운 방법을 제안, 숨겨진 양식을 작성하고 자동으로 제출하는 것입니다 양식을 post 데이터와 함께 제출하고 제출하십시오.

관련 문제

 관련 문제