Shinistat e index.php

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
GuRpS
Linux 2.x
Linux 2.x
Messaggi: 326
Iscritto il: ven 14 mag 2004, 0:00
Località: Varese
Contatta:

Shinistat e index.php

Messaggio da GuRpS »

Salve a tutti ho (tanto epr cambiare un problema)...

Se metto il "coso" di shinistat nella index.php, per come e' messa ora (ovvero apro tutto nella parte centrale) ogni volta che viene aperta una pagina il contatore fa un click...quindi se guardo 3 pagine fa 3 click anche se io il sito l'ho visitato solo ua volta...

Qcuno ha per caso idea di come si possa fare a porre rimedio a questo "bug"?

Avatar utente
IceSlack
Linux 4.x
Linux 4.x
Messaggi: 1313
Iscritto il: dom 30 ott 2005, 13:27

Messaggio da IceSlack »

dove lo hai messo? noncpaisco mi faresti uno schema?

Avatar utente
touchstyle
Linux 4.x
Linux 4.x
Messaggi: 1085
Iscritto il: gio 13 mag 2004, 0:00
Slackware: 12.1
Kernel: 2.6.27
Desktop: KDE
Località: Portogruaro [VE]
Contatta:

Messaggio da touchstyle »

Io ho messo il codice nel footer che vado a includere in ogni pagina,ed ho notato anch'io lo stesso problema, nel senso che se richiamo due volte la stessa pagina, viene incrementato il contatore.
Ho intenzione di scrivere un contatore "serio" che non usi mysql ma solo file di testo, tanto ci vuol veramente poco. Se vuoi poi te lo posto.

Ciao,
Touch.

Avatar utente
GuRpS
Linux 2.x
Linux 2.x
Messaggi: 326
Iscritto il: ven 14 mag 2004, 0:00
Località: Varese
Contatta:

Messaggio da GuRpS »

Grazie sarebbe una gran bella cosa...

@IceSlack:
il problema e' che se metto nella home.php il codice di shinistat oni volta che una qsiasi pagina viene caricata (visto che la struttura esterna rimane la stessa mentre i vari contenuti vengono caricati nella parte centrale) viene anche incrementato il contatore di shinistat...
Cosi' si "falsano" i risultati delle visite perche' se guardi 3 pagine del sito incrementi di 3 "click" mentre in realta' il "click" e' unico...

L'unica possibilita' sarebe includerlo nella "main.html" che sarebbe la pagina che viene caricata se nessuna variabile e' scelta e che quindi dvrebbe essere caricata una volta sola all'inizio (a meno che la gente non ci torni...)...boh...

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

Messaggio da aschenaz »

Questo è quello che ho fatto io. E' cross-platform perché è di una specie di cms che sto elaborando:

Codice: Seleziona tutto

session_start();

$counterfile=getcwd().DIRECTORY_SEPARATOR."etc/cnt.txt";
if(!file_exists($counterfile)) {
touch($counterfile);
if(DIRECTORY_SEPARATOR=="/") chmod($counterfile,0777);
$cop=fopen($counterfile,"r+");
$acc=0;
fputs($cop,$acc);
fclose($cop);
}
if(!isset($_SESSION["counter"])) {
	$cfop=fopen($counterfile,"r+");
	$acc=fgets($cfop,10);
	$acc++;
	fseek($cfop,0);
	fputs($cfop,$acc);
	fclose($cfop);
	$_SESSION["counter"]=$acc;
}
E poi, nel posto preferito e con lo stile voluto:

Codice: Seleziona tutto

echo "Accessi n. ",$_SESSION["counter"];
Naturalmente fa riferimento ad una sub-directory etc...
NON incrementa il numero col semplice aggiornamento.
Volendo essere più pignoli, si può includere qualche riga di codice per evitare l'incremento quando a visitare è sempre lo stesso ip...
Ciao,
nino

Rispondi