首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >标题位置在post邮件表单后不工作

标题位置在post邮件表单后不工作
EN

Stack Overflow用户
提问于 2013-09-11 02:57:29
回答 2查看 1.8K关注 0票数 0

我有用于发送邮件的php脚本,在这个脚本的末尾,我将重定向到“感谢页面”。但我有问题。如果我在页面上提交邮件表单,邮件是发送的,但重定向不起作用,但是如果我直接去邮件发送脚本的入口,重定向是正常工作的。

错误在哪里?

代码语言:javascript
运行
AI代码解释
复制
<?php
include('includes/config.php'); 
if(isset($_POST['Email_Orderer_Form'])) {
$headers = "From: xy@xy.com\n";
$headers .= "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/plain; charset=utf-8\n";
$headers .= "Content-Transfer-Encoding: 8bit\n";
$headers .= "Return-Path:  xy@xy.com\n";
// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = " xy@xy.com, ".$_POST['Email_Orderer_Form']."";  // This email address will recieve the data of form.html
$email_subject = "XY";  // This would be the subject of email that you will recieved
$White_PHP = $_POST['checkboxWhite'];
$White_Velikost_PHP = $_POST['White_Velikost_Form'];
$White_Ks_PHP = $_POST['White_Ks_Form'];
$Black_PHP = $_POST['checkboxBlack'];
$Black_Velikost_PHP = $_POST['Black_Velikost_Form'];
$Black_Ks_PHP = $_POST['Black_Ks_Form'];
$Jmeno_PHP = $_POST['Jmeno_Form'];
$Prijmeni_PHP = $_POST['Prijmeni_Form'];
$Ulice_PHP = $_POST['Ulice_Form'];
$Cislo_Popisne_PHP = $_POST['Cislo_Popisne_Form'];
$Mesto_PHP = $_POST['Mesto_Form'];
$PSC_PHP = $_POST['PSC_Form'];
$Email_Orderer_PHP = $_POST['Email_Orderer_Form'];
$Telefon_PHP = $_POST['Telefon_Form'];
$Komentar_PHP = $_POST['Komentar_Form'];
function clean_text($string) {
$bad = array("content-type","bcc:","to:","cc:","href");
return str_replace($bad,"",$string);
}
$Stav = "New";
$White_PHP = mysql_real_escape_string($White_PHP);
$White_Velikost_PHP = mysql_real_escape_string($White_Velikost_PHP);
$White_Ks_PHP = mysql_real_escape_string($White_Ks_PHP);
$Black_PHP = mysql_real_escape_string($Black_PHP);
$Black_Velikost_PHP = mysql_real_escape_string($Black_Velikost_PHP);
$Black_Ks_PHP = mysql_real_escape_string($Black_Ks_PHP);
$Jmeno_PHP = mysql_real_escape_string($Jmeno_PHP);
$Prijmeni_PHP = mysql_real_escape_string($Prijmeni_PHP);
$Ulice_PHP = mysql_real_escape_string($Ulice_PHP);
$Cislo_Popisne_PHP = mysql_real_escape_string($Cislo_Popisne_PHP);
$Mesto_PHP = mysql_real_escape_string($Mesto_PHP);
$PSC_PHP = mysql_real_escape_string($PSC_PHP);
$Email_Orderer_PHP = mysql_real_escape_string($Email_Orderer_PHP);
$Telefon_PHP = mysql_real_escape_string($Telefon_PHP);
$Komentar_PHP = mysql_real_escape_string($Komentar_PHP);
if (($_POST['checkboxWhite'] == 'Bílé tričko') && ($_POST['checkboxBlack'] == 'Černé tričko')) {
    $email_message .= "Objednávka\n";
    $email_message .= "Tričko 1: ".clean_text($White_PHP)."\n";
    $email_message .= "Velikost: ".clean_text($White_Velikost_PHP)."\n";
    $email_message .= "Kusů: ".clean_text($White_Ks_PHP)."\n\n";
    $email_message .= "Tričko 2: ".clean_text($Black_PHP)."\n";
    $email_message .= "Velikost: ".clean_text($Black_Velikost_PHP)."\n";
    $email_message .= "Kusů: ".clean_text($Black_Ks_PHP)."\n\n";
    $email_message .= "Odběratel\n";
    $email_message .= "Jméno: ".clean_text($Jmeno_PHP)."\n";
    $email_message .= "Příjmení: ".clean_text($Prijmeni_PHP)."\n";
    $email_message .= "Ulice: ".clean_text($Ulice_PHP)."\n";
    $email_message .= "Číslo popisné: ".clean_text($Cislo_Popisne_PHP)."\n";
    $email_message .= "Město: ".clean_text($Mesto_PHP)."\n";
    $email_message .= "PSČ: ".clean_text($PSC_PHP)."\n";
    $email_message .= "Email: ".clean_text($Email_Orderer_PHP)."\n";
    $email_message .= "Telefon: ".clean_text($Telefon_PHP)."\n";
    $email_message .= "Komentář: ".clean_text($Komentar_PHP)."\n";
    mysql_query("INSERT INTO objednavky (Tricko1,Tricko1Velikost,Tricko1Ks,Tricko2,Tricko2Velikost,Tricko2Ks,Jmeno,Prijmeni,Ulice,CisloPopisne,Mesto,PSC,Email,Telefon,Zprava,Stav) 
                VALUES ('$White_PHP','$White_Velikost_PHP','$White_Ks_PHP','$Black_PHP','$Black_Velikost_PHP','$Black_Ks_PHP','$Jmeno_PHP','$Prijmeni_PHP','$Ulice_PHP','$Cislo_Popisne_PHP','$Mesto_PHP','$PSC_PHP','$Email_Orderer_PHP','$Telefon_PHP','$Komentar_PHP','$Stav')")or die(mysql_error());
}
else {
if ($_POST['checkboxWhite'] == 'Bílé tričko') {
    $Black_PHP = "-";
    $Black_Velikost_PHP = "-";
    $Black_Ks_PHP = "-";
    $email_message .= "Objednávka\n";
    $email_message .= "Tričko: ".clean_text($White_PHP)."\n";
    $email_message .= "Velikost: ".clean_text($White_Velikost_PHP)."\n";
    $email_message .= "Kusů: ".clean_text($White_Ks_PHP)."\n\n";
    $email_message .= "Odběratel\n";
    $email_message .= "Jméno: ".clean_text($Jmeno_PHP)."\n";
    $email_message .= "Příjmení: ".clean_text($Prijmeni_PHP)."\n";
    $email_message .= "Ulice: ".clean_text($Ulice_PHP)."\n";
    $email_message .= "Číslo popisné: ".clean_text($Cislo_Popisne_PHP)."\n";
    $email_message .= "Město: ".clean_text($Mesto_PHP)."\n";
    $email_message .= "PSČ: ".clean_text($PSC_PHP)."\n";
    $email_message .= "Email: ".clean_text($Email_Orderer_PHP)."\n";
    $email_message .= "Telefon: ".clean_text($Telefon_PHP)."\n";
    $email_message .= "Komentář: ".clean_text($Komentar_PHP)."\n";
    mysql_query("INSERT INTO objednavky (Tricko1,Tricko1Velikost,Tricko1Ks,Tricko2,Tricko2Velikost,Tricko2Ks,Jmeno,Prijmeni,Ulice,CisloPopisne,Mesto,PSC,Email,Telefon,Zprava,Stav) 
                VALUES ('$White_PHP','$White_Velikost_PHP','$White_Ks_PHP','$Black_PHP','$Black_Velikost_PHP','$Black_Ks_PHP','$Jmeno_PHP','$Prijmeni_PHP','$Ulice_PHP','$Cislo_Popisne_PHP','$Mesto_PHP','$PSC_PHP','$Email_Orderer_PHP','$Telefon_PHP','$Komentar_PHP','$Stav')")or die(mysql_error());
}
if ($_POST['checkboxBlack'] == 'Černé tričko') {
    $White_PHP = "-";
    $White_Velikost_PHP = "-";
    $White_Ks_PHP = "-";
    $email_message .= "Objednávka\n";
    $email_message .= "Tričko: ".clean_text($Black_PHP)."\n";
    $email_message .= "Velikost: ".clean_text($Black_Velikost_PHP)."\n";
    $email_message .= "Kusů: ".clean_text($Black_Ks_PHP)."\n\n";
    $email_message .= "Odběratel\n";
    $email_message .= "Jméno: ".clean_text($Jmeno_PHP)."\n";
    $email_message .= "Příjmení: ".clean_text($Prijmeni_PHP)."\n";
    $email_message .= "Ulice: ".clean_text($Ulice_PHP)."\n";
    $email_message .= "Číslo popisné: ".clean_text($Cislo_Popisne_PHP)."\n";
    $email_message .= "Město: ".clean_text($Mesto_PHP)."\n";
    $email_message .= "PSČ: ".clean_text($PSC_PHP)."\n";
    $email_message .= "Email: ".clean_text($Email_Orderer_PHP)."\n";
    $email_message .= "Telefon: ".clean_text($Telefon_PHP)."\n";
    $email_message .= "Komentář: ".clean_text($Komentar_PHP)."\n";
    mysql_query("INSERT INTO objednavky (Tricko1,Tricko1Velikost,Tricko1Ks,Tricko2,Tricko2Velikost,Tricko2Ks,Jmeno,Prijmeni,Ulice,CisloPopisne,Mesto,PSC,Email,Telefon,Zprava,Stav) 
                VALUES ('$White_PHP','$White_Velikost_PHP','$White_Ks_PHP','$Black_PHP','$Black_Velikost_PHP','$Black_Ks_PHP','$Jmeno_PHP','$Prijmeni_PHP','$Ulice_PHP','$Cislo_Popisne_PHP','$Mesto_PHP','$PSC_PHP','$Email_Orderer_PHP','$Telefon_PHP','$Komentar_PHP','$Stav')")or die(mysql_error());
    mysql_Close();
}
}
@mail($email_to, $email_subject, $email_message, $headers);
}
header('Location: order_send.php');
die();
?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-11 03:24:52

根据header()手册:记住必须在发送任何实际输出之前调用header(),无论是通过普通HTML标记、文件中的空行还是从PHP。读取包含或要求函数或另一个文件访问函数的代码,并在调用header()之前有空格或空行是非常常见的错误。在使用单个PHP/HTML文件时也存在同样的问题。

据我所知,您的php文件没有任何真正的html输出,我认为以下代码将工作!!没有测试,因为我懒惰

代码语言:javascript
运行
AI代码解释
复制
<?php 
//ob_start even before your includes
ob_start( );

//add ob_end_clean before your header
ob_end_clean( ); 
header( 'Location: http://www.google.com' );

//die() might work too
exit();
?> 
票数 2
EN

Stack Overflow用户

发布于 2013-09-11 03:21:04

尝试在php脚本的顶部添加这一行:

代码语言:javascript
运行
AI代码解释
复制
error_reporting(E_ALL); //it will show all errors

然后,您将在屏幕上或php错误日志中看到问题所在。我打赌你会看到:警告:不能修改标题信息-标题已经由.等。

如果是您的问题,请阅读以下内容以更正问题:How to fix "Headers already sent" error in PHP

在另一种情况下,请张贴错误信息,以更好地分析您的问题。

T. B.

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18739292

复制
相关文章
追洞小组 | Jdbc反序列化漏洞复现浅析
很多时候我们获得密码之后进入后台管理的界面,有些上传的漏洞或者sql注入无法getshell,但是如果发现连接mysql服务的数据包中可以传参,那么我们就可以尝试控制连接mysql服务器,反序列化代码来得到shell。所以该漏洞的关键只需要能够控制客户端的jdbc连接,在连接阶段就可以进行处发反序列化。这篇文章也不深入理解mysql的协议。使用idea maven项目创建,在pom中导入jdbc的坐标。(5版本的在5.1.40以下,8版本的在8.0.20以下)导入之后在右边点击maven图标导入。
Ms08067安全实验室
2021/05/11
2.9K0
追洞小组 | Jdbc反序列化漏洞复现浅析
Jackson 反序列化 Map 集合
仅仅使用 objectMapper.readValue(xxxxx, Map.class) 时,如果原始集合使用了泛型,idea会给出警告 未检查的赋值: 'java.util.Map' 赋值给 'java.util.Map<java.lang.String,java.lang.String>'
MashiroT
2022/10/28
8870
Winform 后台将指定的控件集合添加到制定容器中
1 /// <summary> 2 /// 把按钮按照行数分割排列 3 /// </summary> 4 /// <param name="ControlArry">按钮集合</param> 5 /// <param name="control_parent">父容器</param> 6 /// <param name="RowCount">每一行数量</param> 7 ///
FreeTimeWorker
2020/08/31
2.4K0
将Array、Dictionary等集合类的序列化和反序列化
Objective-C的集合类序列化到文件中或者从文件中反序列化其实很简单,请看下面的示例代码:
EltonZheng
2021/01/26
4400
追光效果
追光效果是在舞台全场黑暗的情况下用光柱来突出角色或其他特殊物体,还可以通过操控光源来跟随人物移动。追光效果主要用来突出角色主体以及主体和环境的关系,在游戏中可以用来营造沉浸式氛围以及聚焦玩家视线焦点
异名
2020/06/09
7710
“面试不败计划”:集合、日期、异常、序列化、其他知识点
关于集合 思考题:1、Java中的集合及其继承关系 思考题:希望大家积极的思考,并且可以踊跃的说出自己的想法,想法不管对与错,只要说出来就是一种提高,所以,希望小伙伴们可以把自己的想法在留言区给出,这
好好学java
2018/07/02
9000
python中使用traceback来追
test2.py中,用try..except捕获异常,然后traceback.print_exc()打印。
py3study
2020/01/09
5410
追源码的平凡之路
在斯坦福大学, 乔布斯做了一场我认为他最精彩的演讲之一 (另一场可能是iphone的问世发布会)。他讲了第一个故事 "connecting the dots"
勇哥java实战
2022/07/27
7790
追源码的平凡之路
【重磅】亚马逊砸137亿美元收购全食,AI吞噬世界让对手追无可追
【新智元导读】亚马逊昨夜宣布将以137亿美元收购全食超市(Whole Foods),这是亚马逊成立以来最大一笔收购,被认为是亚马逊拓展线下业务和实体零售渠道的一个重要步骤。分析人士认为,亚马逊重金收购线下零售商的一大原因是看中了数据和分发渠道的价值。联想到去年亚马逊惊艳发布线下无人超市Go,2017年众多知名零售商店纷纷关门的浪潮下,亚马逊似乎正在发起一场从线上到线下的整合运动,大有横扫之势。在零售业,贝索斯和他的亚马逊很快会建立起真正的帝国。 6月16日晚,亚马逊宣布将以约137亿美元收购全食超市(Who
新智元
2018/03/28
9010
【重磅】亚马逊砸137亿美元收购全食,AI吞噬世界让对手追无可追
Hexo哔哩哔哩追番
Github:https://github.com/XiaoLFeng/hexo-bilibili-bangumi-butterfly
筱锋xiao_lfeng
2022/03/16
4K0
IDEA 2022.1 重磅发布!追不动了~
IntelliJ IDEA 2022.1 正式发布了,熟悉我的朋友都知道,我通常都会第一时间更新到最新版本的。不过,这次我不太想追新版了,有点累,不想折腾了。我目前用的 2021.x 版本已经完全可以满足我的个人开发需求的。除非 2022 有更加里程碑式的新版本,我才会考虑更新一波。
乔戈里
2022/05/21
2.6K0
IDEA 2022.1 重磅发布!追不动了~
Celery增加到Systemd配置
Celery定时任务的启动依赖于命令,有时需要指定很多的参数,造成很长的命令.如果重启服务器等,就需要重新用命令启动.这个时候问题就来了,重启服务器的人不知道命令怎么办?或者说定时任务有好几个,其中有
Python碎片公众号
2021/02/26
8740
Celery增加到Systemd配置
flutter添加到android原生
1.创建一个flutter module flutter create -t module --org com.example my_flutter 2.在原生build.gradle下 android { //... compileOptions { sourceCompatibility 1.8 targetCompatibility 1.8 } } 3.添加Flutter模块作为依赖项 有两种方式 ######(1)无需安装flutter sdk Flutter库打包为由A
程序员小何SS
2021/12/29
1.1K0
23-狼追兔子问题
思路 环形遍历数组,要对下标取数组长度的模,防止越界 代码 #include <stdio.h> #include <string.h> #define N 10 int main() { int i = 0; int f[N] = {0}; // 1 3 6 10 15 21 int d = 0; for (i = 0; i < N; i++) { f[d] = 1; d++; d += i; d
lexingsen
2022/02/25
3270
[ISUX转译]设计追波风 - 腾讯ISUX
前言 13年底,Intercom 的产品VP Paul Adams 在 Intercom 官博发表了 一篇博文 。文章讲述了网络上设计社区里普遍存在的一种现象,大意是“许多设计师在社区中分享的作品往往是为了炫技,而产品的逻辑通常都经不起推敲的,真正优秀的设计应该从更高的层面出发,而不只是做表面上的工作”。 文章发布后,在 Twitter 、HN 及博客评论下引起了反响。虽然部分内容在一些设计师眼里看起来比较有攻击性(也就是俗称“开喷”),甚至还带有些地图炮,但是文中关于“设计的四个层次”以及“when..I
腾讯ISUX
2018/06/29
6910
用发展的眼光追技术
YII2 这个框架是 PHP 语言生态下的一款 Web 应用框架。有过 PHP 开发经验的开发者都不会陌生,或多多少都听说过,熟悉,至少接触过。
needrunning
2020/03/04
1.5K0
Typecho博客添加追番页面
Typecho博客添加追番页面 预览页面: https://blog.catdog007.icu/bilibili.html 下载插件 啥都不说,有git的直接 git clone https://g
meowrain
2021/04/22
1.1K0
Typecho博客添加追番页面
【Kotlin】集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )
调用 listOf 函数 , 可以 直接创建 List 集合 ; 通过 [] 下标可以 直接获取 List 集合中的元素 ;
韩曙亮
2023/03/30
6.3K0
【Kotlin】集合操作总结 ( List 集合 | MutableList 集合 | List 集合遍历 | Set 集合 | MutableSet 集合 | Map 集合 | 可变 Map集合 )
求1加到100的总和
数学上有一个公式可以计算前n个自然数的和: ( \frac{n(n + 1)}{2} )。对于这个问题,n是100,所以我们可以直接使用这个公式来计算和。
777nx
2023/10/18
2970
点击加载更多

相似问题

加工中的狼追羊

13

java.lang.NoSuchMethodError在Cloudbees追我

11

无法序列化集合集合

12

是否可以将属性添加到序列化集合中?

10

集合的序列化

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档