2017-09-16 3 views
0

양식에 제출 된 특정 액세스 코드가있는 경우 사용자를 HTML 페이지로 리디렉션하는 여러 가지 방법을 찾고 있습니다. 나는 양식을 가지고 있고 제대로 작동하고 있지만 올바른 페이지로 리디렉션 할 수는 없습니다. 이처럼 1 개의 다른 게시물을 보았지만 특정 사용자 로그인이있었습니다. 특정 액세스 코드가 제출되면 특정 웹 사이트로 사용자를 보내는 방법

<?php 
$_GET["code"] = $accessCode; 

if ($accessCode === "code123") { 
header("Location: http://www.example.com/code_123.html"); 
} else if ($_GET["code"] === "test") { 
header("Location: http://www.example.com/code_test.html"); 
} else { 
header("Location: http://www.example.com/unknown_code.html"); 
} 
?> 

나는 심지어 리디렉션 옵션 (의 cPanel) 내가 코드 code123 또는 테스트를 사용할 때마다 를 사용하여 시도, 그들은 내가 모두 if ($accessCode === "code123")($_GET["code"] === "test")

+2

오류보고를 저장된 값으로 $ accessCode를 "지정"을 추가 할;'각 헤더 다음에 –

답변

0

당신은 거꾸로 가지고 있습니다.

HTTP "GET"요청을 할 때 PHP는 전역 $ _GET 배열에 "쿼리 문자열 매개 변수"를 저장합니다. 예를 들어

, 이러한 맥락에서 http://www.yoururl.com?code=code123&mobile=1

는 쿼리 문자열로 시작 "?" 과의 키 값 쌍을 떠나, "&"로 구분된다

  • 코드 = code123 모바일 = 1

PHP가 저장합니다 전역의 $ _GET 배열로의 변환

  • 같은 : 대신 쿼리 문자열의 HTTP POST 요청 "몸"쿼리 일을 포함하는 HTTP POST 요청을 수행하는 경우 같은 일이 일어날 것

    $_GET['code'] = "code123" 
    $_GET['mobile'] = 1 
    

    반지, 또는 일부의 경우, JSON, 또는 XML 등

    PHP가를 구문 분석하고 그래서 얻을 것이다 : 당신의 상황에 따라서

    $_POST['code'] = "code123" 
    $_POST['mobile'] = 1 
    

    , 당신은 실제로 거꾸로 있습니다.

    당신은 종료` "코드"를 인덱스에 $ _GET 배열에

    <?php 
    
    $accessCode = $_GET['code']; 
    
    if ($accessCode == 'code123') { 
        header('Location: http://yaddayadda', 301); /* you can change 301 to whatever redirect code that is most appropriate. this is good for information search engines on the appropriate behavior. do a google search for http redirect codes to understand. 301 is permanent redirect. 302 is temporary. etc.*/ 
        exit; 
    
    } elseif ($accessCode == 'code234') { 
        header('Location: http://'); 
        exit; 
    } 
    else { 
        echo 'No valid access code.'; 
        exit; 
    } 
    
  • 0

    당신은 할당 할 필요를 사용하여 시도 을 unknown_code.html 나 리디렉션 $ _GET [ 'code']의 값을 $ accessCode로 변경하십시오. 또한

    <?php 
    $accessCode = $_GET['code']; 
    
    switch ($accessCode) { 
        case 'code123': 
         header("Location: http://www.example.com/code_123.html"); 
         exit; 
        case 'test': 
         header("Location: http://www.example.com/code_test.html"); 
         exit; 
        default: 
         header("Location: http://www.example.com/unknown_code.html"); 
         exit; 
    } 
    ?> 
    

    , 당신은 여러 값을 하나의 변수를 비교하는하는 스위치 문을 사용합니다.

    으로 리디렉션 헤더를 따라하는 것이 좋습니다. 이제 완료됩니다.