Buongiorno, oggi vi proporrò una strana nonché curiosa cosa che mi accade con PHP 5, credetemi non so più cosa fare.. Premetto, sto lavorando su un sito nel Hosting Altervista il problema però è nel LOGIN e nel riconoscimento dell?utente nell?area Privata con PHP 5 poichè con PHP 4 funziona.
Dunque iniziamo, io ho la pagina LOGIN (login.php) seguente:
[PHP]<form action="main.php" method="post">
<table cellpadding="3" cellspacing="3" width="200">
<tr onmouseover="this.className = 'hlt';" onmouseout="this.className = 'hlu';" class="hlu">
<td><div align="center">Nome:</div></td>
<td><div align="left">
<input type="text" name="pg" id="pg" />
</div></td>
</tr>
<tr onmouseover="this.className = 'hlt';" onmouseout="this.className = 'hlu';" class="hlu">
<td><div align="center">Pass:</div></td>
<td><div align="left">
<input type="password" name="pass" id="pass" max="32" /> [/PHP]
MAIN (main.php)
<?php
require_once("config.php"); //connessione al db
$giorno=date('j');
$mese=date('M');
if($mese=="Jan"){$meseOK="Gennaio";}
if($mese=="Feb"){$meseOK="Febbraio";}
if($mese=="Mar"){$meseOK="Marzo";}
if($mese=="Apr"){$meseOK="Aprile";}
if($mese=="May"){$meseOK="Maggio";}
if($mese=="Jun"){$meseOK="Giugno";}
if($mese=="Jul"){$meseOK="Luglio";}
if($mese=="Aug"){$meseOK="Agosto";}
if($mese=="Sep"){$meseOK="Settembre";}
if($mese=="Oct"){$meseOK="Ottobre";}
if($mese=="Nov"){$meseOK="Novembre";}
if($mese=="Dec"){$meseOK="Dicembre";}
$ora=date('H:i');
$anno=date('Y');
$data="$giorno"." $meseOK"." $anno"." $ora";
$data2="$giorno"." $meseOK"." $anno"." $ora";//Calcolo la data testuale
$pg=$_POST['pg'];
$pass=$_POST['pass'];
$control1=mysql_query("SELECT * FROM user WHERE nome='".$pg."' AND password='".$pass."'");//selezione utente da db
$pgnum=mysql_num_rows($control1);
$control=mysql_fetch_assoc($control1);
$ip=$_SERVER["REMOTE_ADDR"]; //recupero l'ip
if($pgnum!='1'){ //controllo se il pg esiste
header("Location: php_errori/utente_inesistente.php");
exit();
}
if($control[ban]=='1'){
header("Location: php_errori/utente_bannato.php");
exit();
}
if($control[connesso]=='1'){
header("Location: php_errori/utente_collegato.php");
exit();
}
if(($ip==$control['ip']) OR ($control['connesso']=='0')){
session_start();
$_SESSION['nome'] = $control['nome'];
$user = mysql_real_escape_string($_POST['pg']);
$user = htmlentities ($_POST['pg']);
$pass = mysql_real_escape_string($_POST['pass']);
$pass = htmlentities ($_POST['pass']);
$user=$_SESSION['nome'];
$now=time();//recupero time
$insert=mysql_query("INSERT INTO accessi (nome,data,data2,ip,stato) VALUES ('".$user."','".$data."',NOW(),'".$ip."','entrato')");//inserisci accesso
$update=mysql_query("UPDATE user SET time='".$now."', luogo='Mappa', luogo_a='Mappa', ullacc='".$data2."', connesso='1', ip='".$ip."', ultimaexp = '".$now."' WHERE nome='".$user."'");//aggiorno valori
header('Location: main2.php', true);//mando la prima pagina
}
?>
Codice inserito in alto in ogni pagine dopo il login:
<?php
session_start();
require_once('include/include.php');
require_once('include/controllo_sessione.php');
if(isset($_SESSION['nome']) && !empty($_SESSION['nome'])){
$row=mysql_fetch_array(mysql_query("SELECT * FROM user WHERE nome='".$_SESSION['nome']."'"));
?.?>
Come prima, mi fa accedere però non riconosce il Luogo e in alcune pagine sembra proprio che non riconosce nemmeno l'utente.