IKT i praksis - PHP |
|
Send sidene vidareLegg du om frå html til php vil søkemotorane bruke ein del tid på å finne dei nye sidene. Fjernar du html-sidene, vil lenkene til sidene ikkje virke. Søkemotoren kan ikkje vite at fila bare har skift namn frå fila_mi.html til fila_mi.php. Det vi treng er eit lite skript som sender php-fila til mottakaren når html-fila med same namnet blir kalla opp. Bruke meta-tagEin enkel, men kanskje ikkje så kontrollerbar måte å vidaresende sida på er å setje inn ein vidaresendingskommando som meta-tag i html-kodinga:
<meta http-equiv="REFRESH" content="10;url=http://www.nytt-domene.no/ny-side.php">
Talet 10 framføre «url=» gjer at omdirigeringa skjer om 10 sekund. Dette kan du endre etter eige ønskje. .htacessLigg sida di på ein Apache-servar, kan du kanskje omdirigere sida ved å legge kommandoen Redirect 301 /sida-mi.html http://www.domenet-mitt.no/nyside.php/ i fila .htacess. Dette gjer du ved å laste ned fila frå rotmappa for sidene dine på servaren og føye til linja der. Dersom fila ikkje finst frå før, legg du kommandoen i ei ny fil og lagrar denne i rotmappa, sjølvsagt med namnet .htacess. Ønskjer du å omdirigere til eit anna domene, gjer du det ved å forandre (Du har rett. «htacess» er feilskrive. Då feilen blei oppdaga, var fila alt så mykje brukt at dei som styrer med dette valde å la feilen vere feil). PHPSidene mine ligg på Apacheservar, men der blir det brukt eit anna system slik at eg ikkje kan bruke metoden ovanfor. Litt søking på nettet, studering av handbøkene for php og litt sjølvtenking førte til eit overraskande enkelt program for denne jobben. Ein metode for å omdirigere sida sida_mi.html til sida_mi.php er altså å lage eit php-skript med ønskt kode og lagre det som sida_mi.html. Skriptet kan sjå slik ut: <?php
header('http://www.minServer.no/sida_mi.php') ?> Det er svært viktig at det ikkje må vere noe som helst form for utdata frå sida før oppkallet. Skriv du, kanskje av gammal vane <html>
vil funksjonen ikkje fungere. <html> sender data ut frå sida.
<?php header('http://www.minServer.no/sida_mi.php') ?> <body> ... </body> </html> Legg merke til at adressa må vere fullstendig, ikkje relativ i høve til sida ho blir kalla opp frå. Relativ adresseEr det ønskjeleg å bruke relativ adresse og samstundes automatisere skriptet kan dette gjerast med litt ekstra programmering. Studer skripteksemplet:
<?php
$vert = $_SERVER['HTTP_HOST']; // Finn vertsnamnet (t.d. localhost) $adr = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); // Stig (t.d. /stuestoel.no/ikt) $filnamn = basename ( $_SERVER['PHP_SELF']); // Finn filnamnet (t.d. php-redirect.php) $funn = strristr($filnamn, '.'); // $funn = siste punktum og alt etter dette $filnamn = substr_replace($filnamn,'.php',$funn, 9); // Bytter ut ".html" med ".php" header("Location: http://$vert$adr/$filnamn"); // Kommandoen som utfører jobben exit; ?> Dersom den nye sida har eit heilt anna namn enn sida skriptet blir brukt i, kan du erstatte linjene som definerer $filnamn og $funn med $filnamn = 'sidami.php'; (eller kva sida heiter). Er du i tvil om kva som hamnar i dei ulike variablane, kan du skrive dei ut.
$vert = $_SERVER['HTTP_HOST']; // Finn vertsnamnet
print $vert . '<br>'; Resultatet av funksjonen header() kan du sjå ved å erstatte funksjonskallet header med
print. Altså Slik skriptet er sett opp, vil det bytte ut kva filutviding («.html», «.htm», «css» o.l.) som helst med «.php». Inneheld fila fleire punktum, vil alt etter siste punktum bli bytt ut med «.php». Kommandoen exit; er i dette eksempelet ikkje nødvendig, men er tatt med i tilfelle sidene dine inneheld fleire koder etter dei som er nemnde ovanfor. Kommandoen gjer at php hoppar ut av programmet der kommandoen er sett, utan å lese vidare nedover sida. Sidan dette skriptet bare blir brukt på bestemte sider, er det ikkje lagt inn kontroll av variablane. F. eks. reknar eg med at sida du legg inn skriptet på, inneheld punktum. Lite vits elles i å bruke skriptet. Eit anna eksempelHar du sett «Sida vil bli omdirigert om 10 sekund, eller klikk her.» eller noe liknande. Dette kan gjerast i html, men også i php. Set inn koden
<?php
header("refresh:10;url=den_nye_sida.php"); echo 'Den nye sida blir henta automatisk om ca. 10 sekund. Du kan også klikke <a href="den_nye_sida.php">her</a>.'; ?> |
|
© Innhald og design: Kolbjørn Stuestøl | Stuestøl heimeside | Sist endra 11. april 2013 |