Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

header('location: ..') not working

Tags:

People also ask

Why PHP header Location not working?

Solution to the Problem To solve this problem, we have to store the header in a buffer and send the buffer at the end of the script, so to store the header in the buffer, we will use the php ob_start() function and to clean the buffer, we will use the ob_end_flush() function.

How to redirect header in PHP?

To create a PHP redirect, you first need to write your header() function. This begins with header(). Next, define the Location response-header field with the URL or file name where you want to redirect users and search engines. Place that within the parentheses.

Why does PHP not redirect to another page?

In short, the PHP header not redirecting error occurs mainly due to the absence of ob_start() function, incorrect header formats, and so on.


(1)I'm in the process of uploading my website to a remote web server.

(2)The site's template system is set up in a way that all of the pages are formed by sending url-encoded get requests to index.php

(3)Loading up the initial page works. This page determines the location of the next page by evaluating the value of its form.

(4)The redirection to the next page is performed by doing a: header('location: next_page')

(5)For some reason, the redirection is not performed. Here's what the code looks like:

$error = "";
if(isset($_POST['index_choice'])){
    $path_choice = isset($_POST['path']) ? $_POST['path'] : NULL;

    //echo $path_choice;
    //echo $page_inc;

    //nothing after this

    if($path_choice != null){

        if($form->is_connected()){

            //if($path_choice != "" || $path_choice != NULL){
                if($path_choice == "new"){

                    //header('location: /login.php');
                    //header('location: page/login');
                    header('location: /index.php?page=login');
                    exit();

                }
                else{

                    //header('location: /amend.php');
                    //header('location: page/amend');
                    header('location: /index.php?page=amend');
                    exit();
                }
            //}
            /**
            else{
                //destroy_session();
                $error = "You haven't selected a path. Please choose a path";
            }
             *
             */
        }
        else{
            //destroy_session();
            $error = "Problems with connecting to the database";
        }
    }else{
        //destroy_session();
        $error = "You have not indicated your choice";
    }

}

SOLVED

It was a matter of having a blank space after a ?> somewhere else in the code. This was revealed to me after placing the following commands at the top of the code:

 error_reporting(E_ALL); ini_set('display_errors', 'On'); 

I'd like to say thanks to all of the people that have tried to help.