标题PHP函数有问题 [英] Having problems with header PHP function

查看:56
本文介绍了标题PHP函数有问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在php中使用header函数时遇到了一些麻烦。我的代码应该检查几个布尔值并执行适当的代码块。当我执行脚本时,我收到此错误消息,警告:无法修改标头信息 - 已在/ home2 / truck35 / public_html /中通过(/home2/truck35/public_html/ShowLove/Captcha_Post.php:34开始的输出)发送的标头第73行的ShowLove / Captcha_Post.php。我读到在函数调用之前不应该输出任何字符但是,我有点困惑这实际意味着什么。该脚本适用于我的开发WAMP服务器。任何帮助,将不胜感激。这是我正在处理的脚本。



<?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');
}

if(!$ email_result)
{
$ _SESSION ['Form_Email_Switch'] = false;
header('location:Contact_Form.php');
}

if($ response!= $ image_request)
{

// unset($ _ SESSION ['Form_Switch']);
未设置($ _ SESSION ['Email_Switch']);
header('location:Contact_Form.php');
}

else
{
global $ first_name;
global $ last_name;
global $ email;
$ message ='FROM:'。$ first_name。''。$ last_name。'\ n \ n'。 $ _POST [消息];
$ to ='admin@showlove-productions.com';
$ subject ='显示爱情生产联系表格';
$ headers = $ email;
邮件($ to,$ subject,$ message,$ headers);
$ _SESSION ['Email_Switch'] = true;
unset($ _ SESSION ['Form_First_Name']);
unset($ _ SESSION ['Form_Last_Name']);
未设置($ _ SESSION ['Form_Email']);
unset($ _ SESSION ['Form_Message']);
header('location:Contact_Form.php');
}
?>





我尝试了什么:



我尝试使用ob_start()和ob_end_clean()函数进行输出缓冲,但它们不起作用。

解决方案

< blockquote> _SESSION ['Form_First_Name'])|| !isset(


_SESSION ['Form_Last_Name'])|| !isset(


_SESSION ['Form_Email'])|| !isset(

I am having some trouble using the header function in php. My code is supposed to check several Boolean values and execute the appropriate block of code. When I execute the script I get this error message,"Warning: Cannot modify header information - headers already sent by (output started at /home2/truck35/public_html/ShowLove/Captcha_Post.php:34) in /home2/truck35/public_html/ShowLove/Captcha_Post.php on line 73". I read that no characters are supposed to be outputted before the function call but, I am a little confused what is actually meant by this. The script works on my development WAMP server. Any help would be appreciated. Here is the script that I am working on.

<?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');
}

if (!$email_result)
{
	$_SESSION['Form_Email_Switch'] = false;
	header('location:Contact_Form.php');
}

if($response != $image_request)
{
	 
	//unset($_SESSION['Form_Switch']);
	unset($_SESSION['Email_Switch']);
	header('location:Contact_Form.php');
}

else 
{
	global $first_name;
	global $last_name;
	global $email;
	$message = 'FROM: '.$first_name.' '.$last_name.' \n\n'. $_POST['Message'];
	$to = 'admin@showlove-productions.com';
	$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');
}
?>



What I have tried:

I tried using the ob_start() and ob_end_clean() functiona for output buffering but, they do not work.

解决方案

_SESSION['Form_First_Name']) || !isset(


_SESSION['Form_Last_Name']) || !isset(


_SESSION['Form_Email']) || !isset(


这篇关于标题PHP函数有问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆