Non mi chiamo proibid :roll:
Comunque, hai assegnato a $_SESSION["entrato"] il valore true al primo accesso dell utente?
Altrimenti ci credo che non funziona...
Printable View
Non mi chiamo proibid :roll:
Comunque, hai assegnato a $_SESSION["entrato"] il valore true al primo accesso dell utente?
Altrimenti ci credo che non funziona...
scusa <b>probid</b> comunque ho anche reso TRUE la var $_SESSION['entrato'] ma non funziona. qualcuno ha altre soluzioni?
posta il codice che usi, probabilmente hai sbagliato qualcosa li ciaooo.
Ecco il codice per intero
AIUTOOOOOCodice:<?php
session_start();
if($_SESSION["entrato"]==false)
{
$_SESSION["entrato"]=true;
if($p==1)
{
$k= ".";
}
if($p==2)
{
$k= "..";
}
if($p==3)
{
$k= "../..";
}
$text_file = "$k/altro/contatore.txt";
$dir_numeri = "$k/altro/num/";
$min_num = 8;
if (file_exists($text_file))
{
$fp = fopen("$text_file", "r+");
flock($fp, 1);
$visite = fgets($fp, 4096);
$visite += 1;
fseek($fp,0);
fputs($fp, $visite);
flock($fp, 3);
fclose($fp);
}
else
{
echo "Errore nell'apertura del file <br />";
exit;
}
?>
mettilo tra i tag php qua sul forum, senno non si capisce nulla :S
metti i tag php, cmq guardandolo al volo prova a cambiare:
if($_SESSION["entrato"]==false)
con:
if(!isset($_SESSION['entrato']))
...
ciaooo
Codice PHP:<?php
session_start();
if(!$_SESSION["entrato"])
{
$_SESSION["entrato"]=true;
if($p==1)
{
$k= ".";
}
if($p==2)
{
$k= "..";
}
if($p==3)
{
$k= "../..";
}
$text_file = $k."/altro/contatore.txt";
$dir_numeri = $k."/altro/num/";
$min_num = 8;
if (file_exists($text_file))
{
$fp = fopen("$text_file", "r+");
flock($fp, 1);
$visite = fgets($fp, 4096);
$visite += 1;
fseek($fp,0);
fputs($fp, $visite);
flock($fp, 3);
fclose($fp);
}
else
{
echo "Errore nell'apertura del file <br />";
}}?>
io userei questo, in modo da non dover richiamare error_reporting(0); :
in poche parole ho cambiato la terza riga del php aggiungendo la funzione isset() che verifica se la variabile(in questo caso $_SESSION["entrato"] ) e restituisce true o false.Codice PHP:<?php
session_start();
if(!isset($_SESSION["entrato"]))
{
$_SESSION["entrato"]=true;
if($p==1)
{
$k= ".";
}
if($p==2)
{
$k= "..";
}
if($p==3)
{
$k= "../..";
}
$text_file = $k."/altro/contatore.txt";
$dir_numeri = $k."/altro/num/";
$min_num = 8;
if (file_exists($text_file))
{
$fp = fopen("$text_file", "r+");
flock($fp, 1);
$visite = fgets($fp, 4096);
$visite += 1;
fseek($fp,0);
fputs($fp, $visite);
flock($fp, 3);
fclose($fp);
}
else
{
echo "Errore nell'apertura del file <br />";
}
}
?>
Meglio non usare errori:wink:
Non ho capito il discorso degli errori e dell'error_reporting().
Il ! non restituisce nessun errore ma provvede soltanto a verificare una condizione a svolgere le operazioni richieste a seconda del risultato.
Rappresenta una negazione davanti al nome di una variabile e serve a verificare che il suo valore sia FALSE oppure che non sia impostata.
Invece isset() verifica che la variabile sia impostata e abbia un valore, e non si interessa se questo sia TRUE o FALSE.
Nel contesto di questo script l'uso di entrambe le "funzioni" ("" perchè il ! è un operatore logico,isset() è una funzione) non varia l'esecuzione dello script, ma in un altro caso se impostassi $v=TRUE, if(!$v) restituirebbe FALSE e isset($v) restituirebbe TRUE.
Quindi c'è differenza :wink:
scusa probid, ma secondo me non fa differenza fra
if($_SESSION['entrato'] == false)
e
if(!$_SESSION['entrato'])
cmq aspetta ke provo...
EDIT:
come ti dicevo, è la stessa cosa... il contatore aumenta ad ogni cambiamento di pagina
dentro la funzione fopen hai messo una variabile che gia contiene le virgolette , e r+ va senza virgolette , sostituisci la if cosi
Codice PHP:if (file_exists($text_file))
{
$fp = fopen($text_file, a+);
flock($fp, 1);
$visite = fgets($fp, 4096);
$visite += 1;
fseek($fp,0);
fputs($fp, $visite);
flock($fp, 3);
fclose($fp);
}
fseek , fputs , flock, fgets...queste funzioni io non lo mai sentite , mi potrete spiegare a che servono ?
Assolutamente errato.Citazione:
e r+ va senza virgolette
Una ricerca no?Citazione:
fseek , fputs , flock...queste funzioni io non lo mai sentite , mi potrete spiegare a che servono ?
http://www.php.net/
E allora?Citazione:
dentro la funzione fopen hai messo una variabile che gia contiene le virgolette
@picciamico: al post #39 stavo solo rispondendo a NetSkin.
Comunque prova così:
Ciao!Codice PHP:if (file_exists($text_file))
{
$fp = fopen($text_file, "w+");
$visite = file_get_contents($text_file);
fputs($fp, ($visite+1));
fclose($fp);
}