2014-09-06 2 views
0

내가 여기에 사용자가 인증 그래서 때PHP 페이지 순간 이동

<?php 
$id = ($_GET['id']) ? $_GET['id'] : $_POST['id']; 
switch($id) 
{ 
case 'account': 
require 'pages/cp.php'; 
break; 
} 
?> 

을하려고했습니다 무엇, 그것은 액세스 할 때 내 웹 서버에있는 다른 PHP 파일을 여는 특별한 매개 변수를 만들려고 해요 예 : http://www.test.com/?id=account, 자동으로 사용자에게 cp.php 파일을 인증해야합니다.

문제가 그것이 리디렉션되지 않는다는 것입니다. 단지 index.php 파일에 남아 있습니다.

참고 : 위의 PHP 코드는 index.php에 있습니다!

감사합니다.

+1

cp.php에 리디렉션 ('header()') 호출이 포함되어 있습니까? – andrew

+0

switch-case 전에'$ id' 변수를 echo하려고 했습니까? 그것은 무엇을 보여줍니까? – Giorgio

+0

@andrew, 아니요. cp.php에는 header() 호출없이 사용하기 때문에 헤더 호출이 없으므로 작동합니다. –

답변

1

require() 또는 include()가 실제로 현재 스크립트에 파일을 포함시키는 것과 같이 require()는 기본적으로 'pages/cp.php'의 소스를 여기에 포함합니다. 그냥 당신이 더 출력 (심지어 일부 PHP 파일에서 HTML, 또는이 없는지 확인

header("Location: http://www.example.com/"); 

: 새 URL로 사용자를 리디렉션하려면

은/링크/당신이 헤더를 사용한다 파일 머리글을 설정하기 전에 공백을 사용하지 마십시오 (꽤 일반적인 실수).

헤더를 보내기 전에 출력이 필요한 경우 ob_start(); ob_flush() - google, stackoverflow 또는 php-manual이 도움이 될 것입니다.