【问题标题】:Header may not contain more than a single header, new line detected [PHP MYSQL]标头可能不包含多个标头,检测到新行 [PHP MYSQL]
【发布时间】:2021-07-31 13:40:30
【问题描述】:

我设法解决了所有其他错误,但我被这个错误困住了!对于我的一生,我似乎无法诊断出我哪里出错了。你们这些聪明人的任何帮助都会很棒!

我制作了一个表单编辑 php,它应该编辑提交到系统中的提交。然后由我的处理 php 处理,但由于某种原因,我在表单提交中收到“标题可能不包含多个标题”错误。我多次更改标题代码但我不知道为什么我仍然得到它:https://imgur.com/reX4Yyb

编辑: 还想补充一点,这段代码可以正常工作大约一个月。我唯一改变的是从 PHP 7.3 -> PHP 7.4 更新托管服务平台。我尝试还原,它完全相同的错误。

 if($_POST['form_submitted'] == 'editgroupreferral'){

            include("../../inc/inc.con.php");

            /* assign values to checkboxes  */
            if(isset($_POST['OtherServices'])){
                $otherservices = 1;
                } else {
                $otherservices = 0;
                }

            if(isset($_POST['Medication'])){
                $medication = 1;
                } else {
                $medication = 0;
                }

            if(isset($_POST['HaveAllergies'])){
                $allergies = 1;
                } else {
                $allergies = 0;
                }

            if(isset($_POST['Device'])){
                $device = 1;
                } else {
                $device = 0;
                }

            if(isset($_POST['Share'])){
                $share = 1;
                } else {
                $share = 0;
                }

            if(isset($_POST['TakeTurns'])){
                $taketurns = 1;
                } else {
                $taketurns = 0;
                }

            if(isset($_POST['Wait'])){
                $wait = 1;
                } else {
                $wait = 0;
                }

            if(isset($_POST['MultInstructions'])){
                $multinstr = 1;
                } else {
                $multinstr = 0;
                }

            if(isset($_POST['SitChair'])){
                $sitchair = 1;
                } else {
                $sitchair = 0;
                }

            if(isset($_POST['Routine'])){
                $routine = 1;
                } else {
                $routine = 0;
                }

            /* insert vars from form into ReferralSC table */
            $sql = "UPDATE ReferralGR SET
                    ReferrerName = :refname,
                    ReferrerRelationship = :refrelationship,
                    ReferrerPhone = :refphone,
                    ReferrerEmail = :refemail,
                    ReferMethod = :refmethod,
                    RefSupport = :refsupp,
                    OtherServices = :otherservices,
                    School = :school,
                    Diagnosis = :diagnosis,
                    Medication = :medication,
                    MedicationList = :medicationlist,
                    HaveAllergies = :allergies,
                    AllergiesList = :allergieslist,
                    Device = :device,
                    Share = :share,
                    TakeTurns = :taketurns,
                    Wait = :wait,
                    MultInstructions = :multinstr,
                    SitChair = :sitchair,
                    Routine = :routine,
                    ExplainFurther = :explain,
                    HeardAbout = :heardabout,
                    RefNotes = :notes
                    WHERE ref_id = :grid";

            $s = $pdo->prepare($sql);

            $s->bindvalue(':refname', $_POST['ReferrerName']);
            $s->bindvalue(':refrelationship', $_POST['ReferrerRelationship']);
            $s->bindvalue(':refphone', $_POST['ReferrerPhone']);
            $s->bindvalue(':refemail', $_POST['ReferrerEmail']);
            $s->bindvalue(':refmethod', $_POST['ReferMethod']);
            $s->bindvalue(':refsupp', $_POST['RefSupport']);
            $s->bindvalue(':otherservices', $otherservices);
            $s->bindvalue(':school', $_POST['School']);
            $s->bindvalue(':diagnosis', $_POST['Diagnosis']);
            $s->bindvalue(':medication', $medication);
            $s->bindvalue(':medicationlist', $_POST['MedicationList']);
            $s->bindvalue(':allergies', $allergies);
            $s->bindvalue(':allergieslist', $_POST['AllergiesList']);
            $s->bindvalue(':device', $device);
            $s->bindvalue(':share', $share);
            $s->bindvalue(':taketurns', $taketurns);
            $s->bindvalue(':wait', $wait);
            $s->bindvalue(':multinstr', $multinstr);
            $s->bindvalue(':sitchair', $sitchair);
            $s->bindvalue(':routine', $routine);
            $s->bindvalue(':explain', $_POST['ExplainFurther']);
            $s->bindvalue(':heardabout', $_POST['HeardAbout']);
            $s->bindvalue(':notes', $_POST['RefNotes']);
            $s->bindvalue(':grid', $_POST['ref_id']);

            $s->execute();

            header('location:../refer_gr/referral-view.php?rid=' . $_POST['ref_id'] );                  
        }

【问题讨论】:

  • 也许$_POST['ref_id'] 中有一些东西 - 尝试在标题行使用trim($_POST['ref_id']) 以防万一。
  • 刚试了一下,还是一样的错误。感谢您的帮助,感谢您的宝贵时间!
  • trim 只会从开头或结尾删除换行符,如果它出现在值中间的某个位置,则不会。检查它实际包含的内容。

标签: php html css mysql pdo


【解决方案1】:

好的,这个是一个顽固的人,但我想通了。这是我的方法:

  1. 所以线索在于错误本身。它从我的处理 php 中指向我。但这只是因为标题中询问的数据(需要参考ID)是错误的。
  2. 问题出在参考 ID 中(经过多次调试)。它从错误的变量中获取了错误的值。这是在 php 表单页面中,而不是在 php 处理页面中。

所以这里是解决方案:

        $s->bindvalue(':refid', $refid);

==================其余代码========================= =======

        <input type="hidden" name="ref_id" value="<?php echo $rid; ?>" >

变量 $rid 与变量 $refid 不同。

这里是修复:

        <input type="hidden" name="ref_id" value="<?php echo $refid; ?>" >

这意味着对于这种类型的错误,可能值得查看它试图从代码的哪个部分获取值并从那里开始调试。

感谢大家的帮助!

【讨论】:

    【解决方案2】:

    出现此警告表示您的变量的字符串内容中可能有一个新行 [/n]。解决方法是去掉变量 Like this 中可通过的换行内容

    $val=$_POST['ref_id'];
    $url="../refer_gr/referral-view.php?rid='$val'";
    $url=str_replace(PHP_EOL, '', $url);
    header("Location: $url");
    

    【讨论】:

    • 您好 Vishal K,感谢您抽出宝贵时间提供帮助。我已经实现了代码,结果还是一样。您认为我可能没有查看有问题的正确 php 页面吗?这是我正在制作的表单的代码(与 CodePen 链接中显示的内容不同,它没有错误。这是因为它与我的 MySQL 数据库交互并连接)codepen.io/AYSCodePen/pen/KKWdgxR
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-25
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多