Passaggio da mysql a mysqli

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti.
A seguito dell'aggiornamento del sito, dell'hosting, versione php, sono "costretto" a aggiornare tutte le procedure scritte da mysql a mysqli.
Nessun problema relativamente al classico file config.php per la connessione al db, mentre non capisco come mai non funzioni la pagina successiva...
Struttura: pagina di login per inserimento user e pwd; passaggio dei due dati alla pagina verify.php che controlla che le due informazioni siano presenti nel db.
Se tutto è corretto vengo indirizzato alla pagina partenza.php altrimenti ritorno alla pagina di login.
Semplice... ma non riesco a far funzionare correttamente la pagina verify.php.
Di seguito i codici:
- Index.php:
PHP:
<?php include('connect2.php'); ?>
<!DOCTYPE html>
<html>
<head>
 
    <title>Collegati per amministrare il sito </title>
 
    <!--Pannello di gestione creato da Mel Riccardo-->
    <link href="admin.css" rel="stylesheet" type="text/css" />
 
<link href="backoffice.css" rel="stylesheet" type="text/css">
</head>
<body>
 
    <form id="login" action="verify.php" method="post">
        <fieldset id="inputs">
            <input id="username" name="username" type="text" placeholder="Username" autocomplete="off" autofocus required>
            <input id="password" name="password" type="password" placeholder="Password" autocomplete="off" required>
        </fieldset>
        <fieldset id="actions">
            <input type="submit" id="submit" value="Collegati">
            <a href="../index.html" id="back" class="h7b">Ritorna al sito</a>
        </fieldset>
    </form>
 
</body>
</html>
- verify.php:
PHP:
<?php session_start();

include 'connect.php';


$username = $_POST['username'];



//sha1 cifra la password anche qui in questo modo corrisponde con quella del db
$password = sha1($_POST['password']);



$query = ("SELECT * FROM utentibo WHERE userName = '$username' AND password = '$password'");

$preso = $mysqli->query($query);



$record = $result->fetch_array($preso);

/*Prelevo l'identificativo dell'utente */
$cod=$record['userName'];
$unico = $record['unico'];

 
/* Effettuo il controllo */
if ($cod == "") {$trovato = 0 ;}
else{ $trovato = 1; }


 
/* Username e password corrette */
if($trovato === 1) {
 
 /*Registro la sessione*/
  $_SESSION['autorizzato'];
 
  $_SESSION["autorizzato"] = sha1($cod + $unico);
 
  /*Registro il nome dell'utente*/
  $_SESSION['cod'] = $cod;
 
 /*Redirect alla pagina riservata*/
   echo '<script language=javascript>document.location.href="partenza.php"</script>';
 
} else {
 
/*Username e password errati, redirect alla pagina di login*/
 echo '<script language=javascript>document.location.href="index.php"</script>';
 
}

?>

Sicuramente sarà una sciocchezza, ma mi occorre capire bene cosa ho sbagliato, visto che poi le pagine coinvolte nel cambiamento sono circa un centinaio...

Grazie per l'aiuto
 

mr.x

Utente Attivo
9 Apr 2016
252
25
28
Nessun problema relativamente al classico file config.php per la connessione al db,..

ciao
Sei sicuro di aver poui incluso correttamente il file per la connessione al db?
Nel codice che hai postato leggo l inclusione di connect2.php e connect.php
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Si, avevo fatto un file connect2 per provare, poi visto che funziona (su index non da errori) ho cambiato il file connect.php, per non cambiare il link su tutte le pagine.
 

mr.x

Utente Attivo
9 Apr 2016
252
25
28
Ma in index non hai nessuna query...

Posta il codice che hai in connect.php
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Eccolo:
PHP:
<?php

// Creo la connessione

$conn = new mysqli('***(server)***','**(user)***','***(password)***','kf2idahk_teatro7_com_catering');
  if ($conn->connect_error) {
    die('Errore di connessione (' . $conn->connect_errno . ')' . $conn->connect_error);
  }else{
    $conn->set_charset("utf8");
}


?>
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Comunque per sicurezza, visto che abbiamo cambiato anche il piano di hosting, sto domandando al provider (Register) che i dati relativi al server, utente e password siano corretti. Non vorrei che tutto fosse dovuto al fatto che sto indicando un server sbagliato...
Grazie di avermi fatto venire il dubbio, intanto!
A presto
 

mr.x

Utente Attivo
9 Apr 2016
252
25
28
Modifica così
PHP:
<?php

// Creo la connessione

$mysqli = new mysqli('***(server)***','**(user)***','***(password)***','kf2idahk_teatro7_com_catering');
  if ($mysqli->connect_error) {
    die('Errore di connessione (' . $conn->connect_errno . ')' . $conn->connect_error);
  }else{
    $mysqli->set_charset("utf8");
}


?>

cambia il $conn con $mysqli dato che poi nei file è quello che richiami (altrimenti cambi le query es. $preso = $conn->query($query); )
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Ok, chiaro il primo concetto.
Ho cambiato nel file connect.php la variabile $conn con $mysqli.
Ricevo il messaggio:
"la pagina non funziona. teatro7.com non è in grado di gestire la richiesta. http error 500"...
Attendo per sicurezza la conferma dei dati server, user e password del db dal provider, almeno parto da dati certi, poi ci risentiamo.
Intanto grazie
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Eccomi qui...
I dati per la connessione erano esatti, quindi, basandomi su quanto ho trovato sul vostro sito relativamente alle connessioni mysqli e relative interazioni con i db, ho riscritto le porzioni di codice relative sia al file connect.php che allae successive query contenute in verify.php.
E ora funziona.
Una domanda: immagino che se utilizzo una connessione ad oggetti (si dice così?) nel file connect.php non posso mantenere poi le query procedurali, vero?
A occhio, dovrò cambiare tutti i 100 e passa file...
Mi confermate?
Grazie, visto che la traccia (cambiare il nome della variabile di connessione da $conn a $mysqli mi ha dato lo spunto giusto per capire almeno una delle cose che erano sbagliate...
A presto (visto che dovendo aggiornare tutto, con script anche piuttosto complessi) magari avrò ancora bisogno di qualche suggerimento...
Se serve, potrò postare i codici funzionanti. Ditemi voi.
 

Arcanto

Nuovo Utente
19 Ott 2018
5
0
1
Mi riallaccio a questa discussione in quanto ho un problema simile nel passaggio da mysql a mysqli.
Gestendo un sito immobiliare, avevo sviluppato tante funzioni ad hoc ed inserite in un file display.php tramite la funzione function che vengono poi richiamate dalle varie pagine.
In questa fase la maggior parte delle pagine dove non richiedono la include del file display.php tutte le query mi funzionano, mentre nelle pagine dove richiamo la funzione non viene visualizzato nulla. Sicuramente è un errore mio e quindi chiedevo un piccolo aiuto. Non sono proprio riuscito a trovare la soluzione.
Queste la struttura della pagina "visualizza-annunci-milano.php"
<?php
include "config.php" // all'interno tuti i parametri del database
?>
<body>
<html>

<div>
... codice che legge altri dati da database // funziona
<?php visualizza_annunci (milano, vendite); ?> // non va visualizzare nulla
... codice che legge altri dati da database // funziona
</div>

</html>
</body>
Se provo a mettere include "connect.php" nel diplay.php il sito non visualizza nulla.

Possibile che non funziona una cosa del genere?
Grazie. Buona giornata e buon lavoro
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
<body>
<html>
forse sono rovesciati, il body dovrebbe stare all'interno di html

... codice che legge altri dati da database // funziona
<?php visualizza_annunci (milano, vendite); ?> // non va visualizzare nulla
... codice che legge altri dati da database // funziona
cosa fa "visualizza_annunci" ?

Se provo a mettere include "connect.php" nel diplay.php il sito non visualizza nulla.
ma se legge altri dati dal db, la connessione é già presente …. salvo capire come viene gestita tra i vari script

la pagina bianca è dovuta ad un errore e la prima cosa che si dovrebbe fare in uno sviluppo e capire come gestire, dove sono e come leggere gli errori
 

Arcanto

Nuovo Utente
19 Ott 2018
5
0
1
Grazie Marino51.
body e html sono corretti. ;) Le ho scritte male qui.
visualizza_annunci fa questo:
PHP:
<?php function visualizza_annuncio($citta, $tipo_annuncio) {

   $SQL_1 = "SELECT * FROM annuncio where archivio = 0 and cancellato = 0 and venduto = 0 and disattivo = 0";
   if ($citta <> "") {
       $SQL_1 = $SQL_1 . " and comune = '". $citta . "'";   
   }
   if ($tipo_annuncio <> "") {
       $SQL_1 = $SQL_1 . " and tipo_annuncio = '". $tipo_annuncio . "'";   
   }
 
   $SQL_1 = $SQL_1 . " order by posizione asc";

   echo ($SQL_1);
 
   $result = $conn->query($SQL_1);
   if ($result->num_rows > 0) {
       while($row = $result->fetch_assoc()) {
           echo "ciclo";
           $id_annuncio = $row['IdAnnuncio'];
           echo $id_annuncio;
          
           // qui tutto il codice per far visualizzare l'annuncio con immagine e dati
       }
   } else {
       echo "non trovato";
   }
?>
Si ferma alla
PHP:
echo ($SQL_1)

Come dicevo... sto decodificando tutte le funzioni che prima avevo fatto con connessione mysql
Grazie intatno
 
Ultima modifica di un moderatore:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.449
338
83
@Arcanto
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
php-png.5742
quando posti del codice PHP e il tag
code-gif.5743
per il codice generico, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.5744


Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie

Per questa volta te lo sistemo io ma mi raccomando per il futuro
 

mr.x

Utente Attivo
9 Apr 2016
252
25
28
Ciao Arcanto, ma che errore ricevi? li hai controllati i log?

Nel codice postato mi sembra manchi una "}", a parte questo controlla di aver incluso correttamente le istruzioni di connessione al DB (visto che fino al echo precedente dici che funziona). Prova a scrivere l'istruzione di connessione direttamente nella funziona e vedi se così va.

Ti consiglio anche di costruire la query utilizzando una variabile come condizione spostando le if prima della dichiarazione di $SQL_1

PHP:
<?php function visualizza_annuncio($citta, $tipo_annuncio) {

if ($citta <> "") {
     $citta = " and comune=".$citta;  
     }
if ($tipo_annuncio <> "") {
     $tipo_ann =" and tipo_annuncio=".$tipo_annuncio;  
   }

$addcondition=$citta;
$addcondition .=$tipo_ann;
$addcondition .=" order by posizione asc";

$SQL_1 = "SELECT * FROM annuncio where archivio = 0 and cancellato = 0 and venduto = 0 and disattivo = 0 $addcondition ";

echo ($SQL_1);

}
 
Discussioni simili
Autore Titolo Forum Risposte Data
Albertoesse Problemi passaggio valori da un Form ad Una classe con query mysql PHP 12
tanaka Editor wysiwyg e passaggio dati php mysql PHP 17
M Passaggio variabili array php su un tasto jq PHP 3
F Consigli passaggio a nuova piattaforma CMS (Content Management System) 0
F Consigli passaggio a nuova piattaforma SEO e Posizionamento 3
MarcoGrazia Metodi static e passaggio di variabili PHP 1
M Passaggio Valori checbox in textarea Javascript 1
Barierta Testo a comparsa con passaggio del mouse Javascript 17
N Problema passaggio variabili tra pagine PHP 4
P Passaggio id php a javascript PHP 6
M errore dopo passaggio Php 7.2 PHP 6
M Passaggio da una pagina php ad un altra PHP 0
P Passaggio di parametro al metodo: public void run() Java 3
T script jquery non funziona più dopo il passaggio a MVC jQuery 5
R passaggio variabili tra modulo genitore a figlio jQuery 3
J Passaggio variabile tra 2 file php PHP 15
zorro [PHP] passaggio di variabili PHP 7
Z Passaggio php 5.6 a php 7 PHP 1
B [Visual Basic] Passaggio variabili da un progetto all'altro (Visual Studio 2017 C#/SQL) Visual Basic 0
R [PHP] Testo su immagine al passaggio del mouse PHP 2
andreas88 Problema installazione passaggio 2 Magento Magento 0
C Redirect passaggio a https Web Server 1
K [PHP] Passaggio Variabili Senza Refresh Di Pagina PHP 1
A Problema nel passaggio di una animazione da flash a animate Flash 9
S [HTML] Div visibile o nascosto al passaggio del mouse HTML e CSS 3
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP] Passaggio da webapp online a webapp offline PHP 2
V [Javascript] Passaggio valore da popup a pagina madre Javascript 5
V Passaggio codice html a javascript Javascript 8
G [HTML] Variazione di posizione di un tag <a> a passaggio del mouse di un altro tag <a> HTML e CSS 12
ESABOT Problema passaggio dati tra activity tramite intent Sviluppo app per Android 1
F [ASP] passaggio parametri form metodo post Classic ASP 6
3_g passaggio sito da ASP a PHP PHP 9
elpirata [PHP] Passaggio di dati tra variabili PHP 1
A Problema con getCurrentPosition e passaggio variabili da javascript a PHP Javascript 3
T Passaggio dati con ajax ad altra pagina Ajax 6
WebDr [ASP] Passaggio di variabili in un link tra apici ed & Classic ASP 5
M Passaggio valore da una pagina PHP all'altra tramite ajax Ajax 1
T [PHP] Passaggio dati sensore con ajax e exec, lento! PHP 0
P [HTML] Passaggio Url tramite Form non funziona più HTML e CSS 8
Gaetano1991h Passaggio da calendario php a javascript PHP 2
A [Javascript] La larghezza del video player, diminuisce nel passaggio dal primo video ai successivi Javascript 0
E passaggio da procedurale a oop PHP 0
G [PHP] Problema nel passaggio del valore mese PHP 8
localhost.nicola Passaggio array tramite ajax Ajax 3
P Session e cookie funzionano solo dopo passaggio valori tramite POST PHP 8
P aiuto...passaggio variabile Javascript 1
gandalf1959 passaggio variabili da form dopo verifiche: tutte meno una!?!? Javascript 4
M Passaggio variabile PHP 4
T Fermare setInterval e riprendere al passaggio del mouse. Javascript 2

Discussioni simili