2016-03-20 190 views
1

由於某種原因,我不知道我的PHP頭函數不會重新指引我的腳本到一個新的頁面。我知道在函數調用之前沒有輸出可以發送到屏幕,但是,儘管我沒有看到任何輸出到屏幕,但我的腳本仍然無法正常工作。我的代碼如下。如果代碼塊執行幾次,則該代碼執行幾次,然後將用戶重定向到相應的頁面。使用php頭函數的問題

這裏是代碼:

session_start(); 
    require_once('Test_Input.php'); 
    if(!isset($_SESSION['Form_First_Name']) ||  !isset($_SESSION['Form_Last_Name']) || !isset($_SESSION['Form_Email']) || !isset($_SESSION['Form_Message'])) 
{ 
    $_SESSION['Form_First_Name'] = ''; 
    $_SESSION['Form_Last_Nameorm'] = ''; 
    $_SESSION['Form_Email'] = ''; 
    $_SESSION['Form_Message'] = ''; 
} 
if(isset($_POST['Clear']) && $_POST['Clear'] == 'clear') 
{ 
    $_SESSION['Form_First_Name'] = ''; 
    $_SESSION['Form_Last_Nameorm'] = ''; 
    $_SESSION['Form_Email'] = ''; 
    $_SESSION['Form_Message'] = ''; 
    unset($_SESSION['name_Switch']); 
    unset($_SESSION['Form_Email_Switch']); 
    //header('location:Contact_Form.php'); 
} 
$response = $_POST['Response']; 
$image_request = $_POST['DB_Response']; 
$first_name = $_SESSION['Form_First_Name'] = $_POST['First_Name']; 
$last_name = $_SESSION['Form_Last_Name'] = $_POST['Last_Name']; 
$email = $_SESSION['Form_Email'] = $_POST['Email']; 
$_SESSION['Form_Message'] = $_POST['Message']; 
$first_name_result = Test_Input::name_validation($first_name); 
var_dump($first_name_result); 
$last_name_result = Test_Input::name_validation($last_name); 
$email_result = Test_Input::email_validation($email); 
if(!$first_name_result || !$last_name_result) 
{ 
    $_SESSION['Name_Switch'] = false; 
    header('location:Contact_Form.php'); 
    exit(); 
} 
if (!$email_result) 
{ 
    $_SESSION['Form_Email_Switch'] = false; 
    header('location:Contact_Form.php'); 
    exit(); 
} 
if($response != $image_request) 
{ 
    unset($_SESSION['Email_Switch']); 
    header('location:Contact_Form.php'); 
    exit(); 
} 

else 
{ 
    global $first_name; 
    global $last_name; 
    global $email; 
    $message = 'FROM: '.$first_name.' '.$last_name.' \n\n'. $_POST['Message']; 
    $to = '[email protected]'; 
    $subject = 'Show Love Production Contact Form'; 
    $headers = $email; 
    mail($to, $subject, $message, $headers); 
    $_SESSION['Email_Switch'] = true; 
    unset($_SESSION['Form_First_Name']); 
    unset($_SESSION['Form_Last_Name']); 
    unset($_SESSION['Form_Email']); 
    unset($_SESSION['Form_Message']); 
    header('location:Contact_Form.php'); 
    exit(); 
} 

這裏是由上面的代碼名爲test「Test_Input.php」腳本。

require_once('Check_Password.php'); 
class Test_Input extends Check_Password 
{ 
    public static function test_input_info($data) 
    { 
     $data = trim($data); 
     $data = stripslashes($data); 
     $data = htmlspecialchars($data); 
     return $data; 
    } 

    public static function name_validation($data) 
    { 
     if (!preg_match("/^[a-zA-Z]*$/",$data) || empty($data)) 
     { 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 

    public static function user_name_validation($data) 
    { 
     if (!preg_match("/^[a-zA-Z0-9\_\-]*$/",$data)) 
     { 
       return false; 
     } 

     else 
     { 
      return true; 
     } 
    } 
    public static function email_validation($data) 
    { 
     if (!filter_var($data, FILTER_VALIDATE_EMAIL)) 
     { 
      return false; 
     } 
     else 
     { 
      return true; 
     } 
    } 
    public static function password_validation($password, $conf_password) 
    { 
     if($password == $conf_password) 
     { 
      return 0; 
     } 

     else if (empty($password) || empty($conf_password)) 
     { 
      return 1; 
     } 

     else 
     { 
      return -1; 
     } 
    } 
    public static function music_prod_validation($data) 
    { 
     if (!preg_match("/^[a-zA-Z0-9]+[a-zA-Z0-9_\_\- ]*$/",$data)) 
     { 
       return false; 
     } 

     else 
     { 
      return true; 
     } 
    } 
} 

這裏是由上面的代碼稱爲「Check_Password.php」腳本:

class Check_Password 
{ 
    public function check_pass($password, $conf_password) 
    { 
     if($password == $conf_password) 
     { 
      return 0; 
     } 
     else if (empty($password) || empty($conf_password)) 
     { 
      return 1; 
     } 
     else 
     { 
      return -1; 
      } 
     } 
    } 

回答

-1

你總是可以使用HTML標題重定向是我用的時候PHP頭的位置沒有響應,由於一些很難發現錯誤。 http://example.com/「/> 您必須將其回顯出來,像回覆html標記一樣回顯html元標記,或者您可以整齊地將其放在分隔符外