pragt .info
VEENENDAAL   
 (c) Hein Pragt
Doorzoek deze site!
Google

PHP.

© 2006 H.M. Pragt

Introductie in PHP.

PHP is een programmeertaal waarmee u dynamische webpagina's kunt maken, het is een "server-side embedded open-source" script-taal. PHP is bedacht door Rasmus Lerdorf in 1994. Hij gebruikte het eerst alleen op zijn eigen homepage, pas in 1995 kwam een versie die door anderen gebruikt kon worden onder de naam Personal Home Page Tools. PHP groeide ontzettend snel en een groot aantal ontwikkelaars brachten eigen verbeteringen in en in 1997 waren er al 50000 gebruikers. Vanaf 1997 werd een groot gedeelte herschreven, op het moment dat ik dit schrijf zijn we aan de vierde grote versie (PHP 4.0) toe. PHP stond in eerste instantie voor Personal Home Page, tegenwoordig staat het voor PHP Hypertext Preprocessor.

U kunt alleen PHP gebruiken wanneer uw webserver PHP ondersteunt. De webserver zorgt er voor dat alle bestanden met de extensie .php worden verwerkt door de PHP module die op de webserver staat. Net als andere script-talen zoals Javascript en vbscript kan PHP worden ingebed in HTML. PHP-code wordt door start- en eindtags gescheiden van de normale HTML. De webserver zal de pagina versturen en de php-code die op de pagina staat uitvoeren. De PHP code kan weer extra HTML code genereren die naadloos in de resultaat pagina is opgenomen. De gebruiker ziet dus niets van de PHP code die uitgevoerd is, behalve het resultaat van deze code. Voor de gebruiker is de opgeleverde pagina een "gewone" HTML pagina.

PHP is open-source, dat betekend dat PHP door iedereen gratis gebruikt mag worden en ook dat iedereen een steentje bijdragen aan de ontwikkeling van PHP. U kunt PHP ook vrij eenvoudig op uw eigen computer installeren, u kunt het downloaden van de officiële PHP-website.

PHP is een zeer uitgebreide taal met een zeer uitgebreide bibliotheek met standaard functies waardoor u zeer eenvoudig de meest uitgebreide web applicaties kunt maken. Ook zijn er veel code bibliotheken beschikbaar voor bijna elke toepassing zoals XML parsers, SOAP toolkits e.d.



Handige scripts.

Voorkomen van deeplinken.

Deeplinken is als men gebruik maakt van de weblocatie van afbeeldingen en/of foto's van een website zonder ze op de eigen webserver te zetten. De webpagina tekst komt dus van de eigen server maar de plaatjes en afbeeldingen van een andere webserver. De eigenaren van deze webservers zijn hier meestal niet erg blij mee omdat zij het dataverkeer moeten betalen voor een plaatje dat een ander op zijn site zet. Soms is de oorspronkelijke site niet meer zichtbaar omdat deze over de datalimiet heen is.

Vooral gebruikers van sites zoals CU2, partypeeps, sugerbabes en andere profiel sites zijn berucht om het stelen van dataverkeer.

Het deeplinken is dus eigenlijk stelen van dataverkeer. Aangezien dataverkeer duur is en u wilt voorkomen dat u moet betalen voor onverlaten die naar uw plaatjes linken, kunt u technische maatregelen treffen.

Via het volgende PHP script kunt u het deeplinken naar plaatjes op uw site voorkomen. Het script test bij ieder plaatje of het verzoek van de eigen webserver komt, is dit niet het geval dan geeft het een 404 melding.

Kopieer eerst de PHP code en sla deze op onder de naam plaatjes.php. Maak een directory aan op uw server met een aparte naam zoals my_hidden_imags en zet daarin alle plaatjes. Vervang in het script mydomain door uw eigen domeinnaam en verzin een leuke naam voor de geheime directory waar uw plaatjes staan. Vervang my_hidden_imags door de naam van uw geheime directory. Vervang in uw html de locatie in de img tag zoal in het voorbeeld staat en het deeplinken naar uw plaatjes is niet meer mogelijk.

plaatje.php
<?
$imagedir = "../my_hidden_imags/";

$validprefixes = array (
  "mydomain.com",
  "www.mydomain.com"
) ;

$homepage = "http://www.mydomain.com/" ;

function isreferrerokay ($referrer) {
global $validprefixes;

  $validreferrer = 0 ;
  $authreferrer  = current( $validprefixes );
  while ($authreferrer) {
    if (eregi( "^http?://$authreferrer/", $referrer )) {
      $validreferrer = 1 ;
      break ;
    }
    $authreferrer = next( $validprefixes );
  }
  return $validreferrer ;
}


$image = $_GET['image'] ;
$referrer = getenv( "HTTP_REFERER" );


if (isset($image)) {
  if (isreferrerokay($referrer)) {
    $imagepath = $imagedir . $image ;
    $imageinfo = getimagesize($imagepath);
    if ($imageinfo[2] == 1) {
      $imagetype = "gif" ;
    }
    elseif ($imageinfo[2] == 2) {
      $imagetype = "jpeg" ;
    }
    elseif ($imageinfo[2] == 3) {
      $imagetype = "png" ;
    }
    else {
      header( "HTTP/1.0 404 Not Found" );
      exit ;
    }
    header( "Content-type: image/$imagetype" );
    @readfile( $imagepath );
  }
  else {
    header( "HTTP/1.0 404 Not Found" );
  }
}
else {
   header( "Location: $homepage" );
}
?>

img tag die gebruik maakt van het script.
<img src="plaatjes.php?image=test.gif" alt="testplaatje">



Naslagwerken en handleidingen.




Disclaimer.

De beheerder van deze site betracht uiterste zorgvuldigheid bij het vervaardigen, samenstellen en verspreiden van de informatie op deze website, maar kan op geen enkele wijze instaan voor de juistheid of volledigheid hiervan. De beheerder van deze site aanvaardt geen enkele verantwoordelijkheid voor schade op welke manier dan ook ontstaan door gebruik, onvolledigheid of onjuistheid van de aangeboden informatie op deze website.

De informatie op deze website kan zonder voorafgaande waarschuwing of kennisgeving worden gewijzigd.

Het auteursrecht op deze website berust bij de beheerder van deze site of bij derden die met toestemming dit (beeld)materiaal beschikbaar hebben gesteld. Vermenigvuldiging in wat voor vorm dan ook is alleen toegestaan na voorafgaande toestemming.