Home Backend Development PHP Tutorial The header location redirection statement fails to jump to the page_PHP tutorial

The header location redirection statement fails to jump to the page_PHP tutorial

Jul 20, 2016 am 11:17 AM
header http location effect function fail right statement Jump conduct Redirect page

Function header function:

Page jump

http header information
Header information has many functions, the most important ones are the following:
1. Jump
When the browser receives the Location: xxxx in the header information, it will automatically jump to the URL pointed to by xxxx. This is somewhat similar to writing a jump in js. But this jump is only known by the browser, and users cannot see it regardless of whether there is anything in the content.
Example: header("Location: http://www.bkjia.com/");

2. The content of the specified web page
For the same XML file, if Content-type: application/xml is specified in the header information, the browser will parse it according to the XML file format. However, if the header information is: Content-type: text/xml, the browser will parse it as stored text. (Browsers do not parse files according to extensions)
Example: header('Content-type: application/pdf');

3. Attachment
I don’t know if you have noticed that sometimes when downloading something from some websites, after clicking the download link, the browser opens the attachment as a web page, and all the garbled characters are displayed. This problem is also related to the header information. Sometimes the browser determines whether to open or save based on Content-type, so sometimes it will make a wrong judgment (mainly because the website designer forgets to write Content-type). In fact, there is another way to specify that the content is an attachment and needs to be saved. This is: Content-Disposition: attachment; filename="xxxxx"
Example: header('Content-Disposition: attachment; filename="downloaded.pdf"');
//Open the file and output
​​ readfile('original.pdf');

HTTP protocol status code
1×× Reserved
2×× Indicates that the request was successfully received
3×× In order to complete the request, the customer needs to further refine the request
4×× Customer error
5×× Server error

Syntax:
header(string,replace,http_response_code)
Parameters
String: required. Specifies the header string to be sent.
Replace: optional. Indicates whether this header replaces the previous header, or adds a second header. Default is true (replacement). false (allow multiple headers of the same type).
http_response_code: optional. Forces the HTTP response code to the specified value. (Available in PHP 4 and above)

Example 1:
Redirect webpage

header("Location: http://www.example.com/");

exit;

?>
Example 2:
Force users to get the latest information every time they visit this page, rather than using the client's cache.

//Tell the browser the expiration time of this page (expressed in Greenwich Mean Time), as long as it is a date that has passed.

header("Expires:Mon,26 Jul 1970 05:00:00 GMT");

//Tell the browser the last updated date of this page (expressed in Greenwich Mean Time), which is the same day, the purpose is to force the browser to obtain the latest information

header("Last-Modified:".gmdate("D,d M Y H:i:s")."GMT");

//Tell the client browser not to use cache

header("Cache-Control: no-cache, must-revalidate");

//Parameters (compatible with previous servers), that is, compatible with HTTP1.0 protocol

header("Pragma: no-cache");

?>
Example 3:
Output the status value to the browser, mainly used for access control

header('HTTP/1.1 401 Unauthorized');

header('status: 401 Unauthorized');

?>
Example 4:
To restrict a user from accessing this page, you can set the status to 404, as shown below, so that the browser will display that the page does not exist

header('HTTP/1.1 404 Not Found');

header("status: 404 Not Found"); //This writing is wrong

?>
Example 5:
Location of hidden files
html tag can realize ordinary file downloading. If you want to keep the file confidential and you cannot tell others the file link, you can use the header function to download the file.
header("Content-type: audio/mpeg");
header("Content-Disposition: attachment; filename=filenale");
header("Content-Description: PHP3 Generated Data");
Example 6:
Input content before header function

Generally speaking, html content cannot be output before the header function. Similarly, there are setcookie() and session functions. These functions need to add message header information to the output stream. If there are statements such as echo before header() is executed, when header() is encountered later, a "Warning: Cannot modify header information - headers already sent by ...." error will be reported. That is to say, there cannot be any text, blank lines, carriage returns, etc. in front of these functions, and it is best to add the exit() function after the header() function. For example, in the following incorrect writing, there is a blank line between the two PHP code snippets:

//some code here

?>

//This should be a blank line

header("http/1.1 403 Forbidden");

exit();

?>
Reason:
When a PHP script starts executing, it can send http message header (title) information and body information at the same time. The http message header (from the header() or SetCookie() function) is not sent immediately, instead, it is saved to a list. This allows you to modify the header information, including the default header (such as the Content-Type header). However, once the script sends any non-header output (for example, using HTML or a print() call), then PHP You must first send all the headers, then terminate the HTTP header, and then continue to send the body data. From this point on, any attempt to add or modify the header information is not allowed, and one of the above error messages will be sent.

Solution:
Modify php.ini to open the cache (output_buffering) and change output_buffering=0 to output_buffering=4096
Or use the cache functions ob_start(), ob_end_flush(), etc. in the program. The principle is: when output_buffering is enabled, PHP does not send the HTTP header when the script sends output. Instead, it pipes this output into a dynamically growing cache (only available in PHP 4.0, which has a centralized output mechanism). You can still modify/add headers, or set cookies, since headers are not actually sent. When all scripts terminate, PHP will automatically send HTTP headers to the browser, and then send the contents of the output buffer.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/371943.htmlTechArticleFunction header function: Page jump http header information has many functions, the most important ones are the following: 1. Jump When the browser receives Location: xxxx in the header information, it will...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Tips for dynamically creating new functions in golang functions Tips for dynamically creating new functions in golang functions Apr 25, 2024 pm 02:39 PM

Go language provides two dynamic function creation technologies: closure and reflection. closures allow access to variables within the closure scope, and reflection can create new functions using the FuncOf function. These technologies are useful in customizing HTTP routers, implementing highly customizable systems, and building pluggable components.

Considerations for parameter order in C++ function naming Considerations for parameter order in C++ function naming Apr 24, 2024 pm 04:21 PM

In C++ function naming, it is crucial to consider parameter order to improve readability, reduce errors, and facilitate refactoring. Common parameter order conventions include: action-object, object-action, semantic meaning, and standard library compliance. The optimal order depends on the purpose of the function, parameter types, potential confusion, and language conventions.

How to write efficient and maintainable functions in Java? How to write efficient and maintainable functions in Java? Apr 24, 2024 am 11:33 AM

The key to writing efficient and maintainable Java functions is: keep it simple. Use meaningful naming. Handle special situations. Use appropriate visibility.

Complete collection of excel function formulas Complete collection of excel function formulas May 07, 2024 pm 12:04 PM

1. The SUM function is used to sum the numbers in a column or a group of cells, for example: =SUM(A1:J10). 2. The AVERAGE function is used to calculate the average of the numbers in a column or a group of cells, for example: =AVERAGE(A1:A10). 3. COUNT function, used to count the number of numbers or text in a column or a group of cells, for example: =COUNT(A1:A10) 4. IF function, used to make logical judgments based on specified conditions and return the corresponding result.

What is the difference between custom PHP functions and predefined functions? What is the difference between custom PHP functions and predefined functions? Apr 22, 2024 pm 02:21 PM

The difference between custom PHP functions and predefined functions is: Scope: Custom functions are limited to the scope of their definition, while predefined functions are accessible throughout the script. How to define: Custom functions are defined using the function keyword, while predefined functions are defined by the PHP kernel. Parameter passing: Custom functions receive parameters, while predefined functions may not require parameters. Extensibility: Custom functions can be created as needed, while predefined functions are built-in and cannot be modified.

C++ Function Exception Advanced: Customized Error Handling C++ Function Exception Advanced: Customized Error Handling May 01, 2024 pm 06:39 PM

Exception handling in C++ can be enhanced through custom exception classes that provide specific error messages, contextual information, and perform custom actions based on the error type. Define an exception class inherited from std::exception to provide specific error information. Use the throw keyword to throw a custom exception. Use dynamic_cast in a try-catch block to convert the caught exception to a custom exception type. In the actual case, the open_file function throws a FileNotFoundException exception. Catching and handling the exception can provide a more specific error message.

How to implement HTTP streaming using C++? How to implement HTTP streaming using C++? May 31, 2024 am 11:06 AM

How to implement HTTP streaming in C++? Create an SSL stream socket using Boost.Asio and the asiohttps client library. Connect to the server and send an HTTP request. Receive HTTP response headers and print them. Receives the HTTP response body and prints it.

Things to note when Golang functions receive map parameters Things to note when Golang functions receive map parameters Jun 04, 2024 am 10:31 AM

When passing a map to a function in Go, a copy will be created by default, and modifications to the copy will not affect the original map. If you need to modify the original map, you can pass it through a pointer. Empty maps need to be handled with care, because they are technically nil pointers, and passing an empty map to a function that expects a non-empty map will cause an error.

See all articles