PHP/HTML/header

Материал из Web эксперт
Перейти к: навигация, поиск

Changing the page type to CSV

 
// Tell the web client to expect a CSV file
header("Content-Type: text/csv");



Changing the page type to XML

 
header("Content-Type: text/xml");



Forcing File "Save As" Downloads

 
<?php
  $path = "images/winter.jpg";
  try {
    if (is_file ($path)){
      if ($file = fopen($path, "rb")) {
        while(!feof($file) and (connection_status()==0)) {
          $f .= fread($file, 1024*8);
        }
        fclose($file);
      }
      $outputname = "myimage";
      header ("Content-type: image/jpeg");
      header("Content-disposition: attachment; filename=".$outputname.".jpg");
      print $f;
    } else {
      throw new exception ("Sorry, file path is not valid.");
    }
  } catch (exception $e){
    echo $e->getmessage();
  }
  
?>



Good and bad Location headers

 
<?php
// Good Redirect
header("Location: http://www.wbex.ru");
?>



If a User Is Not Logged in, the Login Form Is Loaded

 
<?php
session_start();
if (!isset($_SESSION["username"])) {
  header("Location: /protected3/login.php?url=" . urlencode($_SERVER["SCRIPT_NAME"]));
}
?>



Logged In with cookie

 
<?php
  $auth = $_COOKIE["auth"];
  header("Cache-Control:no-cache"); 
  if( ! $auth == "ok" ) 
  {
      header("Location:login.php" );
      exit();
  }
?>

<html>
 <head>
  <title>Logged In</title>
 </head>
 <body>
 You are logged in and can access all pages on this web site.
 <a href="anotherpage.php"><br>Visit another page on this site ?</a>
 </body>
</html>



Mime types

 
application/msexcel                            Microsoft Excel data file
 
application/msword                             Microsoft Word data file
 
application/octet-stream                       Generic binary file
 
application/pdf                                Adobe PDF
 
application/x-shockwave-flash                  Macromedia Flash
 
application/zip                                Zip file
 
audio/mp3                                      MP3
 
audio/wav                                      Wave sound file
 
audio/x-ogg                                    Ogg file
 
font/ttf                                       TrueType Font
 
image/bmp                                      MS Windows .bmp image
 
image/gif                                      GIF image
 
image/jpeg                                     JPEG image
 
image/png                                      PNG image
 
image/tiff                                     TIFF image
 
image/svg+xml                                  Scalable Vector Graphic (SVG)
 
text/html                                      HTML file
 
text/plain                                     Plain text
 
text/rtf                                       Rich-Text File
 
text/tab-separated-values                      Tab-Separated Values (TSV)
 
text/xml                                       XML
 
video/mpeg                                     MPEG video
 
video/quicktime                                Quicktime video



Reading Queued Headers

 
<?
    header("Expires: Sat, 22 Dec 1979 05:30:00 GMT");
    echo "This is some text for output.<br />";
    if (!headers_sent($filename, $linenum)) {
            header("Location: www.yoursite.ru");
            exit;
    } else {
            echo "Headers already sent in $filename on line $linenum.<br />";
            echo "Headers sent are:<br /> <UL>";
            $headers = headers_list( );
            foreach($headers as $header) {
               echo "<LI>$header</LI>";
            }
            echo "</UL>";
            exit;
    }
?>



Redirect header

 
<?php 
  $location = $_POST["location"];
  $self = $_SERVER["PHP_SELF"];
  if( $location != null )
  {
    header( "Location:$location") ;
    exit();
  }
?>

<html>
 <head>
  <title>Redirect</title>
 </head>
 <body>
  Choose a site to visit:
  <form action = "<?php $self ?>" method = "post">
   <select name = "location">
   <option value = "http://www.google.ru">Google</option>
   <option value = "http://www.ebay.ru">Ebay</option>
   </select>
   <input type = "submit" name = "submit" value = "Go">
  </form>
 </body>
</html>



Redirecting with query string variables

 
<?php
header("Location: http://www.example.ru/?monkey=turtle");
exit();
?>



Sending an XML response

 
<?php header("Content-Type: text/xml"); ?>
<menu>
 <dish type="appetizer">Chicken Soup</dish>
 <dish type="main course">Fried Monkey Brains</dish>
</menu>



Sending Content Types Other Than HTML

 
<html>
</head>
<body>
  <div align="center">
    <img src="index.php" alt="" title="" style="border: none;" />
  </div>
</body>
</html>
<?php
  $path = "myImage.jpg";
  try {
    if (is_file ($path)){
      if ($file = fopen($path, "rb")) {
        while(!feof($file) and (connection_status()==0)) {
          $f .= fread($file, 1024*8);
        }
        fclose($file);
      }
      header ("Content-type: image/jpeg");
      print $f;
    } else {
      throw new exception ("Sorry, file path is not valid.");
    }
  } catch (exception $e){
    $animage = imagecreate (500, 500);
    $red = imagecolorallocate ($animage, 255, 0, 0);
    $white = imagecolorallocate ($animage, 255, 255, 255);
    imagefilledrectangle ($animage, 0, 0, 500, 500, $white);
    imagestring ($animage, 4, ((500 - (strlen($e->getmessage()) * imagefontwidth(4))) / 2), 5, $e->getmessage(), $red);
    imagejpeg ($animage);
    header ("Content-type: image/jpeg");
    imagedestroy ($animage);
  }
  
?>
Common File Format Content Types
Content Type                      Application
application/pdf                   Adobe Portable Document Format (PDF) types
application/msword                Microsoft Word documents
application/excel                 Microsoft Excel documents
image/gif                         GIF images
image/png                         PNG images
application/octet-stream          Zip files
text/plain                        Plain text (text files)



Setting a Cookie Using the header() Function

 
<?php
     header("Set-Cookie: mycookie=myvalue; path=/; domain=.demo.org");
?>



Setting character encoding

 
<?php
header("Content-Type: text/html;charset=utf-8");
?>



Using header() to Send Raw Headers

 
<?php
  $num_to_guess = 42;
  $message = "";
  if (! isset ( $_POST ["guess"] )) {
    $message = "Welcome!";
  } else if ($_POST ["guess"] > $num_to_guess) {
    $message = $_POST ["guess"] . " is too big!";
  } else if ($_POST ["guess"] < $num_to_guess) {
    $message = $_POST ["guess"] . " is too small!";
  } else {
    header ( "Location:congrats.html" );
    exit ();
  }
  $guess = ( int ) $_POST ["guess"];
  $num_tries = ( int ) $_POST ["num_tries"];
  $num_tries ++;
  ?>
<html>
<head>
<title>A PHP Number Guessing Script</title>
</head>
<body>
 <?php print $message?> Guess: <?php print $num_tries?><br />
<form method="post" action="<?php
print $_SERVER ["PHP_SELF"]?>">
<p><input type="hidden" name="num_tries"
  value="<?php
  print $num_tries?>" /> Number: <input
  type="text" name="guess" value="<?php print $guess?>" /></p>
</form>
</body>
</html>