Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Pulinaboxi

chiqu [05.03.2005 15:16:09]

#

Pulinaboxi, eli tollane mini kommentointi, jossa uusin viesti tulee ylimmäksi. Helpohkosti muokattavissa oleva, joten kokoa ja tekstinpituukisa voi rajoittaa oman maun mukaan.

Mun eka tänne lisäämä, voi olla hieman buginen ynm, mutta toivonkin, että valitatte jokaisesta jutusta, niin saadan hienoon kuntoon.

Itsellä on tuossa vielä pieni admin osio, siellä voidaan poistaa rivejä (eli viestejä), mutta ei riittänyt minulle 4 listausta siihen. Jokainen varmaan osannee sen kyllä tehdä itsekin, varsinkin kun koodivinkeissä on se aivan loistava tekstitiedostojen käsittely pätkä.

Ja muista luoda tiedosto boxi.txt, ja antaa kirjoitusoikeudet !

Demo:
http://koti.mbnet.fi/ztomiz/boxi.php

MUOKKAUSTA:
Lisäänpä tähän tuon kellonajan joka jäi tästä versiosta puuttumaan. (löytyy demosta)

boxi.php

		<html>
		<head><LINK HREF="style.css" TYPE="text/css" REL="stylesheet"></head>
		<body>
			<div class="box">
			 <b>Otsikkosi .. </b>
			 <hr size="1" width="95%">
				<font size="1" face="verdana">
		<form method="post" action="boxi2.php">

		<input type="text" name="nimi" value="Nimimerkki" maxlength="12" size="12" style="font-size:8pt">
		<input type="text" name="viesti" value="Viesti" maxlength="35" size="35" style="font-size:8pt">
		<input type="submit" name="Lähetä" value="lähetä">
		<font color="#09152F">
<?php
// Tästä alkaa PHP, eli itse koodi. Sisennykset ei ole mun erikoisalaa, mutta
// jos jollain on ideoita sisennyksen harjoittelemiseen opetukseen, sanokaa ihmeessä ;P
// Copyrights: Suhkruvaba / chiqu (sama mies)

echo '<br><br><hr size="1" width="95%">'; // Otsikon jälkeen vähän väliä

	// Tulostetaan infoa
	$t_filu = file("boxi.txt");
	$viestien_maara = count($t_filu);
	echo "Yhteensä viestejä $viestien_maara || Uusin viesti ylimpänä || Näytetään 10 uusinta<br><br>";

			$virhe = $_COOKIE["virhe"];

			echo '<font color="#780011"><b>';
			echo "$virhe </b>";
			if ($virhe != ""){ 					// Jos virhe ei ole tyhjä, parannetaan rivitys
				echo "<br><br>";
			}




				// Poistetaan se virhe cookie, ettei se jää kummittelemaan
				setcookie("virhe", "");

						// Luetaan viestit, uusin ylimmäks..
						foreach (array_slice(array_reverse(file('boxi.txt')), 0, 10) as $a) { // Otetaan mukaan tiedoston lopusta 10 vikaa
							$jaettu = explode("|", $a);
							echo "<center>";					   // Pieniä tyylijuttuja
							echo '<div class="keskustelu">';
							echo '<font color="#102432">';       // Kellolle fontin väri
							echo "$jaettu[0] ";					// Luetaan kello ja jätetään välilyönti
							echo '<font color="#102452">';     // Nimimerkille fontin väri
							echo "$jaettu[1] ";				  // Luetaan nimimerkki
							echo '<font color="#102482">';   // Viestille fontin väri
							echo "$jaettu[2]";				// Luetaan viesti
							echo "</div>";				   // Lopetetaan Divi
						}





?>

</form>




</div>
</body>
</html>

boxi2.php

<html><head><LINK HREF="style.css" TYPE="text/css" REL="stylesheet"></head><body>

<?php
// Katotaan et kaikki on kunnossa
// Eli tyhjät pois jne
// Tätä kannattaa muokata, jos ei halua jotain kirosanoja tai vastaavaa
// Mm.. kirosanafiltteri, njäh ei oo itellä tarvetta kyl

			if ($nimi == " ") { 						     // Jos Nimimerkki boxi on jätetty tyhjäksi
		header("Location: boxi.php"); 		   				    // Ohjataan takaisin..
		setcookie("virhe", "Tyhjiä nimimerkkejä ei tueta.");   // Ja luodaan cookie, virheen tunnistamiseksi
		}
					elseif ($viesti == " ") { 						  // Jos Viesti boxi on jätetty tyhjäksi
				header("Location: boxi.php"); 						 // Ohjataan takaisin..
				setcookie("virhe", "Tyhjiä viestejä ei tueta."); 	// Ja luodaan cookie, virheen tunnistamiseksi
				}
						// Tätä ei ole pakko käyttää, ota pois jos ei kiinnosta, mutta minulle anakin luo mielenrauhaa
						// Eli, koska siinä on vakiona se "Nimimerkki", selaiselta nickiltä, tulee todennäköisesti
						// vain spammia, jota me emme halua. Ja sama homma Viestin kanssa..

						elseif ($nimi == "Nimimerkki") { 							  // JOS Nimimerkki = "Nimimerkki"
					header("Location: boxi.php");        							 // Ohjataan takaisin..
					setcookie("virhe", "Unohditko täyttää jommankumman kentän ?");  // Ja luodaan taas se cookie..
					}
							elseif ($viesti == "Viesti") { 								  // JOS Viesti = "Viesti"
						header("Location: boxi.php");								     // Ohjataan takaisin
						setcookie("virhe", "Unohditko täyttää jommankumman kentän ?");  // Ja luodaan cookie..
						}

else { // Jos siis emme löytäneet seuraavia virheitä, jatkamme..
// Tässä vaiheessa otetaan kellonaika ylös
$aika = date("H:i:s");
// Kirjoitetaan viesti
$tt = fopen("boxi.txt", "a"); 			  // Avataan boxi.txt kirjoitustilassa "a"
$nimi = htmlspecialchars($nimi); 		 // HTML-tagit kieltoon, varmuudeksi
$viesti = htmlspecialchars($viesti); 	// HTML-tagit kieltoon, varmuudeksi
fwrite($tt, "::$aika:: [$nimi]:|$viesti\n");     // Kirjoitetaan muodossa "::Aika:: [Nimimerkki]:| Viesti"
									  // Saa muuttaa, mutta kannattaa muistaa, että boxi.php:ssä
									 // explodetaan nimimerkki ja viesti erilleen "|" merkin avulla
fclose($tt);						// Suljetaan tiedosto


header("Location: boxi.php");     // Ja lähdetään kotiinpäin..
}
?>

</body>
</html>

style.css

// Helppo muokata mieleisekseen..

// Koko boxi
.box {
border: solid 1px #1A2D01;
padding: 5px;
width: 50%;
text-align: center;
}
// Jokaisen viestin määrittely
.keskustelu {
border-left: 1px solid;
border-right: 1px solid;
border-top: 1px solid;
border-bottom: 1px solid;
border-color: #1A2D01;
text-align: left;
padding: 3px;
width: 302px;
margin: 1px 1px 1px 1px;
}

T.M. [07.03.2005 14:17:18]

#

Joo-o, koodia vois VÄHÄN siistiä.

chiqu [09.03.2005 17:24:26]

#

Liikaa kommentteja :O ?

Koodia ainakin sen verran niukasti, että ei siinä nyt hirveästi ole muokkaamista.

Vastaus

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

Tietoa sivustosta