• User Attivo

    Query select compatibile con php5

    ciao questa query da quando il sito è passato ad un server con php5 non funziona più, mi sapete dire che parte del codice devo cambiare per adattarlo all'ultima versione di php?

    <?php
    if ($_POST['username'] && $_POST['password']){

    $aut = "SELECT id_login from a_login where username='".$_POST['username']."' AND password='".$_POST['password']."' ";
    $rs_aut = mysqli_query($aut, $conn);
    $row_aut=mysqli_fetch_array($rs_aut);

    if (mysql_num_rows($aut) == 0){
    $msg_login="utente non riconosciuto1";
    }
    if ($row_aut['attivo']=='no'){
    $msg_login="non hai confermato la registrazione";
    }
    else {
    $_SESSION['idlogin']=$row_aut['id_login'];
    }

    if ($_SESSION['idlogin']) {
    $sql_ses = "SELECT * from a_login where id_login = '".$_SESSION['idlogin']."' ";
    $rs_ses = mysqli_query($sql_ses, $conn);
    $row_ses=mysqli_fetch_array($rs_ses);

    if (mysql_num_rows($sql_ses) == 0){
    unset ($_SESSION['idlogin']);
    }
    if (mysql_num_rows($aut) == 0){
    $msg_login="utente non riconosciuto2";
    }

    if ($row_ses['attivo']=='no'){
    $msg_login="non hai confermato la registrazione";
    }

    elseif ($row_ses['admin']=='no'){
    header("Location: utente/utente_main.php");
    }

    elseif ($row_ses['admin']=='si'){
    header("Location: admin/admin_main.php");
    }

    }

    }
    ?>


  • User Attivo

    COsa intendi per "non funziona più"? Non ha più output?

    Intanto, una cosa che ti consiglio di cambiare: in ogni if($variabile) metti if(isset($variabile)), per esempio, all'inizio:

    if (isset($_POST['username']) && isset($_POST['password']))
    

  • User Attivo

    ciao meis,
    succede che arriva fino a qui:

    if (mysql_num_rows($aut) == 0){
    $msg_login="utente non riconosciuto1";
    }

    e poi si ferma.
    Praticamente a video mi compare il messaggio "utente non riconosciuto1" quando invece nel db risulta essere un utente registrato

    mysql_num_rows($aut) mi dovrebbe trovare 1 record e invece mi da 0, ma nel db esiste un utente con quella username e password


  • User Attivo

    la cosa che mi fa impazzire da questa mattina è che il sito funzionava benissimo quando stava su un server con php 4.3.2 ma da quando è passato su di un server con php 5.2.2 molte cose non funzionano più


  • User Attivo

    L'argomento dovrebbe essere $rs_aut


  • User Attivo

    modificato codice ma si ferma sempre allo stesso punto:

    <?php
    if (isset($_POST['username']) && isset($_POST['password'])){

    $aut = "SELECT * from a_login where username='".$_POST['username']."' AND password='".$_POST['password']."' ";
    $rs_aut = mysqli_query($aut, $conn);
    $row_aut=mysqli_fetch_array($rs_aut);
    
    
    if (mysql_num_rows($rs_aut) == 0){
    	$msg_login="utente non riconosciuto1";
    }
    elseif (isset($row_aut['attivo'])=="no"){
    

    $msg_login="non hai confermato la registrazione";
    }
    else {
    $_SESSION['idlogin']=$row_aut['id_login'];
    }

    if ($_SESSION['idlogin']) {
    $sql_ses = "SELECT * from a_login where id_login = '".$_SESSION['idlogin']."' ";
    $rs_ses = mysqli_query($sql_ses, $conn);
    $row_ses=mysqli_fetch_array($rs_ses);

    if (mysql_num_rows($rs_ses) == 0){
    	unset ($_SESSION['idlogin']);
    }
    

    if (mysql_num_rows($rs_aut) == 0){
    $msg_login="utente non riconosciuto2";
    }

    if (isset($row_ses['attivo'])=="no"){
    $msg_login="non hai confermato la registrazione";
    }

    elseif (isset($row_ses['admin'])=="no"){
    header("Location: utente/utente_main.php");
    }

    elseif (isset($row_ses['admin'])=="si"){
    header("Location: admin/admin_main.php");
    }

    }

    }
    ?>


  • User Attivo

    Non da messaggi d'errore, semplicemente quando mi loggo non mi rindirizza nella pagina admin, rimango in home e non succede niente.

    mi ha dato il messaggio "utente non riconosciuto" che corrisponde alla parte del codice

    (mysql_num_rows($rs_aut) == 0){
    $msg_login="utente non riconosciuto1";
    }

    ma sul db quell'utente c'è, come fa a non riconoscerlo?


  • User Attivo

    se vi può essere utile per aiutarmi vi do queste altre informazioni:

    SEVER CON PHP 4.4.9 DOVE IL SITO FUNZIONAVA CORRETTAMENTE
    vuvuvu.livingadamis.com/phpinfo.php

    SEVER CON PHP 5.3.2 DOVE IL SITO NON FUNZIONA BENE
    vuvuvu.adamis.it/phpinfo.php


  • User Attivo

    Quello che mi fa strano non è tanto che il codice non ti funzioni con il passaggio a PHP5, quanto il fatto che ti funzionasse con PHP4.
    Usi delle funzioni predefinite di PHP5 come mysqli_XXXX che non esistevano nella versione precedente.
    mysqli_query, a differenza di mysql_query, come argomenti vuole prima l'identificativo della connessione e poi la stringa.
    Quindi
    $rs_aut = mysqli_query($aut, $conn);

    deve diventare

    $rs_aut = mysqli_query($conn, $aut);

    altrimenti ti ritornerà sempre il valore FALSE. A cascata tutti gli altri valori saranno FALSE.
    Ciao.