Allora... diciamo che questo codice sotto andrebbe riscritto:) io ti posso dare, come fanno tutti, dei suggerimenti ma non riscriverti tutto Metto nel codice dei commenti dai quali potrai fare delle modifiche
<?php
require_once("config.php"); //connessione al db
$giorno=date('j');
$mese=date('M');
/*
al posto di un sacco di if potresti mettere uno switch, ma così com'è funziona lo stesso
*/
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');
//non servono i doppi apici quando concateni
$data="$giorno"." $meseOK"." $anno"." $ora";
$data2="$giorno"." $meseOK"." $anno"." $ora";//Calcolo la data testuale
/*
mysql_real_escape va fatto qui e non dopo; $user va inizializzata qui
*/
$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
/*
Qui basterebbe un if con le condizioni in OR, ma così funziona lo stesso
*/
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'];
// questo va fatto sopra
$user = mysql_real_escape_string($_POST['pg']);
//questo è inutile e sbagliato qui
$user = htmlentities ($_POST['pg']);
//questo va fatto sopra
$pass = mysql_real_escape_string($_POST['pass']);
//questo è inutile e sbagliato qui
$pass = htmlentities ($_POST['pass']);
//questa variabile va sempre assegnata sopra
$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
}
?>
Dei consigli se posso: non copiare codice di qua e di la su internet; cerca di capire prima da te cosa è sbagliato e poi chiedi sui forum: questo è importante per capire davvero qualcosa col tempo.
Comprati un buon libro sul php e studialo! Mi raccomando! Per diventare un buon programmatore ci vuole una volontà di ferro...