Errore di connessione a DB MySql

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti,
oltre un anno fa avevo terminato un lavoro di programmazione relativo all'inserimento di ricette in un database.
Ora devo riprendere in mano il progetto e, a parte che dopo un anno non ricordo quasi nulla di PHP, quando effettuo la connessione ricevo l'errore:
"Connessione fallita: Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)."
Ho provato a cercare in rete il significato e le possibili soluzioni, ma le discussioni più recenti risalgono al 2014 e comunque non chiariscono (almeno a me) dove possa essere il problema.
Premetto che fino a qualche mese fa la procedura funzionava correttamente.
A cosa è dovuto questo errore?
Grazie per l'aiuto
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Qualche dettaglio in più:
la pagina che mi dà l'errore descritto è quella di autenticazione alla struttura di backoffice.
Il codice che generava il form è il seguente:
PHP:
<?php // include('connect3.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="verify2.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="../" id="back" class="h7b">Ritorna al sito</a>
        </fieldset>
    </form>
 
</body>
</html>

Dopo aver inserito utente e password, entra in gioco la pagina di verifica "Verify2.php":
PHP:
<?php session_start();

include 'connect3.php';


$username = $_POST['username'];

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

//echo $username . ", " . $password;

if (!$result = $connessione->query("SELECT * FROM utentibo WHERE userName = '$username' AND password = '$password'")) {
  echo "Errore della query: " . $connessione->error . ".";
  exit();
}else{
    // echo "e qui ancora bene"."<br>";
  // conteggio dei record
  if($result->num_rows > 0) {
    // conteggio dei record restituiti dalla query
    while($row = $result->fetch_array(MYSQLI_ASSOC))
    {
      $cod = $row['userName'];
      $unico = $row['unico'];
      
      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>';
 
        }
    }
    // liberazione delle risorse occupate dal risultato
    $result->close();
  }
}
// chiusura della connessione
$connessione->close();



?>

Gli utenti abilitati erano stati inseriti attraverso la pagine seguente (InserimantoUtentiBO.php):
PHP:
<?php session_start();

if (isset($_POST['esegui']))
inserisci();


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>DTeatro7|lab : Backoffice - Inserimento utenti BackOffice</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />

</head>

<body>

<div id="contenitoreLogo"><img src="../images/logo_t7.gif" width="169" height="88" alt="teatro7" /></div>

<div id="ilform" class="h5b">

<form name="inserimento" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p align="center">
<label>Nome utente: </label><br />
<input name="utente" type="text" size="50" placeholder="Nome Utente" autocomplete="off" autofocus required /><br /></p>
<p align="center">
<label>Password: </label><br />
<input name="password" type="password" size="50" placeholder="Password" autocomplete="off"  required /><br /></p>
<p align="center">
<input name="esegui" type="submit" value="Inserisci" />

</form>

<?
function inserisci() {
    include 'connect.php';
    $nome = $_POST['utente'];
    $pass = $_POST['password'];
    $c = uniqid (rand (),true);
    $unico = sha1($c);
    
    $query = ("INSERT INTO utentibo VALUES ('','$nome', sha1('$pass'), '$unico')");
    $result = mysql_query($query);
    mysql_close();
    
    echo "<p align='center'>L'utente $nome è stato inserito</p>";
}

?>

</div>


</body>
</html>

Credo di aver capito che il problema sta nel fatto che due o tre anni fa, quando è stato scritto il codice, la password sia stata inserita con una chiave attualmente non più ritenuta sicura...
Di conseguenza FORSE (sempre se ho capito qualcosa...) basta variare il codice di inserimento degli utenti BO (BackOffice) per consentirne l'accesso.
O devo variare la struttura del campo contenente la password?

Grazie per l'aiuto.
A presto (spero)
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
io capisco una cosa diversa,
l'errore é generato dalla connessione al db, non dipende dalla colonna delle password che gestisci nella tabella,
se tu potessi verificare esattamente quale riga php, ovvero comando mysqli genera l'errore,
potresti orientarti meglio nella sua risoluzione
nulla del codice pubblicato aiuta a capire da dove nasce l'errore, che dovrebbe essere generato all'interno di "connect3.php"
in particolare potresti leggere e attuare i suggerimenti della pagina
https://dev.mysql.com/doc/workbench/en/wb-mysql-connections-secure-auth.html

fai sapere
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Hai ragione.
Ho testato il file connect3.php e l'errore è lì.
Ora sto cercando di capire come mai fino a 5/6 mesi fa funzionava e ora no...
Ho contattato il provider intanto per verificare che i dati di connessione non siano cambiati.
Ti terrò aggiornato
Intanto grazie
 

marino51

Utente Attivo
28 Feb 2013
3.203
207
63
Lombardia
Ora sto cercando di capire come mai fino a 5/6 mesi fa funzionava e ora no...
Ho contattato il provider intanto per verificare che i dati di connessione non siano cambiati.
io penso che non siano cambiati i dati di connessione, ma la "gestione" della password usata proprio per la connessione
la pagina che ti ho indicato tratta proprio questo argomento
il provider probabilmente ha aggiornato la versione di mySQL facendo nascere il problema
contattali e vedi con loro se possono apportare le modifiche citate nella pagina che ti ho suggerito
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Ciao,
in effetti il provider mi ha risposto che "evidentemente" la password utilizzata dall'utente in questione non è sicura e mi suggerisce quindi semplicemente di cambiare la password.
Ora provo a farlo.
Comunque grazie per le indicazioni.
Alla prossima
 
Discussioni simili
Autore Titolo Forum Risposte Data
M [MySql - VB6 sp6] Problema connessione db con alcuni pc (errore Lost connection to MySQL server...). MySQL 1
M PHP: errore connessione a MySQL PHP 5
S Errore nella connessione Mysql PHP 2
G Errore connessione mysql con dreamweaver PHP 3
F errore connessione mysql 10048 MySQL 0
Matilde1 PHP: errore connessione database PHP 12
Magenta [WordPress] Errore di connessione: si apre solo la home page e senza grafica WordPress 9
localhost.nicola Errore connessione DB MSSQL PHP 7
asevenx Errore di connessione e permessi in scrittura file .xml con Aruba Windows Hosting 8
P Errore connessione mysqli PHP 5
neo996sps Errore su connessione a DB con VB2008 express Visual Basic 1
briga Errore connessione a DB Access [era: Insomma non cè nessuno...] Classic ASP 6
G errore connessione (mai visto) Classic ASP 1
J [Access] Errore di connessione Classic ASP 6
A Errore nella connessione ad un database PHP 1
S errore connessione database HTML e CSS 1
grottafelix Stringa di connessione ed errore 500 Classic ASP 3
K Inserimento query Errore 1366 PHP 4
F errore 1062 su campo nuovo MySQL 4
N Errore interno Access MS Access 2
R mi da errore dove inizia il while PHP 1
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
R Yoast SEO errore semafori sempre rossi SEO e Posizionamento 0
S Visualizza l'errore di creazione in MSSQL Database 4
simgia Cordova errore quando cerco di emulare o creare la app Sviluppo app per Android 2
P Errore nell'indirizzo degli elementi HTML e CSS 2
Jensen Errore di sintassi con DELETE PHP 3
H Errore su array associativo PHP 1
FDF182 ERRORE 1292 PHP 4
P errore 404 con javascript Javascript 2
felino Windows 7: errore 80072EFE su Windows Update Windows e Software 1
A errore http://datatables.net/tn/7 PHP 4
M Errore visualizzazione meta tag title e description SEO e Posizionamento 1
A Errore durante il salvataggio Photoshop 0
M Errore configurazione motion detection nvr Hikvision DS-7616 IP Cam e Videosorveglianza 0
voldemort [c] Errore di segmentazione (core dump creato) C/C++ 1
T SSD - errore sistema Hardware 2
R Navigare sito con cURL, mi restituisce errore PHP 0
L File CSV con app inventor da errore Sviluppo app per Android 2
A Errore visualizzazione selezione testo Photoshop 0
I Postman 400 Errore di richiesta non valida Programmazione 0
S Errore PHP - Notice: Undefined index ... PHP 14
U Campo vuoto data errore Fatal error: PHP 2
R Errore UPDATE tabella mysql PHP 1
R W10 Segnalazione di errore su terminale USB Windows e Software 0
G non riesco a capire quale sia l'errore [SQL] MySQL 2
I Errore 80040220 nella newsletter con paginazione Classic ASP 0
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
W Errore di run-time di Microsoft VBScript error '800a0035' Impossibile trovare il file Classic ASP 0

Discussioni simili