no,no mi riferisco proprio alla variabile $PHPSESSID.
Prova questo codice e dimmi che ne deduci:
Codice PHP:
<?php
if(session_id()=="") {
session_start();
}
include "includes/contaccessi.php";
function ConnectDB() {
$dbhost = "localhost:3306";
$dbname = "visitesitodb";
$dbuser = "root";
$dbpass = "root";
$conn = mysql_connect($dbhost,$dbuser,$dbpass);
if($conn) {
// CONNESSIONA RIUSCITA
if(mysql_select_db($dbname,$conn)) {
// DATABASE SELEZIONATO
return $conn;
} else {
return false;
}
} else {
return false;
}
}
function contaccessi() {
$str = "
PAGINA GIA' VISITATA</p>";
$conn = ConnectDB();
if($conn) {
$sql2 = "SELECT COUNT(*) FROM visitesito WHERE ipaddress='".addslashes($_SERVER['REMOTE_ADDR'])."' AND requesturi='".addslashes($_SERVER['REQUEST_URI'])."' AND sessionid='".addslashes(session_id())."'";
$res2 = mysql_query($sql2, $conn);
if($res2) {
if(mysql_num_rows($res2)==1) {
$riga = mysql_fetch_row($res2);
if($riga[0]==0) {
$sql = "INSERT INTO visitesito (oraaccesso, ipaddress, requesturi, useragent, sessionid) VALUES (NOW(), '".addslashes($_SERVER['REMOTE_ADDR'])."', '".addslashes($_SERVER['REQUEST_URI'])."', '".addslashes($_SERVER['HTTP_USER_AGENT'])."', '".addslashes(session_id())."')";
$res = mysql_query($sql, $conn);
if($res) {
if(mysql_affected_rows($conn)==1) {
$str = "
PRIMA VISITA A QUESTA PAGINA</p>";
}
}
}
}
}
}
return $str;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<h1>Ecco i dati del pc da cui sei connesso</h1>
<?php echo $str; ?><?php echo $pippo; ?></p>
<h2>PC Utente</h2>
<?php
echo "REMOTE ADDR: ".$_SERVER['REMOTE_ADDR'];
echo "
REMOTE PORT: ".$_SERVER['REMOTE_PORT'];
echo "
REQUEST URI: ".$_SERVER['REQUEST_URI'];
echo "
REQUEST METHOD: ".$_SERVER['REQUEST_METHOD'];
echo "
HTTP USER AGENT: ".$_SERVER['HTTP_USER_AGENT'];
echo "
PHP SESSION ID: ".$PHPSESSID;
echo "
--- SESSION ID: ".session_id();
echo "
PHP SELF: ".$_SERVER['PHP_SELF'];
?>
</p>
<h2>Server</h2>
<?
echo "SERVER ADMIN: ".$_SERVER['SERVER_ADMIN'];
echo "
".$_SERVER['SERVER_NAME'];
echo "
".$_SERVER['SERVER_PORT'];
echo "
".$_SERVER['SERVER_PROTOCOL'];
echo "
".$_SERVER['SERVER_SIGNATURE'];
echo "
".$_SERVER['SERVER_SOFTWARE'];
echo "
DOCUMENT ROOT: ".$_SERVER['DOCUMENT_ROOT'];
echo "
HTTP HOST: ".$_SERVER['HTTP_HOST'];
echo "
HTTP CONNECTION: ".$_SERVER['HTTP_CONNECTION'];
echo "
HTTP REFERER: ".$_SERVER['HTTP_REFERER'];
echo "
QUERY STRING: ".$_SERVER['QUERY_STRING'];
?>
</p>
</body>
</html>
Avvia il browser e assicurati di avere i cookies attivi altrimenti session_start non funziona correttamente, quando carichi questo file la prima volta, la variabile $PHPSESSID non ha alcun valore, se ricarichi semplicemente la pagina, $PHPSESSID prende lo stesso valore di session_id().
Dopo diverse prove sono giunto alla conclusione che $PHPSESSID non ha un valore al primo avvio perchè legato ad un cookies generato da PHP.
Akito