'Header may not contain more than a single header, new line detected error [duplicate]

I managed to get every other error ironed out, but I am stuck with this error! For the life of me, I cannot seem to diagnose where I went wrong. Any help from you brilliant people out there would be amazing!

I made a form editing php where it is supposed to edit a submission made into the system. This is then processed by my processing php but for some reason I am getting a "header may not contain more than a single header" error in my form submission. I changed the header code multiple times but I do not know why I am still getting it: https://imgur.com/reX4Yyb

Edit: Also wanted to add that this code was working fine for about a month. The only thing I changed was updating the hosting service platform from PHP 7.3 -> PHP 7.4. I tried reverting and it exactly the same error.

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


Solution 1:[1]

This warning occurs to indicate that you might have a new line [/n] in the string content of your variables. The solution is to strip out the passable new line contents of the variable Like this

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Vishal K