2015-01-29 3 views
0

헤더에 문제가 있습니다. 지정된 페이지로 돌아 오지 않습니다. 업데이트가 제대로 작동하지만 profile.php로 돌아가는 대신 up.php 파일에 빈 페이지가 표시됩니다. up.php는 아래 표시된 파일의 이름입니다. 저를 도와주세요, 공백을 검사 한 나는,이헤더가 작동하지 않았습니다.

<?php 
include('../_includes/configg.php'); 
session_start(); 
$id=$_SESSION['uid']; 
?> 
<?php 
$phone= $_POST['phone']; 
$phone2= $_POST['phone2']; 
$address  = $_POST['address']; 
$fname= $_POST['fname']; 
$sname  = $_POST['sname']; 

// turn autocommit off 
mysqli_autocommit($link, FALSE); 

// Insert data into mysql 
$sql = "update trader set address='$address', phone='$phone', phone2='$phone2', sname='$sname', fname='$fname' where id= '$id'"; 
$result = mysqli_query($link, $sql); 

// if successfully insert data into database, displays message "Successful". 
if($result){ 
// Am having problem here is not returning to profile.php. 
    header('Location:profile.php'); 
} 
else { 
    echo "ERROR"; 
} 
mysqli_commit($link); 
mysqli_close($link); 
?> 
+0

인쇄 된 공백이나 다른 것이 브라우저에 실수로 전송되었는지 확인하십시오. – frunkad

답변

1

우선 해결 대신 사용되지 mysql을의 PDO::Mysql 사용 사용할 수 없습니다. 또한 SQL 쿼리는 SQL 인젝션으로 가득 차서 사용자 입력을 항상 소독합니다.

이제 헤더가 작동하지 않는 이유는 무엇입니까? 헤더가 편집되면 헤더가 페이지와 함께 전송되기 때문입니다. 헤더 다음에 데이터가옵니다. 현재 PHP 페이지가 데이터를 처리하고 있습니다 (PHP 코드를 끝내고 비워 두어 <?php 코드를 다시 시작하기 때문에 데이터 출력이 생성됩니다.) ?><?php을 코드에서 제외 해보십시오.

session_start(); 
$id=$_SESSION['uid']; 
$phone= $_POST['phone']; 
$phone2= $_POST['phone2']; 

또한 include('../_includes/configg.php');가 (이 페이지로 컴파일되지 않도록 그래서 밖으로 ?>를 떠나) 사용자에게 전송 될 데이터가 포함되어 있지 않습니다 있는지 확인하십시오.

+0

감사합니다. Tom. 내가 당신을 올바르게 받아들이는지 확인 만하면, 나는 처리 데이터 흐름 밖으로 헤더를 사용합니다. – user3447377

+0

나는 가공 datcode에서, 그러나 아직도 동일 물을 둔다. user3447377

+1

헤더는 데이터가 전달되기 전에 사용해야하며 빈 공간이 데이터이더라도 마찬가지입니다. – Tom

관련 문제