2012-03-01 2 views
1

가능한 중복 : 여기


PHP Pass variable to next page

내 현재 코드입니다 : 내 두 번째로 $ 검색 변수를 수행 할 수 있어야합니다

$search = $_POST['s']; 
$search = strtoupper($search); 
$search = strip_tags($search); 
$search = trim($search); 
$search = mysql_real_escape_string($search); 

, 세 번째 등.

나는 PHP에서 초보자와 나는 일종의 여기

+2

[PHP 세션] (http : // w ww.php.net/manual/en/book.session.php). '$ _SESSION' 슈퍼 글로벌은 페이지 사이에 정보를 저장할 수있게합니다. – Bojangles

+2

참조 http://stackoverflow.com/questions/871858/php-pass-variable-to-next-page –

답변

1

붙어있어 세션이 여기에 당신의 친구임을 나타납니다. 가장 단순한 형태로 세션은 사용자의 브라우저에서 보내고받는 쿠키에 데이터를 저장합니다. 세션을 수행하기 전에 session_start()으로 전화하십시오. 그러면 사용자 세션이 시작되거나 다시 시작됩니다. 그런 다음 $_SESSION을 페이지간에 지속되는 전역 연관 배열로 사용할 수 있습니다.

Xander는 이미 문서,Here are some simple examples에 연결했습니다. session_start()을 이해하면 버그가 생길 수 있습니다.

N.B. 중요한 데이터에이 기본 세션 형식을 사용하지 마십시오. memcache와 같은 것을 사용하여 데이터를 저장하고 memcache 키를 $ _SESSION에 저장하십시오. 또한 세션을 암호화하는 것을 고려하십시오. $_SESSION 제안되었지만 사람들은 당신이 사용자 인증을 처리 할 때 생각해야 더 진보 된 것들/

1

로그인하고, 다른 옵션은 (같은 이름과 적절한 값으로 가득)을 숨겨진 필드을 사용하여 이후에하는 것입니다 생성 된 페이지 그런 다음 해당 페이지가 게시 될 때 $_POSTS (이 시간은 원래 텍스트 필드가 아닌 숨겨진 필드) 필드를 사용할 수있게됩니다.

장점 :

  • "현재 페이지 바운드"; 일부는 실제로 페이지 상황에 민감한 콘텐츠! (세션은 브라우저 아닌 페이지로 범위가됩니다.)
  • 세션/쿠키에 대한 필요성을 (세션이 이미 다른 목적을 위해 필요한 경우가 아닌 문제입니다) 방지합니다.

단점은 : "현재 페이지에 바인딩"

  • : 다시/다음 컨텍스트 외부에서 멀리 탐색 할 때 값이 손실됩니다. (Bert가 지적했듯이, URL을 변경하고 GET 매개 변수를 사용하는 "breadcrumb"접근법을 약간 수정하면 데이터가 보편적으로 영구적으로 유지 될 수 있습니다.
  • 데이터가 있어야합니다. 원래 게시물처럼 으로 처리되었고 신뢰할 수없고 안전하지 않습니다.
  • 추가 [숨김] 입력란이 필요합니다.

해피 코딩.

+0

mysql_real_escape_string **은 "해킹"이 아닙니다. 이 함수의 유일한 단점은 PHP를 사용하는 일반 사용자는 어떻게 사용하는지 전혀 모른다는 것입니다. –

+0

@ Col.Shrapnel 나는 동의하지 않는다. ** 수동 SQL 문자열 작성 **의 나쁜 관행을 계속 홍보합니다. * mysqli'와 *'PDO' 둘 다 많은 PHP 시스템에서 사용할 수 있다고 생각할 때, 나는 어떤 다른 현대적인 와이드 스프레드 프로그래밍 언어에 의해 사용되지 않는 오래된 접근법을 방어 할 이유가 없다. . (오, 제발 * 왜 * -1, 제발, 왜냐하면 그것은 mysql_real_escape_string에 대한 나의 혐오에 관한 것이기 때문에, 대답과 관련이 없기 때문입니다.) –

+0

제발 저 오래된 이야기를 * me *에 팔지 마십시오. 괜찮아? –

0

각 페이지에서 사용 session_start() 당신이

$search = $_POST['s']; 
$search = strtoupper($search); 
$search = strip_tags($search); 
$search = trim($search); 
$search = mysql_real_escape_string($search); 

이 everyother 페이지

에서 다음
$_SESSION['searchStr']=$search 

로 세션 변수를 설정 첫 페이지에 검색 가변적이고에게

에 액세스하려면

session_start(); // at the very begining 

if(isset($_SESSION['searchStr'])) { 

    $search=$_SESSION['searchStr'] 
} 
1

는 검색 문자열이되어 가정, 제정신 방법이있다 :

먼저, 다음을 얻을 수있는 형태의 방법을 변경, 단지 GET 메소드를 사용하여 쿼리 문자열에 검색 변수를 전달합니다.

당신이 적용 할 수있는 유일한 수정은 urlencode()

그래서 코드는 HTML 코드를 생성

$query_string = 'search='.urlencode($_GET['search']); 
echo "<a href='?page=2&$query_string'>page 2</a>"; 

해야입니다

<a href="?page=2&search=search+string">page 2</a> 

때문에 사용자가이 링크를 클릭하고 수 다시 검색 문자열을 갖습니다

관련 문제