PHP 페이지 간 값을 전송하는 6가지 방법:
PHP 4 이상 전달된 값을 얻는 방법
일반적으로 페이지에서 값을 전달하는 가장 일반적인 방법은 POST, GET, COOKIE이므로 아래에서는 이들을 중심으로 소개하겠습니다. PHP4 이상에서는 $_POST, $_GET 및 기타 배열을 사용하여 웹 페이지 값을 얻습니다. PHP3.0 이하에서는 $HTTP_POST_VARS, $HTTP_GET_VARS 등의 배열을 사용하며, 구체적인 코드는 다음과 같습니다.
echo $_POST['dopost']; ?> < form action="weste_net.php" method="post" name='form1' id="form1"> < input type="text" name="dopost" value="hello weste.net!" /> < input type="submit" name="weste" value="提交" /> < /form>
2. 이전 버전의 PHP3에서 사용되는 값 전달 방법
위에서 언급한 것처럼 $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_COOKIE_VARS 등의 배열을 사용하여 읽을 수 있습니다. 이전 버전의 PHP에서는 $dopost와 같은 메소드를 사용하여 전달된 값을 직접 얻을 수도 있습니다. 이 방법은 웹 페이지의 전달된 값을 얻는 다음 방법 중 실제로 $를 사용하는 방법에 중점을 둡니다. dopost.웹페이지에서 전달된 값을 가져옵니다.
3. PHP.ini 파일 구성 수정
또 다른 질문은 PHP3과 PHP4 이상이 호환되지 않는 이유입니다. 실제로 매우 중요한 이유는 PHP4 이후에는 PHP.ini 파일의 Register_globals가 기본적으로 Off로 설정되어 있다는 것입니다. 따라서 $dopost를 사용하여 웹페이지의 가치를 직접적으로 구하는 이전 방법은 사용할 수 없습니다.
register_globals 값을 확인하는 쉬운 방법
echo 'register_globals = ' . ini_get('register_globals'); ?>
register_globals=Off인 경우,register_globals=또는register_globals=0을 표시
register_globals=On인 경우,register_globals=1을 표시합니다
register_globals를 On으로 수동으로 수정하세요. 제출된 양식에 "dopost"라는 변수가 포함되어 있으면 $dopost를 사용하여 PHP에서 변수를 가져올 수 있습니다. 하지만 가상호스트를 사용한다면 여전히 php.ini 파일을 수정하기는 어렵습니다. 여기에는 한 가지 방법이 있습니다.
4. import_request_variables 함수 사용
import_request_variables 함수는 GET, POST 및 Cookie 변수를 전역 범위로 가져오는 것이지만 이 함수는 일부 전역 변수를 사용하려는 경우 유용합니다.
구문:
bool import_request_variables(string $types[, string $prefix])
첫 번째 매개변수는 g, p 또는 c일 수 있으며 이는 GET, POST 및 COOKIE 변수의 첫 글자이며 의미는 매우 명확합니다. 🎜>
두 번째 매개변수는 가져온 변수 접두사입니다. 원하는 대로 작성할 수 있습니다. 간단한 예:import_request_variables("p","p_"); echo $p_dopost; ?>HTML 부분은 방법 1을 참조하고, 얻은 값은 dopost 입력 상자 변수입니다.
5. 추출 함수 사용
PHP extract() 함수는 배열의 변수를 현재 기호 테이블로 가져옵니다. 배열의 각 요소에 대해 키 이름은 변수 이름으로 사용되고 키 값은 변수 값으로 사용됩니다. 두 번째 매개변수 유형은 변수가 이미 존재하고 배열에 동일한 이름을 가진 요소가 있는 경우 extract() 함수가 이러한 충돌을 처리하는 방법을 지정하는 데 사용됩니다. 구문:extract(array,extract_rules,prefix)사용법:
if(!empty($_POST)) extract($_POST); echo $dopost; ?>이 방법이 매우 간단합니까? 매우 실용적입니다.
6. Dedecms에서 사용하는 메소드
그리고, 미리 Register_globals 값을 판단하세요. , On이면 바로 사용이 가능합니다. 구체적인 코드는 다음과 같습니다. common.inc.php 파일에 있습니다.//检查和注册外部提交的变量 foreach($_REQUEST as $_k=>$_v) { if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) && !isset($_COOKIE[$_k]) ) { exit('Request var not allow!'); } } function _RunMagicQuotes(&$svar) { if(!get_magic_quotes_gpc()) { if( is_array($svar) ) { foreach($svar as $_k => $_v) $svar[$_k] = _RunMagicQuotes($_v); } else { $svar = addslashes($svar); } } return $svar; } foreach(Array('_GET','_POST','_COOKIE') as $_request) { foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v); }위 코드를 공개 PHP 페이지에 넣으세요. 나중에 웹에서 값을 전달할 때만 사용하면 됩니다. 페이지. 위 내용은 PHP 페이지 간 값을 전송하는 6가지 방법에 대한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!