PDA

View Full Version : [PHP] Semplice Tutorial per realizzare Blog


FabioD77
29-09-2004, 12:07
Ciao Ragazzi,
sto impazzendo per trovare un tutorial semplice per realizzare un blog.

Ho voglia di imparare meglio questo linguaggio ed ho l'esigenza di questo blog.

Ho provato con questo (http://www.itportal.it/developer/progweb/php/blogging_php/pagina2.asp) ma non è fatto per niente bene.

Avete qualche link?

Grazie
Fabio

maxnaldo
29-09-2004, 16:31
hai provato su hotscripts nella sezione PHP ?

http://www.hotscripts.com/PHP/Scripts_and_Programs/index.html

ci sono diversi scripts per blogs, magari trovi quello che fa per te

Hal2001
29-09-2004, 16:35
Scusate ma il php con i blog che ha a che vedere? :confused:

Nel senso che vorrebbe realizzare un blog appunto utilizzando quel linguaggio? se si che vantaggi ha rispetto ad un composer che ti permette di inserire il contenuto, magari modificando qualche tag html?

Grazie

maxnaldo
29-09-2004, 16:52
se intendi un Blog mantenuto e modificato da una solo persona proprietaria del server su cui il blog risiede allora non hai alcun bisogno di usare scripts lato server. Ti basta appunto scriverlo in html (statico) e mantenere la pagina aggiornata.

In questo caso l'autore del Blog è anche l'unico che scrive. I Visitatori potranno solo leggerne il contenuto.

ma un Blog in cui si possano lasciare commenti, aggiungere news, postare un po' come si fa in un forum è un'altra cosa.

in quel caso tutti gli utenti che leggono possono anche "scrivere", lasciare i loro commenti o altro...

però a questo punto non può essere solo "HTML" bisogna che ci sia un motore dietro a tutto quanto e che gestisca tutti i dati.

il PHP unito a MYSQL diventa un potente "motore" per qualunque portale o applicazione WEB tu abbia intenzione di costruire.

Hal2001
29-09-2004, 16:56
Sei stato chiarissimo :)

maxnaldo
29-09-2004, 16:59
e comunque nulla ti vieta di installare un motore in PHP per gestire il tuo Blog di sola "consultazione"

potrai modificarne i contenuti, aggiungere post, e altro tramite un pannello di Amministrazione direttamente online a cui accederai con un Utente e Password.

senza più toccare una sola pagina HTML !

:D

(in effetti il Blog sarebbe nato proprio come "Diario di bordo" di sola consultazione per chi visita il tuo sito, poi si sono evoluti diventando molto simili a "guestbook" e "forum")

FabioD77
29-09-2004, 18:48
Grazie per la risposta.
Di script se ne trovano anche di carini. Ma cercavo un tutorial.

Essendo agli inizi della programmazione in php vorrei crearne uno io. Molto semplice.

- Commenti agli "articoli"
- Ogni articolo deve avere la data e l'autore
- Tutto con MySQL, visto che col testo mi sembra più complicato.

In due giorni ho fatto l'inserimento degli articoli e uno script molto grezzo che mi permette di consultare.

Per ora non sto curando per niente la grafica (html e css).

Il primo problema è la data. Il campo del DB è timestamp, ma non ho capito dove sbaglio. Domani mattina do un'occhio allo script.

Una cosa che ho trascurato ma non ho idea di come fare sono i commenti. Li metto su una tabella diversa giusto?

Ciao
Fabio

ps. non mi aspettavo di ricevere risposte! :p

EDIT: scusa maxnaldo, quel link che mi hai passato è da panico!!! :eek:

maxnaldo
30-09-2004, 09:49
beh, si...in teoria i commenti degli utenti a un determinato articolo vanno messi su una tabella a parte.

io ti consiglio di usare un campo della tabella articoli come:

ID_ARTICOLO bigint(20) unsigned NOT NULL auto_increment

questo campo lo metti come chiave primaria e poi lo usi nell'inserimento dei commenti come "riferimento" all'articolo.

tutti i commenti ad un determinato articolo avranno lo stesso "ID_ARTICOLO" da qualche parte nella tabella.

per le date di tipo TIMESTAMP considera che il Mysql le tratta come semplici Numeri come in effetti sono.

il timestamp è un numero che indica i secondi trascorsi da una certa data in poi.

la funzione time() ti restituisce il timestamp di oggi

con il timestamp si possono effettuare calcoli sulle date in maniera semplice, se ad esempio vuoi vedere tutti gli articoli di un determinato giorno ti basterà costruire due timestamp:
il primo riferito all'inizio della giornata es: 15/09/2004-00:00:00
il secondo riferito al termine della giornata es: 15/09/2004-23:59:59

poi nella select dirai :

"SELECT * FROM TABELLA WHERE CAMPODATA>=$inizio AND CAMPODATA<=$fine"

poi puoi usare la funzione SQL : UNIX_TIMESTAMP() per includere nelle query il timestamp attuale del server:

insomma con il timestamp si possono facilmente fare calcoli sulle date, somme, differenze, ecc...ecc...

l'unico problema è che poi lo devi convertire in una data "stampabile" ad esempio:

print(ts2string1(time()));

che visualizzerà:

30 Settembre 2004 - 10:39:34

oppure:

print(ts2string2(time()));

che visualizzerà:

30/09/2004 - 10:39:34


function ts2string1($tdata)
{
$datearray = getdate($tdata);
$stringadata=$datearray['mday']." ".nomemese($datearray['mon'])." ".$datearray['year']." - ";
if(strlen($datearray['hours'])==1)
$stringadata.="0".$datearray['hours'].":";
else
$stringadata.=$datearray['hours'].":";
if(strlen($datearray['minutes'])==1)
$stringadata.="0".$datearray['minutes'].":";
else
$stringadata.=$datearray['minutes'].":";
if(strlen($datearray['seconds'])==1)
$stringadata.="0".$datearray['seconds'];
else
$stringadata.=$datearray['seconds'];
return $stringadata;
}

function ts2string2($tdata)
{
$datearray = getdate($tdata);
$stringadata="";
if(strlen($datearray['mday'])==1)
$stringadata.="0".$datearray['mday']."/";
else
$stringadata.=$datearray['mday']."/";
if(strlen($datearray['mon'])==1)
$stringadata.="0".$datearray['mon']."/";
else
$stringadata.=$datearray['mon']."/";
$stringadata.=$datearray['year']."-";
if(strlen($datearray['hours'])==1)
$stringadata.="0".$datearray['hours'].":";
else
$stringadata.=$datearray['hours'].":";
if(strlen($datearray['minutes'])==1)
$stringadata.="0".$datearray['minutes'].":";
else
$stringadata.=$datearray['minutes'].":";
if(strlen($datearray['seconds'])==1)
$stringadata.="0".$datearray['seconds'];
else
$stringadata.=$datearray['seconds'];
return $stringadata;
}


function nomemese($nummese)
{
switch($nummese)
{
case 1:
$nomemese="Gennaio";
break;
case 2:
$nomemese="Febbraio";
break;
case 3:
$nomemese="Marzo";
break;
case 4:
$nomemese="Aprile";
break;
case 5:
$nomemese="Maggio";
break;
case 6:
$nomemese="Giugno";
break;
case 7:
$nomemese="Luglio";
break;
case 8:
$nomemese="Agosto";
break;
case 9:
$nomemese="Settembre";
break;
case 10:
$nomemese="Ottobre";
break;
case 11:
$nomemese="Novembre";
break;
case 12:
$nomemese="Dicembre";
break;
}
return $nomemese;
}



poi si possono effettuare anche le conversioni "inverse" tipo da una Data ottenere un timestamp in questo modo:

$ore=10;
$minuti=39;
$secondi=24;
$giorno=30;
$mese=9;
$anno=2004;

$mytimestamp=mktime($ore,$minuti,$secondi,$mese,$giorno,$anno);

FabioD77
30-09-2004, 10:01
Dire che sei stato "solo" gentile sarebbe come offenderti!
Grazie! Più tardi provo!

:ave:

FabioD77
30-09-2004, 17:45
Ho finito di fare la struttura. Tutto OK!! :)