Ciao a tutti,
premetto che non sono super esperto di PHP.
Ho un codice che ha sempre funzionato bene, nel cambiare server (con l'aggiornamento alla versione PHP 5.5.12) mi dà problemi.

In sostanza è uno script per il check login, prende user e pass inserite dall'utente, fa una select sul db mysql tramite odbc e se questo restituisce un valore allora l'utente entra. Sul db la pass è criptata sha1.

Il problema è che adesso si collega al db ma quando verifico che il numero di righe del risultato siano diverse da 1 tale check non funziona bene......

Ho provato a usare "mysqli" perchè mi diceva che era superato come codice ma nulla da fare.....non so se c'entra.

Qualcuno ha dei suggerimenti? GRAZIE MILLE.




Codice PHP:

<?php
ob_start
();
if(!isset(
$_SESSION))  {session_start();}

$log=mysqli_connect("localhost","xxxxxx","xxxxxx","sito")or die("Connessione non riuscita con il server MySql");

// se esistono i cookie verifico che l'user e la pas salvate siano ancora esistenti nel db

if(isset($_COOKIE['nome']) && isset($_COOKIE['nome2'])){
    
$nick $_COOKIE['nome'];    
    
$pass $_COOKIE['nome2']; 
   }
else{    
// i cookie non esistono quindi verifico i dati del form di login  
if (!isset($_POST['nick']) || !isset($_POST['pass'])) {
       
header("location:main_login.php");       die;  
  }  
if (empty(
$_POST['nick']) || empty($_POST['pass'])) {       
     
header("location:main_login.php");        die;    
}
    
// username and password inviati dal form
$nick=strip_tags($_POST['nick']);    //rimuove eventuali tag html
$pass=strip_tags($_POST['pass']);
 
// protezione MySQL injection
$nick stripslashes($nick);  //rimuove le backslash
 
$pass stripslashes($pass);   
$nick mysql_real_escape_string($nick);    
$pass mysql_real_escape_string($pass);    
$pass sha1($pass);
}

// cerco le credenziali nel db su mysql
$sql="SELECT * FROM users WHERE nickname='$nick' and password='$pass'";
$result=mysqli_query($log$sql);

# SE NON TROVA TALE OCCORRENZA EFFETTUA REDIRECT AL LOGIN

if(mysql_num_rows($result) != 1)
{    
// cancello eventuali cookie che esistevano ma non sono più validi  
  
if(isset($_COOKIE['nome']) && isset($_COOKIE['nome2'])){ 
       
setcookie ("nome"""time() - 3600);     
       
setcookie ("nome2"""time() - 3600);    }   
 
mysql_close();    
header("location:main_login.php");  
  die;}

# CREDENZIALI OK - NEL CASO IN CUI L'OCCORRENZA ESISTE CREA LA SESSIONE

$_SESSION["autorizzato"] = 1;
$_SESSION['nick'] = $nick;
if(isset(
$_POST['ricorda']) && $_POST['ricorda']=="R"){  
  
setcookie("nome"$nicktime()+60*60*24*365*2);     // 2 anni 
 
setcookie("nome2"$passtime()+60*60*24*365*2);
}

// Redirect alla pagina riservata (con check ogni pag)   
 
header("location:index.php");