2012-12-23 3 views
0

데이터베이스에서 성공적으로 업데이트를 얻으면 바로이 페이지를 다른 페이지로 리디렉션하려고합니다. 그러나 PHP에서 경고 메시지가 나타나며 아무런 반응이 없습니다. 코드 .. 어디서 잘못 됐어?PHP 리다이렉트가 어떤 이유로 작동하지 않습니다.

<html> <head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
<link rel="stylesheet" type="text/css" href="css/madscore.css"> 
</head> 
<body> 

<?php 
require('../database/connect.php'); 
?> 
<?php 

$id = $_POST["id"]; 
$value = $_POST["score"]; 
    database_connect(); 
$query = "update people set Score= Score +".$value." WHERE ID ='".$id."'"; 
$result = $connection->query($query); 

if($result) 
    { 
?> 
<?php 
@header("Location: http://www.europe-zone.com/"); 
exit(); 
} 

?> 

</body> 
</html> 
+0

경고는 무엇입니까? –

+0

머리글에'@'을 사용하는 것은 좋지 않습니다. 오류가 있고 표시되지 않은 경우. 디버깅하기가 더 어려워집니다. – GusDeCooL

+0

문제 도메인과 관련이 없지만 코드가 현재 취약 해지면 http://bobby-tables.com/을 봐야합니다. –

답변

6

HTML 페이지보다 먼저 헤더를 보내야합니다. 에 관한

<html> <head> 

this에 방금 전에 리디렉션 코드를 넣어 : 실제 출력 가 전송되기 전에

하는 header()는 보통의 HTML 태그, 파일의 빈 줄에 의해, 호출해야합니다 , 또는 PHP에서. 함수 또는 다른 파일 액세스 함수를 포함하거나 필요로하는 코드를 읽고 header()가 호출되기 전에 공백 또는 빈 행이 출력되는 것은 매우 일반적인 오류입니다. 단일 PHP/HTML 파일을 사용할 때 같은 문제가 존재합니다.

+1

예, 브라우저에 출력하기 전에 헤더를 보내야합니다. – frosty

0
<?php 
require('../database/connect.php'); 

$id = $_POST["id"]; 
$value = $_POST["score"]; 
    database_connect(); 
$query = "update people set Score= Score +".$value." WHERE ID ='".$id."'"; 
$result = $connection->query($query); 

if($result) 
    { 
?> 
<?php 
@header("Location: http://www.europe-zone.com/"); 
exit(); 
} 

?> 
    <html> <head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 
<link rel="stylesheet" type="text/css" href="css/madscore.css"> 
</head> 
<body> 
</body> 
</html> 
관련 문제