Thread obsoleto Sistema commenti...

prouser

Nuovo utente
Autore del topic
16 Dicembre 2014
29
0
Miglior risposta
0
Ciao a tutti e grazie in anticipo per la risposta...
Sto creando un social network e ho quasi finito...
Mi manca solo la creazione del sistema di post di stati dell' utente.
Però io voglio che quando un registrato del social posti qualcosa, questa deve essere inserita solo all' interno del suo profilo..
Mi spiego meglio: quando utente 1 posta qualcosa questo post viene salvato solo nella sua pagina.
Non mi sono sicuramente espresso bene comunque grazie in anticipo

- - - Aggiornato - - -

Se vi serve posso postare i codici del sistema di post (quello dove tutti i post finiscono in una pagina chiamata savecomment.php) per eventualmente modificarlo.
 
Non capisco, se vuoi che si vedano solo sul suo profilo fai la chiamata delle query solo nel suo profilo... Mi sembra abbastanza semplice come concetto, no?
 
Forse non mi sono spiegato bene.... se voglio che tutti i commenti vengano visualizzati in un solo profilo e semplicissimo. Io voglio he i post vhe fa un utente vadano solo nel suo profilo...
supponiamo di avere user1 e user2 ... user 1 inserisce un commento e lo stesso fa user2. Io voglio che il commento di user1 si salvi nel profilo di user1 e il commento di user2 nel profilo di user2.

Mi scuso ma il concetto e difficile da spiegare
 
È uguale, devi mettere una condizione nel comando SQL che prende tutte le query:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

e nella variabile $userid definisci l'id dell'utente.

Naturalmente il mio è un puro esempio, non so come è strutturato il tuo database! Spero che, nella tabella dei commenti, ci sia collegato a ogni commento l'id univoco di chi l'ha postato. Altrimenti dovrai apportare un po' di modifiche al database
 
  • Like
Reactions: 1 person
Non so come hai strutturato il tuo database, ma nella tabella dei commenti inserisci un campo (se non c'è già) nel quale viene salvato l'id dell'utente in cui vuoi che il messaggio sia visualizzato.
Es Tabella commenti:
¦---------------------------------¦
¦ id ¦ userid ¦ profileid ¦ body ¦
¦---------------------------------¦
Dove id è l'id del commento, body è il corpo del messaggio, userid è l'id di chi ha pubblicato il commento e profileid è l'id dell'user/profilo nel quale vuoi che il commento viene visualizzato.
Poi usa un comando SQL come quello che ha postato Ragazzo_Devil.

Se invece solo se stesso può pubblicare qualcosa nel suo profilo allora ti basta solo modificare il comando di Ragazzo_Devil rispecchiando il tuo DB .
 
Ultima modifica:
ho inserito i codici che mi avete detto (nella pagina utenti) cioe quesi codici:
<html>
<head>
</head>
<body>
<h1><i><font color=ff0000>I vostri commenti</font><i></h2>
<?

// includiamo il file di configurazione
@include "config.php";
@include "core.php";
@require "anteprima.php";

$username=$_SESSION['username'];

$sql = "SELECT * FROM articoli WHERE autore='$username' ORDER BY art_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['art_id'];
$autore = stripslashes($row['art_autore']);
$titolo = stripslashes($row['art_titolo']);
$data = $row['art_data'];
$articolo = stripslashes($row['art_articolo']);

//valorizziamo una variabili con il link all'intero articolo
$link = " ..<br><a href=\"articolo.php?id=$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>".$username."</b>";
echo "| Commento postato il <b>" . $data . "</b>";
echo "<hr>";
}
}else{
// se in tabella non ci sono records...
echo "Nessun commento presente.";
}
?>
</body>
</html>



ma mi da un errore: Parse error: syntax error, unexpected '[' in /membri/testsito2014/user.php on line 107

- - - Aggiornato - - -

le parentesi quadre restituiscono questo errore, come devo cambiare il codice?
 
@prouser È difficile dirlo così, bisognerebbe vedere una serie di cose. Ad ogni modo, perché la data la stampi con la funzione preg_replace? La funzione da utilizzare è date():

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Ti consiglio comunque di dividere i codici HTML in un template esterno, in modo da separare il più possibile l'HTML dal PHP. Ma per fare ciò dovresti prima imparare a selezionare meglio i dati sql dal database. Lo so che hai seguito la guida su Mr.Webmaster ma è vecchia e non aggiornata.

Dovresti informarti sulla programmazione ad oggetti e cominciare a imparare e conoscere l'oggetto PDO (PHP Data Objects) e scoprirai che diventa tutto più facile. Per esempio:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Con questo codice crei una connessione al database e se qualcosa va storto, l'errore viene stampato sulla pagina output.html.php (a proposito dei template di cui ti parlavo prima):

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Come vedi la pagina è molto pulita e abbiamo diviso molto bene l'HTML dal PHP. Inoltre ti ricordo che se utilizzi l'oggetto PDO l'eccezzione try e catch di PHP ti semplifica la vita:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Ho preso questa guida un po di anni fa quando ancora non conoscevo bene il php e facevo siti andando avanti di script in script... :-)
In ogni caso sto riscontrando problemi perchè ovviamente non sono professionista.
Comunque alla fine cosa devo fare al sistema di commenti per fare cio che voglio?
 
Ho preso questa guida un po di anni fa quando ancora non conoscevo bene il php e facevo siti andando avanti di script in script... :-)
In ogni caso sto riscontrando problemi perchè ovviamente non sono professionista.
Comunque alla fine cosa devo fare al sistema di commenti per fare cio che voglio?

Te l'ho scritto, è difficile da dire visto che la riga 107 su cui c'è l'errore di sintassi è del codice PHP già generato, in quello scritto sa te non ci sono 107 righe... Dovresti fare una serie di tentativi di debug!

Comunque, comincia a provare con questo (pensiamo dopo ad assegnare stripslashes()):

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Edit:

Non so perché nel codice la chiocciola me la formatta in @ ecc. comunque, sostituisci questo codice: Con:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
Ultima modifica:
Sei un genio. Ti ringrazio tantissimo... Il sistema funziona benissimo
 
Sei un genio. Ti ringrazio tantissimo... Il sistema funziona benissimo

Di niente, ma aspetta... Lo script non è ancora finito. Così come è ora non va bene! Ti spiego:

Oltre al fatto che dobbiamo ancora rimettere la funzione stripslashes() come è strutturata la pagina ora non va assolutamente bene.
Tu vuoi che si vedano nel TUO profilo tutti i tuoi commenti giusto? Bene, analizziamo come è il codice ora:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Qua assegni alla variabile $username l'username registrato nella sessione (dunque quello che hai utilizzato per il login) e successivamente lo utilizzi per selezionare i commenti nella tabella scritti da una persona che ha lo stesso username registrato nella sessione.

Innanzitutto è meglio che tu utilizzi l'id degli utenti e non l'username, perché spesso l'username contiene caratteri speciali, spazi, numeri ecc. e può capitare che non trovi la corrispondenza nella tabella a seconda delle codifiche dei caratteri ecc. mentre con l'id, ossia un numero, hai la certezza che ciò avvenga.

Il problema di questo codice è che la pagina è quella e chiunque la visiti vedrà i SUOI di commenti. Quindi cosa vuol dire? Che se io vado nel profilo di Tizio, vedrò comunque i MIEI commenti!

Bisogna cambiare un po' i codici. Innanzitutto bisogna andare nella home e mettere un link al proprio profilo. Per farlo devi utilizzare, sta volta sì che dobbiamo farlo, le sessioni.

Assegna alla sessione anche l'id dell'utente e scrivi questo codice nella home:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Perfetto, ora devi creare una pagina member.php dove ci saranno i profili di tutti gli utenti registrati. Cominciamo a scrivere le prime righe:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora, assegniamo alla variabile $id l'id che gli abbiamo passato tramite l'url con il GET:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Ora possiamo selezionare tutti i record nel database che ci interessano, in questo caso quelli dei commenti:

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Ti ho spiegato nei commenti passo per passo tutto il codice. Se hai qualche dubbio scrivimi. Non l'ho testato, ma dovrebbe funzionare. Se ti restituisce qualche errore fammelo notare e correggerò. Mi raccomando, i commenti leggili bene se vuoi che il codice funzioni... Non fare CTRL+C/CTRL+V a cazzum sennò non impari il PHP e non ti funzionerà il codice.

Continuo a insistere sul fatto, però, che tu debba imparare a utilizzare l'oggetto PDO visto che le vecchie funzioni MySQL sono deprecate in PHP5.

Ti lascio con una copia del file member.php visto che il forum formatta alcuni codici PHP (per esempio la @ perché pensa stia taggando un utente del forum) e se li copi da lì potrebbero non funzionare.

Perfavore, Entra oppure Registrati per vedere i Link!
 
ti ringrazio.
comunque quando posto il primo commento lo inserisce nel profilo di chi l' ha mandato...... dal secondo in poi non vengono piu visualizzati :cry:

- - - Aggiornato - - -

ho riprovato e non mi visualizza nemmeno il primo. OMG
 
Ultima modifica:
ti ringrazio.
comunque quando posto il primo commento lo inserisce nel profilo di chi l' ha mandato...... dal secondo in poi non vengono piu visualizzati :cry:

- - - Aggiornato - - -

ho riprovato e non mi visualizza nemmeno il primo. OMG

Allora... Hai fatto tutto quello che c'era scritto nei commenti?
 
Si. Il sistema del file member.php che nel mio caso si chiama user.php lo gia fatto e funziona benissimo. E il sistema di commenti che non funziona bene. Io quando posto qualcosa non si salva piu o se si salva poi non riesco a salvare piu ugualmente
 
Si. Il sistema del file member.php che nel mio caso si chiama user.php lo gia fatto e funziona benissimo. E il sistema di commenti che non funziona bene. Io quando posto qualcosa non si salva piu o se si salva poi non riesco a salvare piu ugualmente

Ah ma quindi non è un problema riguardante i codici che ti ho dato io, ma quelli che hai scritto per l'invio dei commenti? Se sì dovresti aprire una nuova discussione e mettere questa come problema risolto