Forum » Izdelava spletišč » [PHP] Novice
[PHP] Novice
bluefish ::
S PHP-jem nimam nekih konkretnih izkušenj in temu primerno tudi vprašanje.
Potreboval bi neko zelo preprosto skripto za vnos in prikaz novic. Prikaz bi zajemal le naslov, datum, besedilo in nič drugega. Prav tako bi izpisalo le zadnjih nekaj vnosov - recimo 4.
Novice bi se shranjevale v datoteko ali še raje v bazo.
Ogledal sem si že nekaj skript, ki so dostopne na netu, vendar so bodisi neustrezne za predelavo prikaza ali pa imajo preveč glomazen vmesnik za vnos.
Sicer imam že od prej dokaj dobre izkušnje s CuteNews, vendar bi potreboval nekaj še bolj enostavnega.
Kako se stvari lotiti?
S pomočjo nekega vodiča sem sestavil nekaj malega skupaj (baza ima polja id, title, content):
VNOS novice
PRIKAZ novic
Vse skupaj se zatakne pri prikazu večih novic, saj ne vem, kako bi ločil posamezne vnose med sabo. Nekaj sem se igral z br tagom, vendar neuspešno.
Prav tako ne vem, kako bi ob vnosu avtomatsko vpisal še datum in ga potem tudi prikazal.
Kakšna pomoč?
Potreboval bi neko zelo preprosto skripto za vnos in prikaz novic. Prikaz bi zajemal le naslov, datum, besedilo in nič drugega. Prav tako bi izpisalo le zadnjih nekaj vnosov - recimo 4.
Novice bi se shranjevale v datoteko ali še raje v bazo.
Ogledal sem si že nekaj skript, ki so dostopne na netu, vendar so bodisi neustrezne za predelavo prikaza ali pa imajo preveč glomazen vmesnik za vnos.
Sicer imam že od prej dokaj dobre izkušnje s CuteNews, vendar bi potreboval nekaj še bolj enostavnega.
Kako se stvari lotiti?
S pomočjo nekega vodiča sem sestavil nekaj malega skupaj (baza ima polja id, title, content):
VNOS novice
<?php error_reporting(E_ALL); if(!get_magic_quotes_gpc()) { $title = strval(mysql_escape_string($_POST['title'])); $content = strval(mysql_escape_string($_POST['content'])); } else { $title = strval($_POST['title']); $content = strval($_POST['content']); } require_once("data.php"); mysql_pconnect($host, $user, $password) or die("Failed to connect!"); mysql_select_db($database) or die("Failed to select!"); $sql = "INSERT INTO entry VALUES(NULL, '$title', '$content')"; mysql_query($sql) or die ("Failed to enter!"); print "Successful entry!"; ?>
PRIKAZ novic
<?php error_reporting(E_ALL); require_once("data.php"); mysql_pconnect($host, $user, $password) or die("Failed to connect!"); mysql_select_db($database) or die("Failed to select!"); $sql = "SELECT * FROM entry"; $query = mysql_query($sql) or die("Failed to fetch!"); if(mysql_num_rows($query) == 0) { print "No data!"; } while($row = mysql_fetch_assoc($query)): $title = stripslashes($row['title']); $content = stripslashes($row['content']); print $title; print "<br />"; print $content; endwhile; mysql_free_result($query); ?>
Vse skupaj se zatakne pri prikazu večih novic, saj ne vem, kako bi ločil posamezne vnose med sabo. Nekaj sem se igral z br tagom, vendar neuspešno.
Prav tako ne vem, kako bi ob vnosu avtomatsko vpisal še datum in ga potem tudi prikazal.
Kakšna pomoč?
- spremenil: bluefish ()
blewlelel ::
Izpisi so ubistvu ločeni v while zanki.. Verjetno misliš, da bi jih ločil videzno, lahko to preprosto narediš tudi s CSS ali pa kar s html npr.
To bi moralo med vsako novico naredit en presledek, naslov zgoraj, opis spodaj. Seveda pa je potrebno napisat ustrezen CSS, kjer se lahko še na boljše načine ločuje(Lahko ti tudi to spišem ampak ne vem kakšne so želje).
Pri vnosu moreš v bazi pri entiteti entry(v tvojem primeru) dodat še atribut npr. datum tipa DATE. V php pa uporabiš funkcijo date katero pretvoriš v sql date format (YYYY-MM-DD), ter ga potem ob izpisu pretvoriš v obliko ki ti ustreza.. Pretvoriš ga pa lahko z večimi funkcijami ena je npr. explode ali str_replace odvisno..
print('<div class="naslov">'.$title.'</div>'); print('<div class="vsebina">'.$content.'</div>'); print('<br />');
To bi moralo med vsako novico naredit en presledek, naslov zgoraj, opis spodaj. Seveda pa je potrebno napisat ustrezen CSS, kjer se lahko še na boljše načine ločuje(Lahko ti tudi to spišem ampak ne vem kakšne so želje).
Pri vnosu moreš v bazi pri entiteti entry(v tvojem primeru) dodat še atribut npr. datum tipa DATE. V php pa uporabiš funkcijo date katero pretvoriš v sql date format (YYYY-MM-DD), ter ga potem ob izpisu pretvoriš v obliko ki ti ustreza.. Pretvoriš ga pa lahko z večimi funkcijami ena je npr. explode ali str_replace odvisno..
bluefish ::
ok, tisto s css-jem mi je jasno.
Lahko malo več poveš o datumu? Sploh tale del:
Hvala za pomoč.
Lahko malo več poveš o datumu? Sploh tale del:
V php pa uporabiš funkcijo date katero pretvoriš v sql date format (YYYY-MM-DD), ter ga potem ob izpisu pretvoriš v obliko ki ti ustreza.. Pretvoriš ga pa lahko z večimi funkcijami ena je npr. explode ali str_replace odvisno..
Hvala za pomoč.
Atos ::
V bazi ustvari dodatno polje za datum, recimo 'created', tipa DATETIME. Potem spremeni SQL za vnos takole:
ob predpostavki, da je ravnokar ustvarjeno polje 'created' na zadnjem mestu.
Pri izpisu potem uporabiš date() funkcijo. Nekaj v takem smislu:
Prvi argument funckije določi obliko, drugi pa je unix timestamp. strtotime je funkcija, ki pretvori US angleški format zapisa datuma v unix timestamp, v tem primeru (unix timestamp je število pretečenih sekund od 1.1.1970 :) V tem primeru dobiš izpis nekako takole:
5.3.09 ob 1:45
EDIT: za drugačne izpise poglej manual za date funkcijo, kjer je zelo lepo razloženo tole.
$sql = "INSERT INTO entry VALUES(NULL, '$title', '$content', NOW())";
ob predpostavki, da je ravnokar ustvarjeno polje 'created' na zadnjem mestu.
Pri izpisu potem uporabiš date() funkcijo. Nekaj v takem smislu:
print date("j.n.y \o\b G:i", strtotime($row['created']));
Prvi argument funckije določi obliko, drugi pa je unix timestamp. strtotime je funkcija, ki pretvori US angleški format zapisa datuma v unix timestamp, v tem primeru (unix timestamp je število pretečenih sekund od 1.1.1970 :) V tem primeru dobiš izpis nekako takole:
5.3.09 ob 1:45
EDIT: za drugačne izpise poglej manual za date funkcijo, kjer je zelo lepo razloženo tole.
Zgodovina sprememb…
- spremenil: Atos ()
bluefish ::
ok, hvala, se bom jutri malo pomatral in poskusil.
edit: je možno brez večjih sprememb v kodi še narediti, da se iz baze izpiše le zadnjih nekaj x vnosov?
Kako pa je kaj trenutno z varnostjo?
edit: je možno brez večjih sprememb v kodi še narediti, da se iz baze izpiše le zadnjih nekaj x vnosov?
Kako pa je kaj trenutno z varnostjo?
Zgodovina sprememb…
- spremenil: bluefish ()
blewlelel ::
Ja se da, v SQL stavku dodaš LIMIT x.. Za pravilno postavitev in sintakso si poglej na uradni strani.. Kar se tiče varnosti se ne bi poglabljal ker vsaj iz mojih izkušen z varnostjo, se bi lahko tema zelo razširila...
bluefish ::
opeter ::
Kakšno bazo pa uporabljaš? Tekstovno ali pa kakšno SQL?
Hrabri mišek (od 2015 nova serija!) -> http://tinyurl.com/na7r54l
18. november 2011 - Umrl je Mark Hall, "oče" Hrabrega miška
RTVSLO: http://tinyurl.com/74r9n7j
18. november 2011 - Umrl je Mark Hall, "oče" Hrabrega miška
RTVSLO: http://tinyurl.com/74r9n7j
msarc1 ::
imam eno vprašanje in sicer na strani mi ne prikaže novic.. v html kodo dodam
in se ne zgodni nič.. no vsaj novice niso vidne :S prosim za pomoč
aja se to uporabljam pa CuteNews v1.4.6 by CutePHP Team
<?PHP "include("bla/bla/show_news.php");" ?>
in se ne zgodni nič.. no vsaj novice niso vidne :S prosim za pomoč
aja se to uporabljam pa CuteNews v1.4.6 by CutePHP Team
Zgodovina sprememb…
- spremenilo: msarc1 ()
msarc1 ::
ok tudi brez narekovajov ne deluje kaj pa pot a mora biti kaj http://www.pot.si/pot/show_news.php al je taka kot je uredu?
Zgodovina sprememb…
- spremenilo: msarc1 ()
msarc1 ::
ok. Kaj pa recimo končnica html ali php? se pravi krneki.html ali krnekih.php ma to kakšno vezo za novice?
SlimDeluxe ::
Nima nobene veze. A ti sploh izpiše kak warning? Kaj pa če daš: require("bla/bla/show_news.php");
msarc1 ::
ja tko je zdej ce je v .php delajo no mi vsaj javi tole You must enter name.go ( kaj zdej to pomeni?)
če dam pa v .html se pa ne zgodi nič
če dam pa v .html se pa ne zgodi nič
opeter ::
.html/.htm v ne bo delovalo. Lahko poskusiš mogočet edino .shtml
Hrabri mišek (od 2015 nova serija!) -> http://tinyurl.com/na7r54l
18. november 2011 - Umrl je Mark Hall, "oče" Hrabrega miška
RTVSLO: http://tinyurl.com/74r9n7j
18. november 2011 - Umrl je Mark Hall, "oče" Hrabrega miška
RTVSLO: http://tinyurl.com/74r9n7j
msarc1 ::
načeloma ima CuteNews precej dober manual. Si naredil tako, kot piše tam?
da naredil sem vse točno tako kot piše v manualu!
msarc1 ::
ne pa uporabu sem tut uno da ti sam zgenerira kodo katero potem vneseš v svojo spletno stran
bluefish ::
"Finally, go to www.yoursite.com/cutenews/index.php with you favorite browser and follow the instructions." - Ko preneseš fajle na server in preden includaš novice na stran.
Zgodovina sprememb…
- spremenil: bluefish ()
bluefish ::
morda je finta kje drugje na strani. Daj poskusi kodo vstaviti v en prazen html fajl in poglej, če novice prikazuje.
msarc1 ::
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <?PHP include("/home/marko/domains/ma-ro.si/public_html/test/novice/show_news.php"); ?> <body><?PHP require("/home/marko/domains/ma-ro.si/public_html/test/novice/show_news.php"); ?> <p> </p> <p> </p> <p> </p> <table width="200" border="0"> <tr> <td><p><a href="http://www.ma-ro.si/test/novice/example1.php">novice </a></p> <p> </p> <p> </p></td> <td> </td> <td> </td> </tr> </table> </body> </html>
tukaj je pa se koda od strani na kateri naj bi bile novice
bluefish ::
sodeč po hitrem pregledu kode imaš probleme pri navajanju lokacij.
Pri novicah bi bilo dovolj, da vneseš le novice/show_news.php kot pot do njih, če se celotna zadeva oz. stran nahaja v mapi test in novice v podmapi novice.
Prav tako tam, kjer imaš na strani eno povezavo. Če je datoteka example1.php v mapi novice in je stran v mapi test, potem je vsebina href elementa le novice/example1.php
si rešil zadevo?
Pri novicah bi bilo dovolj, da vneseš le novice/show_news.php kot pot do njih, če se celotna zadeva oz. stran nahaja v mapi test in novice v podmapi novice.
Prav tako tam, kjer imaš na strani eno povezavo. Če je datoteka example1.php v mapi novice in je stran v mapi test, potem je vsebina href elementa le novice/example1.php
si rešil zadevo?
Zgodovina sprememb…
- spremenil: bluefish ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | php - galerija slikOddelek: Izdelava spletišč | 2037 (1765) | t3hn0 |
» | xCollect - program za katalogacijo filmov, serij, iger ter knjigOddelek: Programska oprema | 2504 (2016) | krho |
» | Login scriptOddelek: Programiranje | 1100 (1034) | Mercier |
» | ASP in vnosni podatki v MDBOddelek: Izdelava spletišč | 1006 (917) | swalow |