allora quando un utente fa il login nel mio sito si apre la sessione
Codice PHP:
$_SESSION['utente']
poi io ho inserito la possibilità di commentare le pagine...
questo è il codice che fa comparire la pagina in cui nel fondo si può commentare (si chiama post.php):
Codice PHP:
<?php
// controllo sulla variabile inviata per querystring
if((!isset($_GET['id_post'])) || (!is_numeric($_GET['id_post'])))
{
// reindirizzamento del browser nel caso in cui la variabile non venga validata
header("Location: index.php");
}else{
$id_post = $_GET['id_post'];
}
?>
<html>
<head>
<title>MioBlog</title>
</head>
<body>
<?php
// inclusione del file di classe
include "funzioni_mysql.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
// query per l'estrazione dei record
$post_sql = $data->query("SELECT * FROM post WHERE id_post = $id_post");
// controllo sulla presenza in tabella del record corrispondente dell'id richiesto
if(mysql_num_rows($post_sql) > 0){
// estrazione dei record
$post_obj = $data->estrai($post_sql);
$id_post = $post_obj->id_post;
$titolo_post = stripslashes($post_obj->titolo_post);
$testo_post = stripslashes($post_obj->testo_post);
$autore_post = stripslashes($post_obj->autore_post);
$data_post = $post_obj->data_post;
$voto = $post_obj->voto;
// visualizzazione dei dati
echo "<p>".$testo_post."</p>\n<br>"; ?>
<?php if(isset($_SESSION['utente'])){
echo " :: <a href=\"commenti.php?id_post=$id_post\">Inserisci un commento</a>\n";
echo "<br />\n";
} else {
echo "<b>REGISTRATI PER COMMENTARE</b>";
}
?>
<?php
// estrazione dei commenti
$post_commenti = $data->query("SELECT autore_commento,testo_commento,data_commento FROM commenti WHERE id_post = $id_post AND approvato='1' ORDER BY data_commento DESC");
if(mysql_num_rows($post_commenti) > 0){
echo "<ul>\n";
while($commenti_obj = $data->estrai($post_commenti))
{
$autore_commento = stripslashes($commenti_obj->autore_commento);
$testo_commento = stripslashes($commenti_obj->testo_commento);
$data_commento = stripslashes($commenti_obj->data_commento);
?>
<div id="commenti"><?php
echo "<b>- Autore</b>: " . $autore_commento . " <b>Scritto il</b> ". $data->format_data($data_commento) . "\n";
?></div>
<?php
echo "" . $testo_commento;
echo "<br>";
}
echo "</ul>\n";
}else{
echo "Nessun commento per questo post";
}
}else{
// notifica in assenza di record
echo "Non esiste alcun post per questo id.";
}
// chiusura della connessione a MySQL
$data->disconnetti();
?>
</body>
</html>
questa è la pagina da cui si può commentare (commenti.php):
Codice PHP:
<?php
// inclusione del file di classe
include "funzioni_mysql.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
// valorizzazione delle variabili con i parametri dal form
if(isset($_POST['submit'])){
if(!isset($_POST['autore']) || !isset($_POST['commento']) || !isset($_POST['post_id']) || !is_numeric($_POST['post_id']))
{
echo "Tutti i campi sono obbligatori";
}else{
$autore = htmlentities(addslashes($_POST['autore']));
$post_id = $_POST['post_id'];
$commento = htmlentities(addslashes($_POST['commento']));
$t = "commenti"; # nome della tabella
$v = array ($post_id,$autore,$commento,date("Y-m-d")); # valori da inserire
$r = "id_post,autore_commento,testo_commento,data_commento"; # campi da popolare
// chiamata alla funzione per l’inserimento dei dati
$data->inserisci($t,$v,$r);
header("Location: post.php?id_post=$post_id");
}
}else{
// controllo sull'id del post inviato per querystring
if( isset($_GET['id_post']) && is_numeric($_GET['id_post']) ){
$id_post = $_GET['id_post'];
$sql_commenti = $data->query("SELECT id_post FROM post WHERE id_post='$id_post'");
if(mysql_num_rows($sql_commenti) > 0){
// viene visualizzato il form solo nel caso in cui l'unico dato inviato sia l'id del post
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Autore:<br>
<input name="autore" type="text"><br><br>
Commento:<br>
<textarea name="commento" cols="30" rows="10"></textarea><br>
<input name="post_id" type="hidden" value="<?php echo $id_post; ?>"><br>
<input name="submit" type="submit" value="Invia">
</form>
<?php
// notifiche in caso di querystring vuota o non valida
}else{
echo "Non è possibile accedere alla pagina da questo percorso.";
}
}else{
echo "Commenti non consentiti, articolo inesistente.";
}
}
// disconnessione
$data->disconnetti();
?>
</body>
</html>
e questo è il codice che permette di visualizzare in fondo alla pagina post.php i commenti scriti:
Codice PHP:
<?php
// inizializzazione della sessione
session_start();
// controllo sul valore di sessione
if (!isset($_SESSION['login']))
{
// reindirizzamento alla home page in caso di login mancato
header("Location: index.php");
}
// inclusione del file di classe
include "funzioni_mysql.php";
// istanza della classe
$data = new MysqlClass();
// chiamata alla funzione di connessione
$data->connetti();
// query per l'estrazione dei record
$commento_sql = $data->query("SELECT id_commento,testo_commento,autore_commento,data_commento FROM commenti WHERE approvato='0' ORDER BY data_commento DESC");
echo "<h1>Elenco dei commenti da approvare</h1>\n";
// controllo sul numero di records presenti in tabella
if(mysql_num_rows($commento_sql) > 0){
echo "<ul>\n";
// estrazione dei record tramite ciclo
while($commento_obj = $data->estrai($commento_sql)){
$id_commento = $commento_obj->id_commento;
$testo_commento = stripslashes($commento_obj->testo_commento);
$autore_commento = stripslashes($commento_obj->autore_commento);
$data_commento = $commento_obj->data_commento;
// visualizzazione dei dati
echo "<li>\n";
echo "Autore: " . $autore_commento . " Scritto il ". $data->format_data($data_commento) . "\n";
echo "<br />\n";
echo "Commento: " . $testo_commento;
echo "<br />\n";
echo " :: <a href=\"moderazione.php?id_commento=$id_commento\">approva</a>\n";
echo "</li>\n";
}
echo "</ul>\n";
}else{
// notifica in assenza di record che soddisfino le caratteristiche richieste
echo "Per il momento non sono disponibili commenti da approvare.";
}
// chiusura della connessione a MySQL
$data->disconnetti();
?>
ora il problema è che io voglio fare in modo che quando si commenta non si possa scrivere il nome dell'autore ma venga in automatico il nome dell'utente in base al login che ha fatto... quindi dovrebbe prendere il valore $username di un altra tabella e stamparlo... ma proprio nn riesco a farlo.. qualcuno mi aiuta?