- Home
- Categorie
- Coding e Sistemistica
- Coding
- Query select compatibile con php5
- 
							
							
							
							
							
Query select compatibile con php5ciao 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");
 }} } 
 ?>
 
- 
							
							
							
							
							
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']))
 
- 
							
							
							
							
							
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 registratomysql_num_rows($aut) mi dovrebbe trovare 1 record e invece mi da 0, ma nel db esiste un utente con quella username e password 
 
- 
							
							
							
							
							
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ù 
 
- 
							
							
							
							
							
L'argomento dovrebbe essere $rs_aut 
 
- 
							
							
							
							
							
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");
 }} } 
 ?>
 
- 
							
							
							
							
							
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? 
 
- 
							
							
							
							
							
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.phpSEVER CON PHP 5.3.2 DOVE IL SITO NON FUNZIONA BENE 
 vuvuvu.adamis.it/phpinfo.php
 
- 
							
							
							
							
							
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.