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