Etusivulle
Sivun PHP-lähdekoodin näyttäminen
Alla on sivun u/index.php PHP-lähdekoodi.
<?PHP
function HTMLalku() {
?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>URL-osoitteiden lyhentäjä</TITLE>
<LINK REL="stylesheet" TYPE="text/css" HREF="/_tyyli.css">
</HEAD>
<BODY>
<H1>URL-osoitteiden lyhentäjä</H1>
<?PHP
}
function HTMLloppu() {
?>
</BODY>
</HTML><?PHP
}
// Luetaan parametrit
list($getparam) = array_keys($_GET);
$getparam = strtolower($getparam);
$postparam = stripslashes($_POST["osoite"]);
if ($getparam != "") {
// Uudelleenohjaus
$tiedosto = file("lista.txt");
foreach ($tiedosto as $rivi) {
list($lyhenne, $osoite, $ip, $aika) = explode("|", trim($rivi));
if ($lyhenne == $getparam) {
// Siirrytään osoitteeseen
header("Location: " . $osoite);
}
}
// Lyhennettä ei löytynyt
HTMLalku();
echo "Virhe: annettu lyhytosoite ei kelpaa.\r\n";
echo "<P>\r\n";
echo "<A HREF=\"/\">Sivuston etusivulle</A>";
HTMLloppu();
} elseif ($postparam == "") {
// Näytetään lomake
HTMLalku();
?>
Tämän palvelun avulla saat mihin tahansa URL-osoitteeseen viittaavan lyhytosoitteen, joka on muotoa http://kahesi.net/u/?x. ("x" on vaihteleva merkkijono.) Lyhytosoitteet toimivat toistaiseksi. Voit rekisteröidä niitä useimmillaan 10 sekunnin välein.
<P>
Lyhytosoitteita on rekisteröity jo <?PHP echo count(file("lista.txt")); ?> kpl.
<P>
<FORM ACTION="./" METHOD="post">
Lyhennettävä osoite:
<BR>
<INPUT TYPE="text" NAME="osoite" SIZE=50>
<P>
<INPUT TYPE="submit" VALUE="Lyhennä">
</FORM>
<P>
<A HREF="/_naytaphplahdekoodi.php?sivu=u/">Tämän ohjelman PHP-lähdekoodi</A>
<P>
<A HREF="/">Sivuston etusivulle</A>
<?PHP
HTMLloppu();
} else {
// Yritetään tallentaa annettu osoite
HTMLalku();
$aikanyt = time();
$ipnyt = $_SERVER["REMOTE_ADDR"];
// Luodaan tiedosto tarvittaessa
if (!file_exists("lista.txt")) {
$tiedosto = fopen("lista.txt", "a");
fclose ($tiedosto);
}
// Luetaan tiedosto
$tiedosto = file("lista.txt");
// Haetaan kävijän IP-osoitteen viimeinen esiintymä tiedostossa
$loytyiko = false;
foreach (array_reverse($tiedosto) as $rivi) {
list($lyhenne, $osoite, $ip, $aika) = explode("|", trim($rivi));
if ($ip == $ipnyt) {
$loytyiko = true;
break;
}
}
$aikaero = $aikanyt - $aika;
if (!$loytyiko || $aikaero >= 10) {
// Tallennetaan osoite
$riveja = count($tiedosto);
if ($riveja == 0) {
$lyhenne = "0";
} else {
// Haetaan tiedoston viimeinen lyhenne
$vikarivi = trim($tiedosto[$riveja - 1]);
list($vikalyhenne) = explode("|", $vikarivi);
// Suurennetaan lyhennettä yhdellä
$lyhenne = base_convert($vikalyhenne, 36, 10);
$lyhenne++;
$lyhenne = base_convert($lyhenne, 10, 36);
}
// Korjataan osoite
$postparam = str_replace("|", "", $postparam);
if (substr_count("¤" . $postparam, "¤http://") == 0) $postparam = "http://" . $postparam;
// Luodaan kirjoitettava rivi
$rivi = $lyhenne . "|" . $postparam . "|" . $ipnyt . "|" . $aikanyt . "\r\n";
// Kirjoitetaan rivi
$tiedosto = fopen("lista.txt", "a");
fwrite ($tiedosto, $rivi);
fclose ($tiedosto);
// Kerrotaan lyhytosoite käyttäjälle
$osoite = "http://kahesi.net/u/?" . $lyhenne;
echo "Lyhytosoite on rekisteröity onnistuneesti: <A HREF=\"" . $osoite . "\">" . $osoite . "</A> .\r\n";
echo "<P>\r\n";
echo "<A HREF=\"./\">Takaisin</A>";
} else {
// Ei kelpuuteta
echo "Virhe: sinun on odotettava vielä " . (10 - $aikaero) . " sekuntia, ennen kuin voit rekisteröidä ";
echo "uuden lyhytosoitteen. Voit palata takaisin selaimesi takaisin-toiminnolla. Ylläpito pahoittelee ";
echo "aiheutunutta lisävaivaa, mutta nykyistä käytäntöä tarvitaan väärinkäytösten estämiseksi.";
}
HTMLloppu();
}
Takaisin sivulle u/index.php
Etusivulle