


The header location redirection statement fails to jump to the page_PHP tutorial
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.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



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.

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.

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

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.

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.

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 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.

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.
