pagina recensioni e commenti

nicolass

Utente Attivo
135
0
salve,
vorrei realizzare per un sito una pagina recensioni dove i visitatori scrivono i loro commenti e recensioni ma prima di essere pubblicate sul sito queste recensioni mi devono arrivare in casella di posta e poi devo decidere se pubblicarle o meno sul sito.
E' una cosa fattibile? qualcuno potrebbe aiutarmi?
Grazie
 

lorigio

Utente Attivo
818
238
CPU
Athlon II x3 435 With Noctua NH-D14
Scheda Madre
Asus M5A99X EVO AM3+
Hard Disk
1TB + 160gb + WD My Passport Essential 500gb
RAM
Kingston ddr3 9-9-9-24 6gb 1333mhz
Scheda Video
Gigabyte 5670 790mhz
Monitor
Samsung 22 pollici P2270HD
Alimentatore
Corsair 400watt
Case
Cm 690 II advanced
Sistema Operativo
Windows 7 32 bit

Paradisee

Nuovo Utente
8
0
CPU
Intel Core 2 Duo 2.67 Ghz
Scheda Madre
Asus P5Q-E
Hard Disk
500GB
RAM
Corsair DDR2 2GB
Sistema Operativo
Windows 7, Ubuntu, Red Hat
salve,
vorrei realizzare per un sito una pagina recensioni dove i visitatori scrivono i loro commenti e recensioni ma prima di essere pubblicate sul sito queste recensioni mi devono arrivare in casella di posta e poi devo decidere se pubblicarle o meno sul sito.
E' una cosa fattibile? qualcuno potrebbe aiutarmi?
Grazie
E' molto semplice, diciamo che hai bisogno innanzitutto di un Database. Quando un utente scrive una recensione/commento, il testo verrà inviato nella tua casella email, e collocato con un "id" in una tabella del DB. E tramite una pagina di amministrazione del sistema, dove potrai accedere alle informazioni del DB, decidere o meno se pubblicare il commento o no!
Quindi supponiamo che l'utente "Paradisee" abbia scritto un commento "Libro fantastico" tramite un Form in HTML.
Il commento verrà gestito da una pagina .PHP che analizzerà il testo, ad esempio se i campi "Nickname", "Testo" non siano vuoti o privi di senso, ed invitati tramite uno script PHP alla tua casella email e successivamente al DB attraverso una precisa Query.
Quando leggerai l'email potrai quindi, andare nella tua pagina di amministrazione loggandoti come admin, e sempre tramite PHP restituire tutti i commenti/recensioni con uno strato di "WAITING" nel DB dove potrai scegliere/eliminare/modificare l'id che preferisci.
In linea di massima, il discorso è questo. Ovviamente ci sono migliaia di modi diversi per affrontare il tuo discorso. Sta a te decidere/pensare la maniera più facile in base alle tue conoscenze. Ad esempio io gestirei il tutto con jQuery e Ajax per renderlo più professionale e magari con qualche accortezza grafica in più!
Spero di esserti stato utile. Buon lavoro.
 

cawletto

Utente Attivo
475
25
CPU
i5 750
Hard Disk
1 TB
RAM
6 GB
Scheda Video
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
Alimentatore
Cooler Master Silent Pro M 600 W
Case
HP
Sistema Operativo
Windows 7-64 bit
Io farei in questo modo: crei una tabella recensioni e, tra gli altri campi, ne metti uno 'VALIDATO'. L'utente inserisce la recensione e questa, dopo i dovuti controlli, viene inserita nel database con campo VALIDATO settato a NO. A questo punto vieni rimandato alla pagina del tuo sito in cui leggi la recensione appena arrivata e alla fine se può andare clicchi su un tasto 'valida' altrimenti 'elimina'. Il primo tasto agisce al record sul database modificando il campo VALIDATO in SI. Il campo elimina invece elimina tutto il record dal database.
Ovviamente nella pagina in cui vengono mostrate le recensioni devi estrarre dal database tutte quelle con VALIDATO uguale a SI!

Spero di esser stato chiaro! :D
 

Blume.

UTENTE LEGGENDARIO
Utente Èlite
19,910
8,543
CPU
I7 8700K
Dissipatore
Silent loop B-Quiet 360
Scheda Madre
Fatal1ty Z370 Gaming K6
Hard Disk
3 Tera su Western Digital 3 Tera su Toshiba p300 3Ssd da 500Gb
RAM
Corsair Vengeance DDR4 LPX 4X4Gb 2666Mhz
Scheda Video
Msi Gtx 1080Ti Gaming Trio X
Scheda Audio
Integrata
Monitor
SyncMaster P2470HD
Alimentatore
Evga Supernova 650W G2
Case
Dark Base 700 B-Quiet
Internet
100/50 Ftth Fastweb
Sistema Operativo
Windows 10Pro. 64Bit
Io farei in questo modo: crei una tabella recensioni e, tra gli altri campi, ne metti uno 'VALIDATO'. L'utente inserisce la recensione e questa, dopo i dovuti controlli, viene inserita nel database con campo VALIDATO settato a NO. A questo punto vieni rimandato alla pagina del tuo sito in cui leggi la recensione appena arrivata e alla fine se può andare clicchi su un tasto 'valida' altrimenti 'elimina'. Il primo tasto agisce al record sul database modificando il campo VALIDATO in SI. Il campo elimina invece elimina tutto il record dal database.
Ovviamente nella pagina in cui vengono mostrate le recensioni devi estrarre dal database tutte quelle con VALIDATO uguale a SI!

Spero di esser stato chiaro! :D
Ot.
Nel caso ti chiedessi come mai non vedi più il tuo logo, ti e stato cancellato, anche perchè in precedenza ti era stato spiegato il motivo, per cui lo stesso non può comparire in firma.
http://www.tomshw.it/forum/problemi-con-il-sito-forum/227140-problema-con-la-firma.html#post2242872
 

nicolass

Utente Attivo
135
0
Io farei in questo modo: crei una tabella recensioni e, tra gli altri campi, ne metti uno 'VALIDATO'. L'utente inserisce la recensione e questa, dopo i dovuti controlli, viene inserita nel database con campo VALIDATO settato a NO. A questo punto vieni rimandato alla pagina del tuo sito in cui leggi la recensione appena arrivata e alla fine se può andare clicchi su un tasto 'valida' altrimenti 'elimina'. Il primo tasto agisce al record sul database modificando il campo VALIDATO in SI. Il campo elimina invece elimina tutto il record dal database.
Ovviamente nella pagina in cui vengono mostrate le recensioni devi estrarre dal database tutte quelle con VALIDATO uguale a SI!

Spero di esser stato chiaro! :D
cavolo mi piacerebbe molto poterlo fare ma per le mie consocenze è troppo complicato...
in rete ho trovatoa qualcsa di molto più semplice:

Quello che segue è il codice che salva quanto nel database quanto scritto nel modulo
<?php
$commento = $_POST['commento'];
$data = date('Y/m/d');
$db = mysql_connect("localhost", "stichtom",""); /*accedo al database*/
if(!$db) /*se c'é stato qualche errore:*/
die('ERRORE: non posso accedere al database!');
mysql_select_db("my_stichtom",$db); /*scegli il tuo database*/
$testo="INSERT INTO commenti (commento,data) VALUES ('$commento','$data')";
if(!mysql_query($testo,$db)) /*eseguo la query e controllo se va a buon fine ^^*/
die('Errore: non riesco a eseguire la query');
mysql_close($db);
?>


Quello che segue è il codice che permette di leggere quanto scritto nel modulo e salvato precentemente
<?php
$contatore = 0;
$db = mysql_connect("localhost", "stichtom",""); /*accedo al database*/
if(!$db) /*se c'é stato qualche errore:*/
die('ERRORE: non posso accedere al database!');
mysql_select_db("my_stichtom",$db); /*scegli il tuo database*/
$testo="SELECT * FROM commenti WHERE 1";
if(!$query = mysql_query($testo,$db)) /*eseguo la query e controllo se va a buon fine ^^*/
die('Errore: non riesco a eseguire la query');
echo "<html><head><title>Pagina di commenti</title></head><body>";
while($array = mysql_fetch_array($query))
{
echo "<strong>Commento</strong>del ".$array['data'].":<font color='red'>\n".$array['commento']."</font><br>";
}
echo "<br></body></html>";
mysql_close($db);
?>


Nel mio database ho creato una tabella immettendo la seguente query con il comando sql

CREATE TABLE commenti (id INT (5) UNSIGNED not null AUTO_INCREMENT, commento VARCHAR (200),data VARCHAR(10), PRIMARY KEY (id))



Ilmio problema è che non riesco a connettermi al database.

i dati/credenziali del mio database sono:

Server: commentipiedini.db.4077739.hostedresource.com (xx.xx.xxx.x via TCP/IP)
Utente: commentipiedini@xx.xxx.xxx.xx
nome database: commentipiedini
nome tabella: commenti

questa tabella l'ho creata con la seguente query:
CREATE TABLE commenti (id INT (5) UNSIGNED not null AUTO_INCREMENT, commento VARCHAR (200),data VARCHAR(10), PRIMARY KEY (id))

Ora vorrei sapere dove inserire queste credenziali nei codici php indicati sopra e per potermi connettere e scrivere nella tabella del database
 

cawletto

Utente Attivo
475
25
CPU
i5 750
Hard Disk
1 TB
RAM
6 GB
Scheda Video
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
Alimentatore
Cooler Master Silent Pro M 600 W
Case
HP
Sistema Operativo
Windows 7-64 bit
Ot.
Nel caso ti chiedessi come mai non vedi più il tuo logo, ti e stato cancellato, anche perchè in precedenza ti era stato spiegato il motivo, per cui lo stesso non può comparire in firma.
http://www.tomshw.it/forum/problemi-con-il-sito-forum/227140-problema-con-la-firma.html#post2242872
Si e dopo aver tolto link e quant'altro mi è stato detto da un moderatore che il logo senza link potevo tenerlo..:boh: Non è ostinazione, posso benissimo farne a meno, assolutamente..!

- - - Updated - - -

Ora vorrei sapere dove inserire queste credenziali nei codici php indicati sopra e per potermi connettere e scrivere nella tabella del database
Ecco una funzione per poterti connettere al database:
Codice:
function connetti_db($host, $username, $password, $db_name){


// mi connetto al db 


$db = mysql_connect($host, $username, $password);


$selected = mysql_select_db($db_name, $db);


return $db;
}
 

nicolass

Utente Attivo
135
0
Si e dopo aver tolto link e quant'altro mi è stato detto da un moderatore che il logo senza link potevo tenerlo..:boh: Non è ostinazione, posso benissimo farne a meno, assolutamente..!

- - - Updated - - -



Ecco una funzione per poterti connettere al database:
[CODE

function connetti_db($host, $username, $password, $db_name){


// mi connetto al db


$db = mysql_connect($host, $username, $password);


$selected = mysql_select_db($db_name, $db);


return $db;
}
[/CODE]
Questa funzione in quale file la metto?
Al posto di "$host" "$username" "$password" cosa ci metto?
Al posto di "$db_name" e "$db" cosa ci metto?
 

cawletto

Utente Attivo
475
25
CPU
i5 750
Hard Disk
1 TB
RAM
6 GB
Scheda Video
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
Alimentatore
Cooler Master Silent Pro M 600 W
Case
HP
Sistema Operativo
Windows 7-64 bit
Questa funzione in quale file la metto?
Al posto di "$host" "$username" "$password" cosa ci metto?
Al posto di "$db_name" e "$db" cosa ci metto?
$host, $username e $password sono i dati del tuo database. $db_name è il nome del database a cui vuoi accedere.. sono ati che dipendono dal tuo database e da come lo hai configurato quindi non dati che posso fornirti io! Il codice lo metti nella pagina che vuoi far connettere al database.

$db è una variabile che ritorna la funzione mysql_connect (true se sei connesso, altrimenti false), non è una variabile su cui devi agire!
 

nicolass

Utente Attivo
135
0
$host, $username e $password sono i dati del tuo database. $db_name è il nome del database a cui vuoi accedere.. sono ati che dipendono dal tuo database e da come lo hai configurato quindi non dati che posso fornirti io! Il codice lo metti nella pagina che vuoi far connettere al database.

$db è una variabile che ritorna la funzione mysql_connect (true se sei connesso, altrimenti false), non è una variabile su cui devi agire!

e i dati identificativi della tabella dove li inserisco?
un database senza una tabella è nullo, giusto?

- - - Updated - - -

Appena risolvo un problemino mi ci metto a lavoro con il massimo impegno.
Però nel frattempo mi è sopraggiunto un probelama che ti spiego:
Ho trovato in rete questo scritp pronto http://www.anarchia.com/link_in_frame.php?link=7390&c=
l'ho installato sul web server e funziona bene, unico grande problema che nonstante il controllo captcha sul sito che l'ho inserito arrivano grandi quantitativi di messaggi spamming dall'estero. visto che non è nemmeno di immediata comprensione e per installarlo e configurarlo a mio piacimento ci ho impegnato abbastanza tempo e soprattutto funziona bene, vorrei poter risolvere questo problema dei copiosi messaggi spam che arrivano. Potresti indicarmi dove potrebbe essere il problema?
Grazzziie mille...
Appena risolvo questo problema provo il codice da te suggerito.....
 

cawletto

Utente Attivo
475
25
CPU
i5 750
Hard Disk
1 TB
RAM
6 GB
Scheda Video
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
Alimentatore
Cooler Master Silent Pro M 600 W
Case
HP
Sistema Operativo
Windows 7-64 bit
i dati identificativi sono proprio quelle variabili!

Codice:
$host = "tuohost";
$username ="tuonome";
$password = "tuapassword";
$db_name = "nomedeldatabase";

// richiamo la funzione
$db = connetti_db($host, $username, $password, $db_name);

// creo la funzione che mi connetterà al database
function connetti_db($host, $username, $password, $db_name){

// mi connetto al db 

$db = mysql_connect($host, $username, $password);

$selected = mysql_select_db($db_name, $db);

return $db;
}
Per la domanda di dopo è strano che nonostante il controllo captcha vengano inviate le email di spam..se ci indichi il sito sul quale usi questo script possiamo trovare il problema..
 

nicolass

Utente Attivo
135
0
i dati identificativi sono proprio quelle variabili!

Codice:
$host = "tuohost";
$username ="tuonome";
$password = "tuapassword";
$db_name = "nomedeldatabase";

// richiamo la funzione
$db = connetti_db($host, $username, $password, $db_name);

// creo la funzione che mi connetterà al database
function connetti_db($host, $username, $password, $db_name){

// mi connetto al db 

$db = mysql_connect($host, $username, $password);

$selected = mysql_select_db($db_name, $db);

return $db;
}
io non vedo il nome della tabella tra le variabili da te indicate, l'host, user e passw, nome del database(che è diverso dal nome della tabella almeno nel mio caso)
 

cawletto

Utente Attivo
475
25
CPU
i5 750
Hard Disk
1 TB
RAM
6 GB
Scheda Video
GXT 460 SE 1GB overclocked
Monitor
Samsung LCD 1280x1024
Alimentatore
Cooler Master Silent Pro M 600 W
Case
HP
Sistema Operativo
Windows 7-64 bit
io non vedo il nome della tabella tra le variabili da te indicate, l'host, user e passw, nome del database(che è diverso dal nome della tabella almeno nel mio caso)
No infatti questa è la connessione, è ancora presto per parlare di tabelle! Tu prima ti identifichi, poi entri nel database, poi puoi effettuare tutte le operazioni su tutte le tabelle che vuoi.
Se vuoi leggere tutto il contenuto della tabella utente prima ti connetti con il codice che ti ho indicato, dopo scrivi la tua query.. del tipo:
Codice:
SELECT * FROM utenti;
 

nicolass

Utente Attivo
135
0
No infatti questa è la connessione, è ancora presto per parlare di tabelle! Tu prima ti identifichi, poi entri nel database, poi puoi effettuare tutte le operazioni su tutte le tabelle che vuoi.
Se vuoi leggere tutto il contenuto della tabella utente prima ti connetti con il codice che ti ho indicato, dopo scrivi la tua query.. del tipo:
Codice:
SELECT * FROM utenti;
chiarissimo

- - - Updated - - -

tornando al problema dello spamming del guestbook nessuno mi sà inidcare una soluzione?
Ieri ho cancellato dal server il fle .htaccess pieno zeppo di istruzioni strane e pericolose e tra l'altro io non ho mai modificato tale file.

Oggi ho visto che sul server era stato ricreato il file .htaccess contenente questo:
<FilesMatch "\.(ini|db|txt|lang|bak)$">
deny from all
</FilesMatch>

ho provato lo stesso guest book su altro dominio e non mi da problemi di spamming.

Potrebbe quindi essere un problema di server infetto? cosa posso fare?
 

vbs

Utente Attivo
647
259
chiarissimo

- - - Updated - - -

tornando al problema dello spamming del guestbook nessuno mi sà inidcare una soluzione?
Ieri ho cancellato dal server il fle .htaccess pieno zeppo di istruzioni strane e pericolose e tra l'altro io non ho mai modificato tale file.

Oggi ho visto che sul server era stato ricreato il file .htaccess contenente questo:
<FilesMatch "\.(ini|db|txt|lang|bak)$">
deny from all
</FilesMatch>

ho provato lo stesso guest book su altro dominio e non mi da problemi di spamming.

Potrebbe quindi essere un problema di server infetto? cosa posso fare?
Ciao, non te la prendere...ma hai letto davvero cosa conteneva il .htaccess??? Te lo traduco io se vuoi, e lascerò a te le conclusioni:

<trova files "con estensione .ini, .db, .txt, .lang, .bak">
nega l'accesso a tutti
</trova files>

... se non ti è chiaro ancora, era un'impostazione di sicurezza. (* v. Nota)

Sul fatto dei messaggi spam che ti arrivano i casi possono essere:
- non hai implementato correttamente il captcha nel tuo form
- hai implementato correttamente il captcha, ma esso risulti come le solite 4-5 cifre su sfondo bianco da digitare che qualunque bot quantomeno bravo riesce a leggerlo...
- lo script da te scaricato ed aggiunto al sito presenta gravi bug e molto probabilmente omissioni di verifiche di sicurezza (* v. Nota)
- non hai impostato correttamente la sessione utente in modo da impedire ai bot (tranne quelli "buoni" dei motori di ricerca) di accedere a quella pagina...

Nota: 1+1 = 2, ergo 1 script il quale funzionamento e codice ti sono sconosciuti (nel senso che non hai verificato cosa sia davvero) + 1 impostazione di sicurezza rimossa = hai 2 bei problemi...

Per quanto riguarda il fatto che vorresti crearti uno script di commenting / ranking, imho non so quanto riusciremmo a darti le dritte se hai problemi a creare una connessione ad un database... Dovrebbe esserci qualcuno che crei lo script (parte pubblica + admin) e te lo passi pari-pari già configurato ed eventualmente con la solita paginetta dell'install...personalmente non ho tempo da dedicarci ed ovviamente parlo di un lavoro fatto come si deve...

Tanto onore a cawletto per la sua pazienza, ma la vedo dura arrivarci fino in fondo.... ;)
 

Entra

oppure Accedi utilizzando