Kyseessä siis normaali uutis skripti, tietokantana mysql. Tätä skriptiä on erittäin helppo laajentaa uusiin ulottuvuuksiin. Esim. tehdä ankkurit tai vaikka hakutoiminnot. Mutta niitä en ala tähän nyt tekemään. Teen vain tulostuksen ja lisäyksen.
En tuota sitten jaksanut testata. Jos ei toimi niin sitten ei toimi.
Uutiset.php tulostaa uutiset. Sillä myös saa ne kirjoitettua. Install.php asentaa mysql kannan. Settings.php:ssä on mysql kantojen asetukset. Muuttakaa sitä ensin, sitten upittakaa ja voela pitäisi toimia.
uutiset.php
<?php // uutiset.php // Copyright 2002 Internetin vapaa kansa // Muokkaaminen sallittua ja suositeltavaa require("settings.php"); // Yhdistäminen mysql kantaan suoritettu, sitten itse asiaan if(isset($submit)) { header("Location: $PHP_SELF"); $aika = time(); mysql_query("INSERT INTO uutiset (sender,uutinen,aika,otsikko) VALUES ('$sender','$uutinen','$aika','$otsikko')") or die("Lisäys ei onnistunut!". mysql_error()); } echo("<a href=\"$PHP_SELF?luo=uutinen\">Uusi uutinen</a><br>"); $query = mysql_query("select * from uutiset order by id desc") // valitaan taulu ja tulostetaan uutiset uusimmat ensin while($uutinen = mysql_fetch_array($query)) { $time = date("d.m.Y @ H:i:s",$uutinen[aika]); // tulostetaan aika echo <<<EOT <table cellpadding="0" cellspacing="0" border="0" bgcolor="#000000"><tr><td bgcolor="#ffffff"> $uutinen[otsikko] <small>Lähettäjä: $uutinen[sender] Aika: $time</small><br> $uutinen[uutinen] </td></tr></table> EOT; } if($luo) { echo <<<EOT <center> <FORM ACTION="$PHP_SELF" METHOD="POST"> Lähettäjä: <INPUT TYPE=text NAME="sender"><br> Uutisen otsikko: <INPUT TYPE=TEXT NAME="otsikko" maxlength="50"><br> Uutinen:<br><textarea rows=12 cols=60 NAME="uutinen"></textarea><br> <INPUT TYPE="SUBMIT" VALUE="Lähetä"><br></FORM></center> EOT; } mysql_close($yhteys); ?>
install.php
<?php // install.php // Copyright 2002 Internetin vapaa kansa // Muokkaaminen sallittua ja suositeltavaa require("settings.php"); CREATE TABLE `uutiset` ( `aika` varchar(25) NOT NULL default '', `sender` varchar(150) NOT NULL default '', `otsikko` varchar(50) NOT NULL default '', `uutinen` text NOT NULL, `id` int(5) NOT NULL auto_increment, PRIMARY KEY (`id`) ) TYPE=MyISAM; ?>
settings.php
<?php // settings.php // Copyright 2002 Internetin vapaa kansa // Muokkaaminen sallittua ja suositeltavaa // näitä sinun on pakko muokata! $sqlhost = "localhost"; // mysql kannan osoite $sqluser = ""; // mysql tunnus $sqlpasswd = ""; // mysql salasana $sqltable = ""; // mysql taulu $yhteys = mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("Yhteyttä ei voitu muodostaa hostiin $sqlhost"); mysql_select_db("$sqltable") or die("Tietokantaa $sqltable ei löydy!"); ?>
ohjelmointiputkan koodin näyttö kusee hiukan.. kannattaisi ennemmin heittää vaikka mysql kantaan koodit, ja sitten tulostaa ne käyttäen show_source(); funktiota. silloin ei tulisi esim tämmöistä bugia: \" --> ""
Ei toimi.
Tein ohjeiden mukaan, mutta kaikki sivut näyttävät pelkkää tyhjää.
aika surkea koodi
Parse error: parse error, unexpected T_WHILE in /home/jwjoniy/public_html/uutiset2/uutiset.php on line 21
Tollasta vierhettä pukkaa.
<?php // uutiset.php // Copyright 2002 Internetin vapaa kansa // Muokkaaminen sallittua ja suositeltavaa require("settings.php"); // Yhdistäminen mysql kantaan suoritettu, sitten itse asiaan if(isset($submit)) { header("Location: $PHP_SELF"); $aika = time(); mysql_query("INSERT INTO uutiset (sender,uutinen,aika,otsikko) VALUES ('$sender','$uutinen','$aika','$otsikko')") or die("Lisäys ei onnistunut!". mysql_error()); } echo("<a href=\"$PHP_SELF?luo=uutinen\">Uusi uutinen</a><br>"); $query = mysql_query("select * from uutiset order by id desc") // valitaan taulu ja tulostetaan uutiset uusimmat ensin while($uutinen = mysql_fetch_array($query)) { $time = date("d.m.Y @ H:i:s",$uutinen[aika]); // tulostetaan aika echo <<<EOT <table cellpadding="0" cellspacing="0" border="0" bgcolor="#000000"><tr><td bgcolor="#ffffff"> $uutinen[otsikko] <small>Lähettäjä: $uutinen[sender] Aika: $time</small><br> $uutinen[uutinen] </td></tr></table> EOT;} if($luo) { echo <<<EOT <center> <FORM ACTION="$PHP_SELF" METHOD="POST"> Lähettäjä: <INPUT TYPE=text NAME="sender"><br> Uutisen otsikko: <INPUT TYPE=TEXT NAME="otsikko" maxlength="50"><br> Uutinen:<br><textarea rows=12 cols=60 NAME="uutinen"></textarea><br> <INPUT TYPE="SUBMIT" VALUE="Lähetä"><br></FORM></center> EOT; } mysql_close($yhteys); ?>
Nuo echo <<<EOT
Voisi korvata koodissa merkillä yksinkertaisella lainausmerkillä. Eli sijoittaa tuon html:n yksinkertaisten lainausmerkkien sisäpuolelle.
Lisäksi koodista saisi varmasti helpommin luettavan jakamalla tuon pariksi funktioksi. Toiminee kuitenkin "perusteina" uutisten tekoon näinkin.
Aihe on jo aika vanha, joten et voi enää vastata siihen.