PHP Web Fundamentals Redirecting to a Different Location - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Web Fundamentals Redirecting to a Different Location - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

Breaking

Post Top Ad

Post Top Ad

Wednesday, May 29, 2019

PHP Web Fundamentals Redirecting to a Different Location

PHP Web Fundamentals



Redirecting to a Different Location

Problem

You want to automatically send a user to a new URL. For example, after successfully saving form data, you want to redirect a user to a page that confirms that the data has been saved.

Solution

Before any output is printed, use header() to send a Location header with the new URL, and then call exit() so that nothing else is printed:

           header('Location: http://www.example.com/confirm.html');
           exit();

Discussion

Example   Redirecting with query string variables

          header('Location: http://www.example.com/?monkey=turtle');
          exit();

Redirect URLs must include the protocol and hostname. They cannot be just a pathname. 
Example shows a good Location header and a bad one.


Example   Good and bad Location headers

          // Good Redirect
          header('Location: http://www.example.com/catalog/food/pemmican.php');

          // Bad Redirect
          header('Location: /catalog/food/pemmican.php');

The URL that you are redirecting a user to is retrieved with GET. You can’t redirect someone to retrieve a URL via POST. With JavaScript, however, you can simulate a redirect via POST by generating a form that gets submitted (via POST) automatically. When a (JavaScript-enabled) browser receives the page in example, it will immediately POST the form that is included.


Example   Redirecting via a posted form

          <html>
              <body onload="document.getElementById('redirectForm').submit()">
                  <form id='redirectForm' method='POST' action='/done.html'>
                      <input type='hidden' name='status' value='complete'/>
                      <input type='hidden' name='id' value='0u812'/>
                      <input type='submit' value='Please Click Here To Continue'/>
                  </form>
              </body>
          </html>

The form in example has an id of redirectForm, so the code in the <body/> element’s onload attribute submits the form. The onload action does not execute if the browser has JavaScript disabled. In that situation, the user sees a Please Click Here To Continue button.



No comments:

Post a Comment

Post Top Ad