Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: PHP: Uutis- ja kommentointijärjestelmä tietokannalla

Rocceri [15.06.2009 15:47:03]

#

Tämä on ensimmäinen koodivinkkini, niin empä tiedä mitä tähän laittaisin.
No, kuitenkin sanon, että koodi toimii heti, kun täyttää tiedot settings.php tiedostoon.
Ulkoasua saa ihan vapaasti siistiä ja koodia muutella, mutta ei saa väittää omaksi tekeleeksi. ;)

uutiset.php

<html>
	<head>
		<title>Uutisjärjestelmä by Rocceri</title>
	</head>
	<body>
		<?php
		include("settings.php");
		$y = mysql_connect("$dbserver", "$dbuser", "$dbpw");
		mysql_select_db("$db");


		$uutisetid = $_GET["kommentoi"];

		//Kysellään kommentteja
		$comment = "SELECT * FROM comments WHERE uutiset_id = '$uutisetid' ORDER BY aika DESC LIMIT 10";
		$comments = mysql_query($comment) or die(mysql_error());

		//Luodaan taulut tiedoille
		mysql_query("CREATE TABLE uutiset(
		  id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
		  lahettaja TEXT,
		  aika INT,
		  viesti TEXT,
		  otsikko TEXT
		)");

		mysql_query("CREATE TABLE comments(
		  id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
		  uutiset_id INT,
		  lahettaja TEXT,
		  aika INT,
		  viesti TEXT
		)");



		$kysely = "
		SELECT
		 *
		FROM
		 uutiset
		ORDER BY
		 aika DESC
		LIMIT
		 10";
		$haku = mysql_query($kysely);

		//Tulostetaan
		echo "<center><h1>Uutiset</h1><a href=\"uusiuutinen.php\">Uusi uutinen</a><br></center>";

		for ($i = 0; $i < mysql_num_rows($haku); $i++) {
		$lahettaja = mysql_result($haku, $i, "lahettaja");
		$aika = mysql_result($haku, $i, "aika");
		$aikaa = date("d.m.Y H:i", $aika);
		$viesti = mysql_result($haku, $i, "viesti");
		$otsikko = mysql_result($haku, $i, "otsikko");
		$id = mysql_result($haku, $i, "id");
		echo "<table border=\"1\" width=\"500\" align=\"center\" bgcolor=\"white\"><tr><td><b>$otsikko</div></b></td></tr>";
		echo "<tr><td>$viesti<br><br></td></tr>";
		echo "<tr><td><div style=\"float: left;\">- $lahettaja | $aikaa</div><div style=\"float: right\">";

		if ($_GET["kommentoi"]) $linkki = "?";
		else $linkki = "?kommentoi=$id";
		echo "<a href=\"$linkki\">Kommentoi</a>";


		echo "</div></td></tr>";
		if ($_GET["kommentoi"] == "$id") {
		$numrows = mysql_num_rows($comments);

		if ($numrows !== 0) {
		echo "</table><br><center><h1>Kommentit</h1></center>";
		for ($i = 0; $i < mysql_num_rows($comments); $i++) {
		$kom1 = mysql_result($comments, $i, "lahettaja");
		$kom2 = mysql_result($comments, $i, "aika");
		$kom3 = mysql_result($comments, $i, "viesti");
		$kom4 = date("d.m.Y H:i", $kom2);
		echo "<br>";
		echo "<table align=\"center\" width=\"500\" bgcolor=\"white\" border=\"1\"><tr><td>$kom1 [$kom4]</td></tr><tr><td>$kom3</td></tr></table>";
		}} else echo "";

		echo "<br><table align=\"center\" width=\"500\" bgcolor=\"white\" border=\"1\"><br><tr><td><fieldset><legend>Uusi kommentti</legend>
		<form action=\"com.php?id=$id\" method=\"post\"><center><b>Nimi:</b><br><input type=\"name\" name=\"nimi\"><br>
		<br><b>Kommentti:</b><br><textarea name=\"viesti\" cols=\"50\" rows=\"7\"></textarea><br><br>
		<input type=\"submit\" value=\"Kommentoi\"></center></form></td></tr></fieldset>";
		die();
		}
		echo "</table><br>";
		}

		mysql_close($y);
		?>
	</body>
</html>

uusiuutinen.php

		<?php
		//Muodostetaan yhteys
		include("settings.php");
		$y = mysql_connect("$dbserver", "$dbuser", "$dbpw");
		mysql_select_db("$db");

		//Haetaan tiedot lomakkeesta
		$pw = "$pw";
		$pwc = $_POST["salasana"];
		$viesti = $_POST["viesti"];
		$otsikko = $_POST["otsikko"];
		$lahettaja = $_POST["lahettaja"];

		//Tarkistetaan vastaavatko salasanat toisiaan
		if($pwc == $pw) {
		//Tarkistetaan ettei mikään kenttä ole tyhjä
		 if (!empty($viesti)) {
		  if (!empty($otsikko)) {
		   if (!empty($lahettaja)) {

			//Otetaan aika talteen
			$aika = time();
			//Luodaan kysely
			$ky = "INSERT INTO uutiset (lahettaja, aika, otsikko, viesti) VALUES ('$lahettaja', '$aika', '$otsikko', '$viesti')";
			//Suoritetaan ja ohjataan takaisin
			$ha = mysql_query($ky) or die(mysql_error());
			header("Location: uutiset.php");

		   }
		  }
		 }
		}
		//Suljetaan yhteys
		mysql_close($y);
		?>
<html>
	<head>
		<title>Uutisjärjestelmä by Rocceri</title>
	</head>
	<body>
		<table align="center">
			<form action="#" method="POST">
				<div style="float: left">Nimesi:</div>
				<div style="padding-left: 21%">Otsikko:</div>
				<input type="name" name="lahettaja">
				<input type="name" name="otsikko"><br><br>
				Sisältö:<br>
				<textarea name="viesti" cols="80" rows="10"></textarea><br><br>
				Salasana:<br>
				<input type="passoword" name="salasana">
				<input type="submit" value="Valmis">
			</form>
		</table>
	</body>
</html>

com.php

<?php
//Otetaan tiedot muuttujiin lomekkeesta
$lahettaja = $_POST["nimi"];
$aika = time();
$viesti = $_POST["viesti"];
$alueid = $_GET["id"];

//Tarkistetaan ettei mikään tieto ole tyhjä
if(!empty($lahettaja)) {
 if(!empty($viesti)) {

  include("settings.php");
  //Sitten vasta otetaan yhteys tietokantaan
  $y = mysql_connect("$dbserver", "$dbuser", "$dbpw");
  mysql_select_db("$db");

  //Muodostetaan kysely kirjoittamista varten
  $ky = "
  INSERT INTO comments(uutiset_id, lahettaja, aika, viesti) VALUES('$alueid', '$lahettaja', '$aika', '$viesti')";
  $ha = mysql_query($ky);
  //Suljetaan yhteys ja siirretään takaisin.
  mysql_close($y);
  header("Location: uutiset.php?kommentoi=$alueid");
 }
}
?>

settings.php

<?php
//Tietokantaserveri
$dbserver = "localhost";
//Käyttäjä
$dbuser = "root";
//Salasana
$dbpw = "";
//Tietokannan nimi
$db = "test";
//Uutisen luontiin salasana
$pw = "salasana";
?>

Vastaus

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

Tietoa sivustosta