getting warning “Header may not contain more than

2019-02-21 19:59发布

I am doing coding in oops for uploading image in PHP. But After submit image, it's giving warning

"Header may not contain more than a single header, new line detected"

Below is my function, on which its giving error

public function ft_redirect($query = '') {

    if (REQUEST_URI) {

        $_SERVER['REQUEST_URI'] = REQUEST_URI;

    }

    $protocol = 'http://';

    if (HTTPS) {

        $protocol = 'https://';
    }

    if (isset($_SERVER['REQUEST_URI'])) {

        if (stristr($_SERVER["REQUEST_URI"], "?")) {

            $requesturi = substr($_SERVER["REQUEST_URI"], 0, strpos($_SERVER["REQUEST_URI"], "?"));

            $location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$requesturi}";
        } else {


            $requesturi = $_SERVER["REQUEST_URI"];

            $location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$requesturi}";

        }

    } else {

        $location = "Location: {$protocol}{$_SERVER["HTTP_HOST"]}{$_SERVER['PHP_SELF']}";

    }

    if (!empty($query)) {

        $location .= "?{$query}";

    }

    header($location);

    exit;

}

标签: php oop
4条回答
狗以群分
2楼-- · 2019-02-21 20:38

Seems like the variables you are using to create the Location attribute has a new line character in them. Pass them through urlencode()

查看更多
地球回转人心会变
3楼-- · 2019-02-21 20:45

Try encoding your URL and it should work : http://php.net/manual/en/function.urlencode.php

查看更多
三岁会撩人
4楼-- · 2019-02-21 20:47

You should put the URL "http://example.com like this , please avoid "http://example.com/" "/" does give URL Mismatch , so avoid , Same problem will comes wordpress also. So try to use like this.

查看更多
Juvenile、少年°
5楼-- · 2019-02-21 20:50

You shouldn't put more than two lines in URL address. Check you URL.

Good URL - "http://mail.google.com"  - 1 line

Bad URL - "http://mail.              - 2 lines
            google.com/"
查看更多
登录 后发表回答