Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Kommenttilista - PHP

T.M. [21.03.2003 23:13:34]

#

<html>

<style>
A {color:blue}
A:hover {color:red}
TD#ad A {text-decoration:none}
TD#text B#v1 {color: #3300FF; font-weight:normal} /*värit jokatoiselle kommentille*/
TD#text B#v2 {color: #FF0000; font-weight:normal} /*sama juttu..*/
TD#text B#a {color:black}
</style>

<?php


$salasana = "sala";



//laitetaan viestin tai adminin salasanan kirjotuskohta valmiiksi keskitetyksi
print"<body";
if($act != "admin"){
print" onload=\"document.formi.viesti.focus();\"";
}else{
	//jos ollaan kirjauduttu sisään, jolloin salasanakenttää ei näy
	if($_COOKIE[kom_admin] != $salasana){
		print" onload=\"document.formi.pass.focus();\"";
	}
}
print">";









//ip-osoitteen hakeminen, (bannaukseen tai muuhun sellaiseen)
$ip = $_SERVER["REMOTE_ADDR"];

//aika (kommenttien ajan tarkasteluun :) puretaan esim: $aika = date("j.n.Y - H:i:s", $osa[2]);
$aika = mktime();

$filu = file("kom.txt");
$max = count($filu)-1;







//tulostetaan kommentit jos ei olla admin osassa
if($act != "admin"){
	print"<TABLE border='0' cellspacing='0' cellpadding='0' style='font:10px verdana; color:black; border:1px solid black; padding-right:10px' width='220'>";
	print"<TR>";
	print"	<TD style='font:bold 14px/22px verdana; text-align:center; border-bottom:1px solid black'>:: Kommenttilista</TD>";
	print"</TR>";
	print"<TR>";
	print"	<TD style='padding-left:10px' id='text'><BR>";
	if($max > -1){
		for($u = $max; $u >= $max - 10; $u--){
			$osa = explode("|", $filu[$u]);
			if($osa[0] != ""){
				$s++;

				//asetetaan värit jokatoiselle kommentille :)
				if($s % 2 == 0){$v = "v1";}else{$v = "v2";}
				print"<b id='$v'><B id='a'>|$osa[0]|</B> $osa[1]</b><BR>";
			}
		}
	}else{
		print"- - Ei kommentteja! - -";
	}
	print"<FORM METHOD='POST' ACTION='$PHP_SELF?act=add' name='formi'>";
	print"<TABLE border='0' cellspacing='0' cellpadding='0' style='font:11px verdana; color:black'>";
	print"<TR>";
	print"	<TD>Nimi: </TD>";
	print"	<TD><INPUT TYPE='text' NAME='nimi' value='$_COOKIE[kom_nimi]' maxlength='10'></TD>";
	print"</TR>";
	print"<TR>";
	print"	<TD>Viesti: </TD>";
	print"	<TD><INPUT TYPE='text' NAME='viesti' value='$viesti' maxlength='200'></TD>";
	print"</TR>";
	print"<TR>";
	print"	<TD></TD>";
	print"	<TD><INPUT TYPE='submit' value='Lähetä'></TD>";
	print"</TR>";
	print"</TABLE>";
	print"</FORM>";

	if($act == "add"){
		//trimmataan kentät jottei voisi lähettää tyhjiä kommentteja
		$viesti = trim($viesti);
		$nimi = trim($nimi);


		//suojataan ettei peelot yllätä, ja kirjottele toisten nimillä heti perään...
		for($u = $max; $u >= $max - 10; $u--){
			$osa = explode("|", $filu[$u]);
			if($ip != $osa[3] && !strcasecmp($nimi, $osa[0])){$error = "Nimi on jo käytössä";}
		}

		//suojataan tyhjiltä viesteiltä
		if($viesti == ""){$error = "Kirjoita viestisi!";}
		if($nimi == ""){$error = "Kirjoita nimesi!";}

		if(!$error){
			//asetetaan keksi nimelle jota käytettiin kommentissa, (ei tarvitse aina kirjottaa nimeä uudelleen ;)
			setcookie("kom_nimi", $nimi, time()+600000, "/");
			$filu = fopen("kom.txt", "a");
			$rivi = "$nimi|$viesti|$aika|$ip|\n";

			//html:t pois...
			$rivi = htmlspecialchars($rivi);

			// " merkkien trimmaus jottei niistä tule \" merkkejä :)
			$rivi = stripslashes($rivi);
			fwrite($filu, $rivi);
			fclose($filu);
			header("location: kom-vw.php");
		}else{
			//tulostetaan errori jos errori on asetettu
			print"<CENTER>$error</CENTER><BR><BR>";
		}
	}
	print"	</TD>";
	print"</TR>";
	print"<TR>";
	print"	<TD align='right'>[ <A HREF='$PHP_SELF?act=admin'>Admin</A> ]<BR><BR></TD>";
	print"</TR>";
	print"</TABLE>";
}








//ollaan adminissa...
if($act == "admin"){
	//jos ollaan menty adminiin mutta salasana ei vastaa keksissä olevaa, tulostetaan kenttä jotta voidaan kirjautua sisään
	if($_COOKIE[kom_admin] != $salasana){
		print"<TABLE border='0' cellspacing='0' cellpadding='0' style='font:10px verdana; color:black; border:1px solid black; padding-right:10px' width='220'>";
		print"<TR>";
		print"	<TD style='font:bold 14px/22px verdana; text-align:center; border-bottom:1px solid black'>:: Admin</TD>";
		print"</TR>";
		print"<TR>";
		print"	<TD style='padding-left:10px'><BR>";
		print"<FORM METHOD='POST' ACTION='$PHP_SELF?act=admin' name='formi'>";
		print"<TABLE border='0' cellspacing='0' cellpadding='0' style='font:11px verdana; color:black'>";
		print"<TR>";
		print"	<TD>Pass: </TD>";
		print"	<TD><INPUT TYPE='password' NAME='pass' maxlength='18'></TD>";
		print"</TR>";
		print"<TR>";
		print"	<TD></TD>";
		print"	<TD><INPUT TYPE='submit' value='Sisään'></TD>";
		print"</TR>";
		print"</TABLE>";
		print"</FORM>";
		print"</TD>";
		print"</TR>";
		print"<TR>";
		print"	<TD align='right'>[ <A HREF='$PHP_SELF'>Takaisin</A> ]<BR><BR></TD>";
		print"</TR>";
		print"</TABLE>";
		/*
		jos salasana on oikea, asetetaan keksi, ja mennään uudelleen adminiin,
		jonka jälkeen tämä lauseke ei ole enää tosi, jolloin päästään adminiin
		*/
		if($pass == $salasana){
			setcookie("kom_admin", $salasana, time()+600000, "/");
			header("location: $PHP_SELF?act=admin");
		}
	}else{
		//tulostetaan adminiin kommentit
		print"<TABLE border='0' cellspacing='0' cellpadding='0' style='font:10px verdana; color:black; border:1px solid black; padding-right:10px' width='220'>";
		print"<TR>";
		print"	<TD style='font:bold 14px/22px verdana; text-align:center; border-bottom:1px solid black'>:: Admin</TD>";
		print"</TR>";
		print"<TR>";
		print"	<TD style='padding-left:10px' id='ad'><BR>";
		if($max > -1){
			for($u = $max; $u >= $max - 30; $u--){
				$osa = explode("|", $filu[$u]);
				if($osa[0] != ""){
					print"<A HREF='$PHP_SELF?act=del&id=$u' title='poista'><B>|$osa[0]|</B></A> $osa[1]<BR>";
				}
			}
		}else{
			print"- - Ei kommentteja! - -";
		}
		print"</TD>";
		print"</TR>";
		print"<TR>";
		print"	<TD align='right'><BR><BR>[ <A HREF='$PHP_SELF'>Listalle</A> | <A HREF='$PHP_SELF?act=ulos'>Kirjaudu ulos</A> ]<BR><BR></TD>";
		print"</TR>";
		print"</TABLE>";
	}
}








//jos painetaan poistolinkkiä...
if($act == "del" && $id != ""){
	$filu[$id] = "";
	$rivi = implode("", $filu);
	$filu = fopen("kom.txt", "w");
	flock($filu, 2);
	fwrite($filu, $rivi);
	flock($filu, 3);
	fclose($filu);
	header("location: $PHP_SELF?act=admin");
}






//jos kirjaudutaan ulos...
if($act == "ulos"){
	//poistetaan keksit, jolloin salasana ei vastaa enää oikeata
	setcookie("kom_admin", $salasana, time()-600000, "/");
	header("location: $PHP_SELF");
}

print"<A HREF='http://mbnet.fi/winuus' style='font:10px verdana'>Script by T.M.</A>";

?>

Gwaur [22.03.2003 17:43:26]

#

Miks tuolla on tommosia isojakin välejä tuolla koodissa?

T.M. [22.03.2003 17:44:00]

#

selkeyden takia! ;)

makeuu [05.10.2003 19:23:23]

#

niin, t.m on tehny hyvin kaikkien varalta! ;D

Clacier [10.08.2009 00:56:09]

#

O.o, ei toim ?

Vastaus

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

Tietoa sivustosta