Sistema di votazione

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
$id=trim(strip_tags($_GET['id']);
no, mi sono dimenticato una parentesi

PHP:
$id=trim(strip_tags($_GET['id']));

@alex
anche per quello dicevo se il gioco vale la candela, cioè se uno deve proteggere dei dati sensibili è un conto, se di poca importanza è un altro
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao, ho trovato un minuto (così eviti di lavorare manina manina - se funzia :)).
ti faccio la pag per inserire le canzoni, per ora accessibile senza password, poi vedremo l'accesso con pass e le limitazioni di accesso.
ti consiglio di farti una cartella in cui metterai tutti gli scripts per l'amministratore.
poi una piccola cosa che mi ero dimenticato:
quando fai delle pagine che poi includerai in altre NON mettere (come in registra_voto.php) i tag html
<!--<!DOCTYPE HTML PUBLIC ....... <html> <head> <body>..... -->
questo per evitare che, se li hai nella pagina includente, vengano duplicati ho diano fastidio a eventuali header.

inserisci_canzoni.php
PHP:
<?php
//in questa parte metterememo la verifica dei permessi di accesso
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<!-- tutto quello che ti serve, css, tag meta... -->
</head>
<body>
<?php
//prepariamo l'inserimento
if(isset($_POST['invio'])){//premuto tasto invio
	$ok_ko="";//preparo il solito messaggio di avviso per eventuali errori o tutto bene
	//leggo gli altri post
	$titolo=trim($_POST['titolo']);
	$autore=trim($_POST['autore']);
	if($titolo==""){$ok_ko.="<br>non hai inserito il titolo";}
	if($autore==""){$ok_ko.="<br>non hai inserito l'autore";}
	if($ok_ko==""){//i dati sono stati inseriti
		//tratti i dati in modo che vengano inseriti in un modo standard
		//questo può esserti utile per verifiche o ricerche
		//e metto adslshes per eventuali '
		$titolo=addslashes(ucwords(strtolower($titolo)));
		$autore=addslashes(ucwords(strtolower($autore)));
		/*
		esempio:
		se inserisci o' SOLE mIo il titolo diventa
		O\' Sole Mio
		*/
		//non so se ti serve una verifica che non ci siano due titoli uguali?
		//mi connetto al db ATTENTO ai percorsi
		require_once("../connessione.php");
		$data_ins=time();//leggo il tempo di inserimento
		//e preparo la querystringa
		$query="INSERT INTO canzoni(titolo,autore,voti,data) VALUES('$titolo','$autore',0,$data_ins)";
		//verifico l'inserimento (cosa che potresti verificare anche nei precedenti)
		if(mysql_query($query)){
			$ok_ko="la canzone $titolo di $autore è stata inserita";
		}elase{
			$ok_ko="si è verificato un errore";
		}
	}
	//visualizzo il messaggio
	echo $ok_ko;
	//e torno al form pulito dopo 4 secondi
	echo "<meta http-equiv='Refresh' content='4; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>"//$_SERVER... come per l'action del form;
}
?>

<!-- qui poi includeremo il menu di navigazione tra gli scripts dell'admin, faremo una pag menu_amm.php -->
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post" name="inserisci">
<!-- l'istruzione php $_SERVER... ti serve per non dover riscrive l'action se cambi nome alla pagina -->
titolo canzone: <input name="titolo" type="text"><br>
autore canzone: <input name="autore" type="text"><br>
<input name="invia" type="submit" id="invia" value="invia">
</form>
</body>
</html>
<?php
//termine della partre verifica permessi
?>

come al solito testala e sappimi dire
 

Lucart98

Nuovo Utente
15 Apr 2011
22
0
0
Grazie, ma gli errori restano :-(
Parse error: syntax error, unexpected T_VARIABLE in /membri/USER/vot/registra_voto.php on line 52
PHP:
$result_v_ut=mysql_query($query_v_ut);

Parse error: syntax error, unexpected '{' in /membri/USER/vot/inserisci_canzoni.php on line 30
...e questo è un piccolo errore: c'era elase invece di else.
Ho aggiustato

Ma...
Ho aggiustato qualcosa nell'amministrazione e adesso vedo il contenuto.
Ma non aggiunge la canzone al db...

Ciao!
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto nel file inserisci_canzoni.php correggi
if(isset($_POST['invio'])){//premuto tasto invio
con
if(isset($_POST['invia'])){//premuto tasto invio
per sbaglio ho scritto invio al posto di invia, il name del pulsante di submit è "invia".
poi verifica che i nomi della query e dei campi della tabella siano uguali anche come maiscole/minuscole.

poi cerco di vedere quello di registra_voto.php.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ecco alcuni errori in registra_voto.php

correggi la riga
$id=trim(strip_tags($_GET['id']);
in
$id=trim(strip_tags($_GET['id']));
manacava una parentesi

alla riga
$query_v_ut="SELECT * FROM utenti WHERE id_c=$id AND ip='$ip'"
manca un ; aggiungilo
$query_v_ut="SELECT * FROM utenti WHERE id_c=$id AND ip='$ip'";

lo stesso alla riga
echo $ok_ko
correggi con
echo $ok_ko;

p.s.
dovrebbero sparire gli errori, non so se tutti in quanto sto operando senza aver fatto il db quindi alcuni errori mi possono sfuggire.
 

Lucart98

Nuovo Utente
15 Apr 2011
22
0
0
Nel file inserisci_canzoni.php ho modificato e adesso funziona.
Il problema è che il numero dei voti rimane sempre 0 sia nella pagina che nel db, anche se quando io riprovo a votare mi dice che ho già votato...
Altro problema: provo ad aggiungere un voto manualmente, ma mi mette prima quelli con meno voti e poi quelli che ne hanno di più...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
in vota.php
metti nella query
$query_str="SELECT * FROM canzoni ORDER BY voti,data";
la clausola DESC
$query_str="SELECT * FROM canzoni ORDER BY voti,data DESC";

(se al posto di DESC - discendente - metti ASC ottieni l'ordinamento contrario)

altra (mia) dimenticanza nella query di uppaggio di registra_voto.php
$query_up_c="UPDATE canzoni voti=voti+1 WHERE id=$id";
mi sono dimenticato SET, correggi in
$query_up_c="UPDATE canzoni SET voti=voti+1 WHERE id=$id";

p.s.
porta pazienza, anche gli DEI sbagliano:crying:
 

Lucart98

Nuovo Utente
15 Apr 2011
22
0
0
Non ti preoccupare ASSOLUTAMENTE: mi stai facendo un favore!!!

Adesso tutto funziona alla perfezione, tranne la messa in ordine...
Comunque mettendo DISC o ASC non cambia nulla... secondo me le canzoni vengono ordinate per data (boh?).
Un'altra cosa: se uno ha già votato, non posso cambiare la scritta VOTA in NON PUOI VOTARE senza collegamento? Sarebbe molto meglio.
Se è complicato lasciamo stare: l'importante è che l'utente non possa votare più volte una canzone :).
Ciao!
 
Ultima modifica:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
la query
$query_str="SELECT * FROM canzoni ORDER BY voti,data";
ordina in modo decresente prima per il valore di voti e poi se necessario di data.
(non ti scrivo le date in timestamp ma in formato umano per capirci meglio(considerando però che il formato umano non è,salvo casi particolari, adatto all'ordinamento).
esempio nel db hai (id, titolo, autore, voti, data)
1 Volare Modugno 3 10.12.2009
37 Bella Ciao Pinco 7 01.01.1900
127 Marina Pallo 7 01.12.2005
153 Ho Ho Cin Ciao 0 12.12.1941
189 Ha Ha Cin Ciao 0 14.12.1941
ecc...
ti visualizza (almeno dovrebbe)
1 Marina Pallo 7
2 Bella Ciao Pinco 7 //stessi voti della precedente, ma data precedente
3 Volare Modugno 3
4 Ha Ha Cin Ciao 0
5 Ho Ho Cin Ciao 0 // c.s.
ecc...

se tutte le canzoni hanno lo stesso voto in pratica ordina solo per data
tieni presente che durante l'inserimento la data viene inserita in automatico e in timestamp, il timestamp considera anche il secondo
quindi tra un inserimento e l'altro può passare almeno un secondo, quindi quando inserisci la seconda canzone in questa viene registrato un timesamp maggiore della prima e quindi (avendo entrambe voti ==0) la seconda verrà visualizzata per prima

p.s.
buona pasqua
penso che ci risentiremo verso fine settimana dopo pasqua (salvo non trovi un pc disponibile)

p.s. al p.s.
ora votando ti aggiorna il voto?
 

Lucart98

Nuovo Utente
15 Apr 2011
22
0
0
Grazie per la spiegazione.
Funziona tutto, adesso funge.
L'unica cosa è l'ordinamento: il voto maggiore è l'ultimo e come primo c'è il minore!
DISC o ASC è la stessa cosa.

Allora buonissima Pasqua se non ci risentiamo.
Ciao ciao! :)
 

Lucart98

Nuovo Utente
15 Apr 2011
22
0
0
Tutto risolto, ordino soltanto per voti.
Ti chiedo l'ultima cosa (a te o a chiunque nel forum): invece di mandarlo alla pagina e da lì registrare il voto, posso mettere al posto del bottone il testo "Hai già votato" direttamente nella pagina vota.php? Grazie.
 
Discussioni simili
Autore Titolo Forum Risposte Data
felino Presentazione foto e sistema di votazione PHP 2
Alessandro Le Mura Sistema votazione mysql - php a stelle PHP 3
A Sistema di votazione a stelle - star rating PHP 1
I Sistema di votazione (era: Aiuto) PHP 2
D Sistema votazione,aiuto con voti doppi PHP 6
S Sistema di votazione recensione Classic ASP 3
F Sistema rilevazione presenze PHP 1
MarcoGrazia Sistema di news interno al sito PHP 3
T SSD - errore sistema Hardware 2
R Come creare sistema Add to homescreen PHP 3
L Sistema outdoor centralizzato IP Cam e Videosorveglianza 0
F Sistema di autenticazione e pagamento PHP 3
LDB Multimedia e Internet Offro sistema di affiliazione remunerato Offerte e Richieste di scambio links 0
R [PHP] Creare sistema random PHP 3
brasoft2019 [PHP] Sistema di gestione presenze PHP 29
L Trasferimento dei file OLM Mac in formato PST sul sistema Mac Mac e Software 1
S [Javascript] Verifica separatore decimale sistema operativo Javascript 2
felino Windows 8.1: installare sistema operativo e programmi in due hard disk diversi Windows e Software 4
M Esiste un sistema di video sorveglianza simile? IP Cam e Videosorveglianza 1
W [Javascript] Eseguire script residente nel sistema da html remota Javascript 0
W Piccolo sistema per gestire alcune periferiche, Java o altro linguaggio? Java 8
V [Visual Basic] ottenere info su sistema Visual Basic 1
E Consiglio sistema di videosorveglianza IP Cam e Videosorveglianza 0
P Sistema per identificare utente se proviene da apertura app android Sviluppo app per Android 3
M consiglio sistema di videosorveglianza IP Cam e Videosorveglianza 1
loois Ho un problema nella creazione di un sistema di commenti in PHP PHP 11
xone [MySQL] Comparazione data per sistema di prenotazioni MySQL 23
papayablu Calcolatore scommesse a sistema per Android? Smartphone e tablet 4
A Sistema di comunicazione visiva IP Cam e Videosorveglianza 0
N Sistema di Help di Delphi 7 non funziona su Win10 Windows e Software 0
R Sistema Operativo Windows e Software 1
MarcoGrazia [Javascript] Sistema di caricamento dinamico in base allo scrolling Javascript 3
S Sistema di iscrizione al mio sito PHP 1
F come creare un sistema ranking tra due tabelle (TOMBOLA/BINGO) PHP 8
D Sistema di videocamere alta qualita IP Cam e Videosorveglianza 1
E sistema di autenticazione PHP 4
R Sistema di conteggio (somma) HTML e CSS 4
M "BOOTMGR is missing" - formattare HD di sistema Windows e Software 2
JackIlPazzo Sistema di login e registrazione avanzato PHP 1
M Sistema per gestione file. PHP 1
S Creare Sistema di API Request e Response libero e protetto PHP 7
Christian1977 Nuovo sistema operativo Android Smartphone e tablet 3
A File di sistema PHP 6
simonetta619 sistema operativo a 32 o a 64bit? Windows e Software 1
L [gratuito] cerco sistema news xml in php5 Offerte e Richieste di Lavoro e/o Collaborazione 1
L pdo e sistema crud PHP 1
P Sistema di consultazione orari PHP 2
A windows 8 - INTERRUZIONE IMPREVISTA SERVICES DI SISTEMA Windows e Software 0
C Sistema particolare di password PHP 5
F Sistema anti MySQLi Injection? PHP 6

Discussioni simili