Salvataggio username (era: Problema PHP 5.3.6)

  • Creatore Discussione Creatore Discussione Ewan
  • Data di inizio Data di inizio

Ewan

Nuovo Utente
2 Ott 2010
15
0
0
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" />


Poi la pagina MAIN (main.php):

PHP:
require_once("percorso mio per recupera i dati di connessione al DB"); //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

$control1=mysql_query("SELECT * FROM user WHERE nome='".$pg."' AND password='".$pass."'");//selezione utente da db

$pgnum=mysql_num_rows($control1);
$control=mysql_fetch_array($control1);
$ip=$_SERVER["REMOTE_ADDR"]; //recupero l'ip

if($pgnum!="1"){ //controllo se il pg esiste
header("Location: php_errori/utente_inesistente.php");
}else{
if($control[ban]=="1"){
header("Location: php_errori/utente_bannato.php");
}else{
if ($control[connesso]=="1"){
header("Location: php_errori/utente_collegato.php");	
}else{
if(($ip==$control[ip]) OR ($control[connesso]=="0")){
	
session_start();
session_register("nome della sessione");

$_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
}}}}
?>

Mentre le pagine interne dopo il LOGIN hanno tutte questo codice posto in alto prima di ogni cosa:

PHP:
session_start();

require_once('includiamo il collegamento con il DB');
require_once('include/controllo_sessione.php');

if((session_is_registered(nome della sessione))&&($_SESSION['nome'])){

$row=mysql_fetch_array(mysql_query("SELECT * FROM user WHERE nome='".$user."'"));


Dov'è he sbaglio? :( Perchè in PHP 5 non mi riconosce l'utente e mi dice UTENTE INESISTENZE.
 
PHP:
"SELECT * FROM user WHERE nome='".$pg."' AND password='".$pass."'");
//selezione utente da db
Guardando velocemente il tuo codice, vorrei sapere da dove prendi la var. $pg?

Ciao
 
Mi sa che devo fare una cosa del genere vero?

$pg=mysql_query("SELECT * FROM user WHERE nome='".$user."'");
 
Mi sa che devo fare una cosa del genere vero?

$pg=mysql_query("SELECT * FROM user WHERE nome='".$user."'");

Non mi riferivo tanto alla query, ma sei sicuro che i dati inviati dal form vengano ricevuti dalla pagina interessata? Provo ad usare il tuo codice e fare delle prove. Ciao
Potresti postare il codice completo delle pagine grazie
 
Ultima modifica:
Si perchè se metto su Altervista PHP 4 attivo mi funziona, se metto PHP 5 mi fa entrare ma non mi riconosce il luogo :(

Ti ringrazio gentilissimo, fammi sapere. Resto a disposizione per ogni chiarimento.
 
Si perchè se metto su Altervista PHP 4 attivo mi funziona, se metto PHP 5 mi fa entrare ma non mi riconosce il luogo :(

Ti ringrazio gentilissimo, fammi sapere. Resto a disposizione per ogni chiarimento.


Codice completo delle pagine grazie
 
LOGIN (login.php)
PHP:
<html>
<body>
  <div align="center">
  <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" />
          </div></td>
      </tr>
     
        <td></td>
        <td><div align="left"> 
            <input type="submit" name="entra" id="entra" value="Entra" />
          </div></td>
     
    </table>
</form>
</div>
</body>
</html>


MAIN (main.php)
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_array($control1);

$ip=$_SERVER["REMOTE_ADDR"]; //recupero l'ip

if($pgnum!='1'){ //controllo se il pg esiste
header("Location: php_errori/utente_inesistente.php");
}else{
if($control[ban]=='1'){
header("Location: php_errori/utente_bannato.php");
}else{
if ($control[connesso]=='1'){
header("Location: php_errori/utente_collegato.php");	
}else{
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
}}}}
?>

MAIN2 (main2.php)
PHP:
<?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='".$user."'"));
?>
<!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=utf-8" />
<title><?php echo $gioco_nome; ?></title>
<link rel="stylesheet" type="text/css" href="css/<?=$row[skin]?>/centrale.inc.css" />
<script language="JavaScript1.2" src="js/protezione.js"></script>
</head>
<frameset cols="220,*,220" frameborder="0" framespacing="0" border=0>
<?php
if(($row[imbarco]!="0")||($row[equipaggio]!="0")){
$nave=mysql_fetch_array(mysql_query("SELECT * FROM navi WHERE id='".$row['equipaggio']."' OR id='".$row['imbarco']."'")) or die (mysql_error()); //seleziono la nave
$luogo=mysql_fetch_array(mysql_query("SELECT * FROM luoghi WHERE tipo='nave".$nave['id']."'")) or die (mysql_error()); //seleziono il luogo
$block="1";
}
?>
<frameset rows="247,*,0" frameborder="0" framespacing="0" border=0>

<frame frameborder="no" marginwidth="0" marginheight="0" src="<?php if($block=="1"){ echo"rosa_nave.php?idluogo=$luogo[id]&naveid=$nave[id]";}else{echo"rosa.php?idluogo=1";}?>" name="rosa" scrolling="no" title="rosa" noresize />

<frame frameborder="no" marginwidth="0" scrolling="no" marginheight="0" src="scheda_ridotta.php" name="scheda"  title="scheda" noresize />

<frame frameborder="no" marginwidth="0" marginheight="0" src="data.php" name="data" scrolling="no" title="data" noresize />
<frame src="UntitledFrame-28"></frameset>
<frameset rows="120,*,22" frameborder="0" scrolling="no" framespacing="0" border=0>
 <frame frameborder="no" marginwidth="0" scrolling="no" marginheight="0" src="menu.php"  name="menu" title="menu" noresize />
 <frame frameborder="no" marginwidth="0" scrolling="auto" marginheight="0" src="<?php if($block=="1"){ echo"$luogo[pagina]";}else{echo"mappa.php";}?>" name="centrale" title="centrale"  noresize />
 <frame frameborder="no" marginwidth="0" scrolling="no" marginheight="0" src="stringa.php" name="stringa" title="stringa"  noresize />
</frameset>
<frameset rows="160,55,159" frameborder="0" framespacing="0" border=0>
<frame frameborder="no" marginwidth="0" marginheight="0" src="luogo.php?idluogo=1" scrolling="no" name="luogo" title="luogo" noresize />
<frame frameborder="no" marginwidth="0" marginheight="0" src="php_laterale/utente.php" scrolling="no" name="utente" title="utente" noresize />
<frame frameborder="no" marginwidth="0" scrolling="no" marginheight="0" src="pannello.php?idluogo=<?php if($block=="1"){echo"$luogo[id]";}else{echo"1";}?>" name="pannello"  title="pannello" noresize />
<frame frameborder="no" marginwidth="0" scrolling="no" marginheight="0" src="scheda_ridotta.php" name="scheda"  title="scheda" noresize />
</frameset>
<noframes></noframes>
</frameset>
</html>
<?php	
// Avviso di Sessione non Valida!	
}else{
	echo"<center><b>Accesso Negato!</b>
	</center>";
}
?>
 

Veramente strano, funziona, non ho php5, ma non penso sia quello il problema.
Cedo la parola agli esperti
Ciao
 
Dunque ho provveduto a fare delle modifiche ma sembra proprio che non và, vi posto il codice aggiornato sperando di trovare una soluzione:

MAIN (main.php)
Codice:
<?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:
Codice:
<?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. :(
 
PHP Userrname

Salve a tutti mi chiamo Fabio e sono nuovo del sito, probabilmente posto una richiesta nella sezione errata: dunque mi servirebbe una "funzione" (chiamiamola impropriamente così) dove una volta inserita la Username in una sezione protetta di un sito la stessa Username sia riportata nel campo nome e che questo sia immodificabile.
 
faccio prima a farvi vedere: www.lega2pini.it Sezione "Comunica la formazione"
una volta inserita la username, vorrei che la stessa fosse riportata nel campo "Nome"
 

Discussioni simili