[ Zoran Rašković @ 08.07.2002. 03:48 ] @
Danas cemo u maloj skoli php-ja napraviti jednostavan news system ![]() Naravno, sve vesti bice skladistene u mysql bazi, nazovimo je db_news (logicno, zar ne). Evo mysql strukturne sheme za vasu bazu podataka: Code: CREATE TABLE db_news ( id int(10) NOT NULL auto_increment, text blob NOT NULL, datum timestamp(14) NOT NULL, title varchar(100) NOT NULL default '', PRIMARY KEY (id) ) ENGINE=MyISAM; Sada, kada imamo bazu, uradicemo news skripticu. News system nam se sastoji iz dva dela: iz fajla index.php gde pregledamo sve vesti i iz admin.php gde dodajemo i brisemo vesti. Pozeljno bi bilo fajl admin.php zastititi preko nekog login systema ili jednostavno staviti admin.php u zaseban dir pa onda uraditi .htaccess za taj dir. Sve to u cilju da bi ste samo vi mogli da dodajete i brisete vesti i niko vise. Prvo cemo uraditi admin.php. U ovom fajlu potrebno je izlistati sve vesti i pored svake vesti dodati link "Delete" kako biste mogli da obrisete neku vest koja je zastarela ili iz nekog drugog razloga. Code: <? //admin.php include "db.php"; //display all the news $result=mysql_query("select count(id) from db_news", $db); while ($myrow=mysql_fetch_row($result)) { echo " (<b>$myrow[0]</B> posts in the news)<p>"; } echo "<TABLE border='1' bordercolor='#E2E2E2' cellspacing='0' cellpadding='1' width='100%'><tr bgcolor='#C0C0C0' bordercolor='1'><B><td><B>Date</B></td><td><B>News</B></td></B></tr>"; $result=mysql_query("select * from db_news order by datum desc", $db) or die (mysql_error()); while ($myrow=mysql_fetch_row($result)) { $txt=nl2br($myrow[1]); echo " <TR bordercolor='1'>"; make_date1(); echo " <TD>$date1</TD> <TD>$myrow[3] - $txt [<a href='del.php?number=$myrow[0]'>Delete it!</a>]<p></td> </TR> "; } echo "</table>"; echo "<CENTER><form action='post_news.php' method='post'> Title: <INPUT TYPE='text' NAME='title'><p> News: <TEXTAREA NAME='news' ROWS='10' COLS=100></TEXTAREA><p> <CENTER><INPUT TYPE='submit' value='Post news!'></CENTER> </form>"; ?> Sada na red dolazi fajl post_news.php koji sluzi da nam proveri podatke i potom unese novu vestu bazu podataka: Code: <? //post_news.php include "inc.php"; $news=htmlspecialchars($news); $title=htmlspecialchars($title); $result=mysql_query("insert db_news set text='$news', title='$title'", $db); echo "<CENTER><p>News posted... I am taking you back...<meta http-equiv='refresh' content='2; url=admin.php'></CENTER>"; ?> Dakle, za sada imamo admin.php i post_news.php. Red je da uradimo i stranicu za brisanje vesti -- del.php: Code: <? //del.php include "inc.php"; $result=mysql_query("delete from db_news where id='$number'", $db); echo "<CENTER>News entry deleted! I am taking you back...<meta http-equiv='refresh' content='2; url=admin.php'></CENTER>"; ?> Eto sada imamo sva tri fajla koja sacinjavaju administratorski deo nase news skripte, dakle admin.php, post_news.php kao i del.php. Kao sto znamo, potrebno je jos samo da odradimo i index.php -- stranica na kojoj ce sve nase vesti biti izlistane i koju ce drugi ljudi moci da vide bez problema. To nece biti tesko s obzirom da smo vec izlistali vesti u fajlu admin.php. Dakle: Code: <? //index.php include "inc.php"; $result=mysql_query("select * from db_news order by datum desc", $db) or mysql_error(); while ($myrow=mysql_fetch_row($result)) { make_date1(); $txt=nl2br($myrow[1]); echo "<B>$myrow[3]</B> [$date1]<br><br> $txt<hr>"; } ?> Obrattite paznju da se svo vreme u igru ubacuje i fajl inc.php koji se non stop includuje. U fajl inc.php trebate da stavite deklaraciju vase baze podatake i povezivanje na istu. Takodje u fajlu inc.php nalazi se i funkcija za lepo formatiranje datuma od mysql funkcije timestamp(14). inc.php bi izlgedao npr: Code: <? define("HOST", "vas_hostname"); define("USER", "vas_username_ovde"); define("PASSWORD", "vasa_sifra_ovde"); define("DATABASE", "ime_baze"); //connecting to the database $db=mysql_connect(HOST, USER, PASSWORD); mysql_select_db(DATABASE, $db); function make_date1() { global $d1, $year1, $month1, $day1, $hour1, $min1, $sec1, $date1, $myrow; $d1=$myrow[2]; $year1=substr($d1, 0, 4); $month1=substr($d1, 4, 2); $day1=substr($d1, 6, 2); $hour1=substr($d1, 8, 2); $min1=substr($d1, 10, 2); $sec1=substr($d1, 12, 2); return $date1="$month1-$day1-$year1 @ $hour1:$min1"; } ?> E to bi bilo to ![]() Ziveli! |