Intanto potresti scaricarti questo template e poi..
Codice Htaccess:
Codice:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^Home?$ index.php
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+?)?$ post.php?post-title=$1
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^commenta/post-(.+?)?$ commenta.php?post-title=$1
DirectoryIndex Home
Potresti mettere questi script sql:
Codice:
CREATE TABLE `post` (
`post-id` int(11) NOT NULL auto_increment,
`post-autore` varchar(40) NOT NULL default '',
`post-titolo` varchar(100) NOT NULL default '',
`post-contenuto` text NOT NULL,
`post-data` date NOT NULL default '0000-00-00',
PRIMARY KEY (`post-id`)
) ;
Codice:
CREATE TABLE `com` (
`com-id` int(5) NOT NULL auto_increment,
`com-art` text NOT NULL default '0',
`com-autore` varchar(40) NOT NULL default '',
`com-testo` varchar(255) NOT NULL default '',
PRIMARY KEY (`com-id`)
);
come codice php potresti mettere:
conn.php
Codice PHP:
<?php
$dbhost = "localhost";
$dbname = "my_nomeutente";
$dbuser = "nomeutente";
$dbpass = "password";
$connect = @mysql_connect($dbhost, $dbuser, $dbpass) or die (mysql_error());
@mysql_select_db($dbname) or die (mysql_error());
?>
inserisci_post.php
Codice PHP:
<html>
<head>
<title>Blog: inserimento news</title>
</head>
<body>
<h1>Inserisci un articolo</h1>
<?php
//includiamo il file di configurazione
@include "conn.php";
//valorizziamo le variabili con i dati ricevuti dal form
if(isset($_POST['submit'])){
if(isset($_POST['autore'])){
$autore = addslashes($_POST['autore']);
}
if(isset($_POST['titolo'])){
$titolo = addslashes($_POST['titolo']);
}
if(isset($_POST['articolo'])){
$articolo = addslashes($_POST['articolo']);
}
// popoliamo i campi della tabella articoli con i dati ricevuti dal form
$sql = "INSERT INTO articoli (art_autore, art_titolo, art_articolo, art_data) VALUES ('$autore', '$titolo', '$articolo', now())";
// se l'inserimento ha avuto successo inviamo una notifica
if (@mysql_query($sql) or die (mysql_error())){
echo "Articolo inserito con successo.";
}
}else{
// se non sono stati inviati dati dal form mostriamo il modulo per l'inserimento
?>
<form action="insert_post.php" method="post">
Autore:<br>
<input name="autore" type="text" size="20"><br>
Titolo:<br>
<input name="titolo" type="text" size="30"><br>
Articolo:<br>
<textarea name="articolo" cols="40" rows="10"></textarea><br>
<input name="submit" type="submit" value="Invia">
</form>
<?php
}
?>
</body>
</html>
index.php
Codice PHP:
<head>
<title>Il mio Blog</title>
</head>
<body>
<h1>Un blog in PHP</h1>
<?php
// includiamo il file di configurazione
@include "conn.php";
// includiamo la pagina contenente il codice per la creazione delle anteprime
@include "anteprima.php";
// estraiamo i dati relativi agli articoli dalla tabella
$sql = "SELECT * FROM post ORDER BY post_data DESC";
$query = @mysql_query($sql) or die (mysql_error());
//verifichiamo che siano presenti records
if(mysql_num_rows($query) > 0){
// se la tabella contiene records mostriamo tutti gli articoli attraverso un ciclo
while($row = mysql_fetch_array($query)){
$art_id = $row['post-titolo'];
$autore = stripslashes($row['post_autore']);
$titolo = stripslashes($row['post_tid']);
$data = $row['art_data'];
$articolo = stripslashes($row['post_contenuto']);
//valorizziamo una variabili con il link all'intero articolo
$link = " ..<br><a href=\"$art_id\">Leggi tutto</a>";
echo "<h2>".$titolo."</h2>";
// creaimo l'anteprima che mostra le prime 30 parole di ogni singolo articolo
// per farlo utilizzo una funzione che vi presenterò più avanti
echo @anteprima($articolo, 30, $link);
echo "<br><br>";
// formattiamo la data nel formato europeo
$data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);
// stampiamo una serie di informazioni
echo "Scritto da <b>". $autore . "</b>";
echo "| Articolo postato il <b>" . $data . "</b>";
echo "| Commenti: ";
// mostriamo il numero di commenti relativi ad ogni articolo
$conta = "SELECT COUNT(com-id) as conta from commenti WHERE com-art = '$art_id'";
$conto = @mysql_query ($conta);
$tot = @mysql_fetch_array ($conto);
echo $sum2 = $tot['conta'];
echo "<hr>";
}
}else{
// se in tabella non ci sono records...
echo "Nessun articolo presente nel database.";
}
?>
</body>
</html>
anteprima.php
Codice PHP:
<?php
function anteprima($testo, $lunghezza, $finale) {
return (count($parole = explode(' ', $testo)) > $lunghezza) ? implode(' ', array_slice($parole, 0, $lunghezza)) . $finale : $testo;
}
?>
post.php
Codice PHP:
<html>
<head>
<?php
// controlliamo che sia stato inviato un id numerico alla pagina
if(isset($_GET['post-title'])){
// valorizziamo la variabile relativa all'id dell'articolo e includiamo il file di configurazione
$art_id = $_GET['post-title'];
@include "conn.php";
// selezioniamo dalla tabella i dati relativi all'articolo
$sql = "SELECT * FROM post WHERE post_titolo='$art_id'";
$query = @mysql_query($sql) or die (mysql_error());
// se per quell'id esiste un articolo..
if(mysql_num_rows($query) > 0){
// ...estraiamo i dati e mostriamoli a video
$row = mysql_fetch_array($query) or die (mysql_error());
$autore = stripslashes($row['post-autore']);
$titolo = stripslashes($row['post-id']);
$data = $row['art_data'];
$articolo = stripslashes($row['post-contenuto']);
echo "<title>$art_id - Titolo sito</title>";
}
}else{
// se per l'id non esiste un articolo..
echo "<title>Articolo inesistente</title>";
}
?>
</head>
<body>
<?php
// controlliamo che sia stato inviato un id numerico alla pagina
if(isset($_GET['post-title'])){
// valorizziamo la variabile relativa all'id dell'articolo e includiamo il file di configurazione
$art_id = $_GET['post-title'];
@include "conn.php";
// selezioniamo dalla tabella i dati relativi all'articolo
$sql = "SELECT * FROM post WHERE post_titolo='$art_id'";
$query = @mysql_query($sql) or die (mysql_error());
// se per quell'id esiste un articolo..
if(mysql_num_rows($query) > 0){
// ...estraiamo i dati e mostriamoli a video
$row = mysql_fetch_array($query) or die (mysql_error());
$autore = stripslashes($row['post-autore']);
$titolo = stripslashes($row['post-id']);
$data = $row['art_data'];
$articolo = stripslashes($row['post-contenuto']);
echo "<h2>".$titolo."</h2>" . $articolo . "<br><br>";
$data = preg_replace('/^(.{4})-(.{2})-(.{2})$/','$3-$2-$1', $data);
echo "Scritto da <b>". $autore . "</b>";
echo "| Articolo postato il <b>" . $data . "</b>";
// link alla pagina dei commenti
echo "<br><a href=\"commenta/post-$art_id\">Invia un commento</a><br><br>";
// visualizzianmo tutti i commenti
$sql_com = "SELECT com-autore, com-testo FROM com WHERE com-art='$art_id'";
$query_com = @mysql_query($sql_com) or die (mysql_error());
if(mysql_num_rows($query_com) > 0){
echo "Commenti:<br>";
while($row_com = mysql_fetch_array($query_com)){
$com_autore = stripslashes($row_com['com-autore']);
$com_testo = stripslashes($row_com['com-testo']);
echo $com_testo . "<br>";
echo "Inserito da <b>". $com_autore . "</b>";
echo "<hr>";
}
}
}
}else{
// se per l'id non esiste un articolo..
echo "Nessun articolo trovato.";
}
?>
</body>
</html>
commenta.php
Codice PHP:
<html>
<head>
<title>Inserisci un commento</title>
</head>
<body>
<h1>Inserisci un tuo commento:</h1>
<?
// includiamo il file di configurazione
@include "conn.php";
// se sono stati inviati dei parametri valorizziamo con essi le variabili
// per l'inserimento nella tabella
if(isset($_POST['submit'])){
if(isset($_POST['autore'])){
$autore = addslashes($_POST['autore']);
}
if(isset($_POST['testo'])){
$testo = addslashes($_POST['testo']);
}
if(isset($_POST['id'])){
$com_art = addslashes($_POST['id']);
}
// popoliamo i campi della tabella commenti con i dati ricevuti dal form
$sql = "INSERT INTO com (com-autore, com-testo, com-art) VALUES ('$autore', '$testo', '$com_art')";
// se l'inserimento ha avuto successo inviamo una notifica
if (@mysql_query($sql) or die (mysql_error())){
echo "Commento inserito con successo.";
}
}else{
//controlliamo che l'id dell'articolo sia realamente esistente
if(isset($_GET['post-title'])){
$com_art = addslashes($_GET['post-title']);
$sql = "SELECT * FROM post WHERE post-titolo='$com_art'";
$query = @mysql_query($sql) or die (mysql_error());
if(mysql_num_rows($query) > 0){
// se non sono stati inviati dati dal form mostriamo il modulo per l'inserimento
?>
<form action="" method="post">
Autore:<br>
<input name="autore" type="text" size="20"><br>
Testo:<br>
<textarea name="testo" cols="40" rows="10"></textarea><br>
<input name="id" type="hidden" value="<? echo $com_art; ?>">
<input name="submit" type="submit" value="Invia">
</form>
<?
// se l'id dell'articolo non esiste o non è numerico inviamo delle notifiche
}else{
echo "Impossibile inserire un commento.";
}
}else{
echo "Impossibile inserire un commento.";
}
}
?>
</body>
</html>