2012-05-31 18 views
-1

每當我提出我的形式,我遇到這個錯誤,通過在PHP中開啓錯誤報告:PHP的頭部位置,腳本不工作

警告:不能更改頭信息 - 頭已經發出(輸出開始/應用/ MAMP/htdocs/cranium/includes/header.inc.php:14)in /Applications/MAMP/htdocs/cranium/includes/register.inc.php on line 65

在我的header.inc.php中,我有此代碼:

<!doctype html> 
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]--> 
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8" lang="en"> <![endif]--> 
<!--[if IE 8]> <html class="no-js lt-ie9" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> 
    <title>Cranium eSolutions</title> 
    <meta name="viewport" content="width=device-width"> 
    <link rel="stylesheet" href="/cranium/css/style.css"> 
    <script src="/cranium/js/libs/modernizr-2.5.3.min.js"></script> 
</head> 
<body> 

我使用include_once將此代碼包含在我的頁面中。 (第14行指向body標籤,之後沒有空格或任何空格)。

以我register.inc.php:

<?php 
error_reporting(E_ALL); ini_set('display_errors', 'On'); 
$username = mysql_real_escape_string(stripcslashes($_POST['txtUser'])); 

//generate password 
$password = generatePassword(10,5); 


$email = mysql_real_escape_string(stripcslashes($_POST['txtEmail'])); 

//random code 
$com_code = sha1(uniqid(rand())); 


$fName = mysql_real_escape_string(stripcslashes($_POST['txtFname'])); 
$lName = mysql_real_escape_string(stripcslashes($_POST['txtLname'])); 
$address = mysql_real_escape_string(stripcslashes($_POST['txtAddress'])); 
$city = mysql_real_escape_string(stripcslashes($_POST['txtCity'])); 
$zip = (int)$_POST['txtZip']; 
$country = $_POST['txtCountry']; 
$mobile = mysql_real_escape_string(stripcslashes($_POST['txtMobileNo'])); 
$office = mysql_real_escape_string(stripcslashes($_POST['txtOfficeNo'])); 
$specialty = $_POST['txtFOS']; 
$prof = $_POST['txtProf']; 



//checkbox 
$practiceFetch = $_POST['chkSOP']; 
$n = count($practiceFetch); 
$practice = ''; 
for ($i = 0; $i < $n; ++$i) { 
    $practice .= $practiceFetch[$i].', '; 
} 
$practice = substr($practice,0,-2); 



$coordinator = mysql_real_escape_string(stripcslashes($_POST['txtPrimaryCoord'])); 
$relationship = mysql_real_escape_string(stripcslashes($_POST['txtRelationship'])); 
$relEmail = mysql_real_escape_string(stripcslashes($_POST['txtRelEmail'])); 
$feedback = mysql_real_escape_string(stripcslashes($_POST['txtHow'])); 

//service concat 
//if ($_POST['txtSubService']) $subService = mysql_real_escape_string(stripcslashes(' - '.$_POST['txtSubService'])); 
//$service = mysql_real_escape_string(stripcslashes($_POST['txtService'])).$subService; 
$service = 'tae'; 


//start Query 
require_once('../includes/db.config.php'); 
$checkQuery = "SELECT username FROM tblAccounts WHERE username='$username'"; 
$checkResult = mysqli_query($cxn,$checkQuery); 
if (mysqli_num_rows($checkResult) <= 0) { 
    $query = "INSERT INTO tblAccounts VALUES('','$username','$password','$fName','$lName','$address','$email','$com_code','$city',$zip,'$country',$mobile,$office,'$specialty','$prof','$practice','$coordinator','$relationship','$relEmail','$feedback','$service')"; 
    $result = mysqli_query($cxn,$query); 
    //email confirmation 
    $to = $email; 
    $subject = "Confirmation from Cranium eSolutions Inc., to $username"; 
    $header = "Cranium eSolutions Inc.: Confirmation from craniumesolutions.com"; 
    $message = "Please click the link below to verify and activate your account. <br />"; 
    $message .= "http://imageworkz.asia/Cranium-Trial/confirm.php?passkey=$com_code"; 
    $sentmail = mail($to, $subject, $message, $header); 
    if($sentmail) { 
     header('Location: http://www.google.com'); 
    } else { 
     header('Location: http://localhost/cranium/verificationfail.html'); 
    } 
} else { 

    echo '<span style="color:red;">Username already exists</span>'; 

} 
?> 

線65點到標題:;( '位置www.google.com'。)

任何想法?謝謝!

+0

你甚至嘗試谷歌的錯誤信息呢?因爲這是這樣一個常見的錯誤... –

+1

你'echo'在你的'header.inc.php'中 – mack

+2

header()無法工作,如果有已經有一些輸出迴應。檢查標題('location:www.google.com')前的行和函數調用 – papaiatis

回答

8

可以在前header()調用任何輸出。檢查您的代碼是否有迴應,或者顯示任何錯誤。

header.inc.php線14.這就是東西被輸出。

0

header.ing.php IS輸出。

運行的瞬間「包括( '的header.inc.php'),你必須輸出

解決方案:稍後再運行它


此外,添加。 「你的頭後,退出」 (位置)命令,停止正在執行的腳本的其餘部分。PHP將繼續運行。