Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Yksinkertainen projektisivu

Puhveli [23.11.2005 18:20:51]

#

Tämä siis hakee samasta hakemistosta mahdolliset rar- ja zip-muotoiset paketit ja exet. Perässä on pieni yksinkertainen kommentointitila, jonka jälkeen listataan kaikki .jpg-, .png- ja .gif-päätteiset kuvankaappaukset. Tein alunperin omaa projektiani varten, joten toimiva esimerkki löytyy täältä.

Pöö! Muista muuten laittaa kommentit.txt:hen CHMOD:ksi 777 tai vastaava, ettei skriptillä ole vaikeuksia kirjoittaa/lukea sitä. Myös yksi rivinvaihto tarvitaan filun loppuun.

<?php

	$projekti = 'Sivun otsikko';
	$avainsanat = 'sukellusvene, hentai, ilmainen, crack jne...';
	$kuvaus = 'Tähän tulee pieni johdanto, jonka jälkeen listataan mahdolliset julkaistut paketit.';

// UUSI KOMMENTTI
	if ( $_POST['omena'] ) {
		// Parsitaan teksti mukavaksi.
		$nimi = stripslashes(htmlspecialchars(trim($_POST['nimi'])));
		$viesti = stripslashes(htmlspecialchars(trim($_POST['viesti'])));

		// Seuraavan voi toteuuttaa tyylikkäämminkin. :o
		if ( strlen($nimi) == 0 || strlen($viesti) == 0 )
			die('<h1 style="color: #ff0000;">HUONO VIESTI !1</h1><br /><a href="index.php">Jätä parempi</a>');

		// Kirjoitetaan viesti tiedostoon
		$kommentit = fopen('kommentit.txt', 'a');
		fwrite($kommentit, time() . "\n" . $nimi . "\n" . $viesti . "\n");
		fclose($kommentit);
	}

// ITSE SIVU ALKAA TÄSTÄ:
	echo '<meta name="description" value="' . $avainsanat . '" />';
	echo '<meta name="keywords" value="' . $avainsanat . '" />';
	echo '<a id="alku" name="alku"></a><h2>' . $projekti . '</h2><span>' . $kuvaus . '</span>';

	// Haetaan ensiksi kaikki paketit (voit lisätä jos tunnet muita päätteitä :o)...
	// Globin NOSORT-lippu kertoo, ettei funktiota vaivata järjestämään tiedostoja turhaan, sen haluamme tehdä itse,
	// BRACE taas tarkoittaa, että glob hakee tiedostoja useammilla eri päätteillä.
	foreach (glob("{*.rar,*.zip,*exe}", GLOB_NOSORT + GLOB_BRACE) as $filu) {
		$paknimi[] = $filu;
		$pakmuok[] = filectime($filu);
		$pakkoko[] = ceil(filesize($filu) / 1000);
	}
	// ...ja järjestetään ne ensisijaisesti muokkausajankohdan (sitten nimen jne.) mukaan:
	array_multisort($pakmuok, $paknimi, $pakkoko);
	// Tulostetaan lista lopusta alkuun sivulle: (multisort osaisi tämänkin mutta eipä vaivata turhaan)
	for ($i = count($paknimi) - 1; $i >= 0; $i--)
		echo '<li><a href="' . $paknimi[$i] . '" title="Muokattu ' . date('d.m.Y', $pakmuok[$i]) . '">' . $paknimi[$i] . '</a> (' . $pakkoko[$i] . ' kt)</li>';

// TULOSTETAAN VIESTIT:
	echo '<hr /><table width="640" cellspacing="0" cellpadding="5" style="border: 1px solid black;">';
	$kommentit = fopen('kommentit.txt', 'r');

	$a = true;
	while ( !feof($kommentit) ) {
		if ( $a ) { // Joka toinen tummalla,
			$solu = '<tr style="background-color: #c5d3df;"><td align="right" valig="top">';
			$a = false;
		} else { // joka toinen vaalealla taustalla.
			$solu = '<tr style="background-color: #f5faff;"><td align="right" valig="top">';
			$a = true;
		}

		// Luetaan viesti tiedostosta...
		$aika = date('d.m.Y', fgets($kommentit, 1024));
		$nimi = fgets($kommentit, 1024);
		$viesti = fgets($kommentit, 1024);
		if ( feof($kommentit) ) break; // Purkkakorjaus, älä välitä. :)

		// ...ja tulostetaan sivuun:
		echo $solu . '<td valign="top">' . $aika . '</td><td valign="top"><b>' . $nimi . '</b></td><td width="100%" valign="top">' . $viesti . '</b></td></tr>';

	} echo '</table>';
	fclose($kommentit);

// VIESTINJÄTTÖ"DIALOGI":
	echo '<br /><table cellpadding="3"><form action="index.php" method="post">';
	echo '<tr><td align="right">Nimi:</td><td><input type="text" id="nimi" name="nimi" /></td></tr>';
	echo '<tr><td align="right">Viesti:</td><td><input style="width: 400;" type="text" id="viesti" name="viesti" /></td></tr>';
	echo '<tr><td></td><td><input type="submit" id="omena" name="omena" value="Lähetä"></td></tr>';
	echo '</form></table></span><hr />';

// HAETAAN SCREENSHOTIT (samalla tavalla kuin rarit ja zipit ylempänä):
	foreach (glob("{*.jpg,*png,*gif}", GLOB_NOSORT + GLOB_BRACE) as $filu) {
		$filunimi[] = $filu;
		$muok[] = filectime($filu);
		$koko[] = ceil(filesize($filu) / 1000);
	}
	array_multisort($muok, $filunimi, $koko); // Järjestetään taas ajan mukaan,
	// ja tulostetaan:
	for ($i = count($filunimi) - 1; $i >= 0; $i--) {
		echo '<br /><table border="1" cellspacing="0" cellpadding="6"><tr><td><span>';
		if ( $koko[$i] < 30 ) echo '<img src="' . $filunimi[$i] . '" alt="' . $filunimi[$i] . '" />';
		else echo '[ISO KUVA]';
		echo '<br /><a href="' . $filunimi[$i] . '" title="Näytä filunimi yksinään">' . $filunimi[$i] . '</a> (' . $koko[$i] . ' kt, upittu ' . date('d.m.Y', $muok[$i]) . ')</span></tr></td></table><span><a href="#alku" title="Ylös niinku">Sivun alkuun</a></span><br /><br />';
	}

// Siinä se oli, kiitos. :)
?>

Puhveli [23.11.2005 18:39:55]

#

Upsis, oisi ollut tälle parempikin sijainti, nimittäin tuonne Hakemistot ja tiedostot- tai Kyselyt ja kommenttijärjestelmät-alueelle.

miiro [26.11.2005 20:01:50]

#

Hyviä avainsanoja.. :D

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta