Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306

    mio primo db: vorrei comunicare

    ciao a tutti
    penso di aver creato il mio prima db "db_prova" (con la mia prima tabella "iscritti") con l'uso di phpMyAdmin, fornito da EasyPhp.

    PEr connettermi a questo db cosa devo fare?

    da quello che ho capito dalle lezioni che ho seguito, conviene creare un file esterno (che io chiamo "configurazione_credenziali_esterno.php") con le costanti necessarie per la connessione al db

    codice:
    <?php
    define('DB_USERN','root');           //username
    define('DB_PSW','');                //password
    define('DB_HOST','localhost');        //host
    define('DB_ISCRITTI','iscritti');  //db
    ?>
    come password che devo inserire considerando che sto usando EasyPhp?
    Poi con altro programma richiamo il file esterno ed avvio la connessione al db

    codice:
    <?php
    require_once('configurazione_credenziali_esterno.php');
    
    
    $link = @mysqli_connect(DB_HOST, DB_USERN, DB_PSW) or die("Errore connessione: ". mysqli_connect_error());
    
    
    $dbw = @mysqli_select_db("$link", DB_ISCRITTI) or die("Errore apertura database: " . mysqli_error($link));
    
    
    ?>
    1)tutto giusto?


    altra cosa: in phpMyAdmin ho creato la tabella con 4 campi colonna "id_iscritto", "nome","cognome","indirizzo".

    2)Per connettermi ora al db, devo prima inserire delle righe all'interno del db (tramite
    phpMyAdmin ), o è possibile connettersi anche ad una tabella vuota?


    3)
    Per gestire al meglio gli errori di connessione al db , posso modificare il codice precedentemente scritto in questo modo?

    codice:
    <?php
    require_once('configurazione_credenziali_esterno.php');
    $link = @mysqli_connect(DB_HOST, DB_USERN, DB_PSW) 
                or die("Errore connessione: ". __FINE__."alla linea".__LINE__);
    $dbw = @mysqli_select_db($link, DB_ISCRITTI) 
                or die("Errore apertura database: " . mysqli_error($link));
    
    
    $strsql = "query da definire prossimamente andando avanti";
    $rs = @mysqli_query($link, $strsql) or die("Errore query database: " . __FINE__."alla linea".__LINE__);
    
    ?>
    
    
    cioè con l'uso di __LINE__ e __FINE__ in abbinato alla @ che precede le funzioni.


    In questo modo sono sicuro di capire dove è avvenuto l'errore, ma senza mostrare messaggi di Warning che possono essere un vantaggio per gli hacker?
    Ultima modifica di Alfoxx; 10-09-2016 a 11:30

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da Alfoxx Visualizza il messaggio
    define('DB_ISCRITTI','iscritti'); //db
    Qui ci devi mettere il nome del db, quindi db_prova, non il nome della tabella
    come password che devo inserire considerando che sto usando EasyPhp?
    La stessa che usi per accedere al db tramite PhpMyAdmin
    require_once('configurazione_credenziali_esterno.p hp');
    $link = @mysqli_connect(DB_HOST, DB_USERN, DB_PSW) or die("Errore connessione: ". mysqli_connect_error());
    $dbw = @mysqli_select_db("$link", DB_ISCRITTI) or die("Errore apertura database: " . mysqli_error($link));

    1)tutto giusto?
    Almeno finché sei in fase di sviluppo non usare @, inibisce la stampa degli errori e finché stai facendo prove sono essenziali per sapere se qualcosa non va.
    2)Per connettermi ora al db, devo prima inserire delle righe all'interno del db (tramite phpMyAdmin] ), o è possibile connettersi anche ad una tabella vuota?
    Sì, anche se la tabella è vuota ti puoi collegare, potresti collegarti anche se non esistesse alcuna tabella, basta che esiste il DB.
    3) Per gestire al meglio gli errori di connessione al db , posso modificare il codice precedentemente scritto in questo modo?
    Se togli gli @, in caso di errore te lo dice PHP su quale riga e in quale file c'è stato il problema.
    Ultima modifica di Alhazred; 10-09-2016 a 21:07

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    grazie per le risposte
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Qui ci devi mettere il nome del db, quindi db_prova, non il nome della tabella
    quindi se cambio
    codice:
    define('DB_PROVA,'db_prova)'; //db
    anche per la riga qui sotto devo cambiare con DB_prova

    codice:
    $dbw = @mysqli_select_db("$link",DB_PROVA) or die("Errore apertura database: " . mysqli_error($link));
    e' corretto?



    La stessa che usi per accedere al db tramite PhpMyAdmin
    quindi poichè non uso nessuna password, lascio riga così ?vuota?

    Almeno finché sei in fase di sviluppo non usare @, inibisce la stampa degli errori e finché stai facendo prove sono essenziali per sapere se qualcosa non va.

    Se togli gli @, in caso di errore te lo dice PHP su quale riga e in quale file c'è stato il problema.
    Se tolgo @ , in caso di errore chi è php che me lo segnala? sarebbe il programma tipo Eclipse su cui scrivo il codice???

    quindi per ora che sono in fase di studio, è meglio procedere senza @, quando poi l'applicazione va a buon fine allora ci inserisco la @, ok?

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Quote Originariamente inviata da Alfoxx Visualizza il messaggio
    grazie per le risposte
    quindi se cambio
    define('DB_PROVA,'db_prova)'; //db

    anche per la riga qui sotto devo cambiare con DB_prova

    $dbw = @mysqli_select_db("$link",DB_PROVA) or die("Errore apertura database: " . mysqli_error($link));
    e' corretto?
    Sì, ma io scriverei
    define('DB_NAME', 'db_prova');
    per la ragione per cui hai scritto
    define('DB_USERN','root'); e non define('ROOT', 'root');
    define('DB_HOST','localhost'); e non define('LOCALHOST','localhost');

    quindi poichè non uso nessuna password, lascio riga così ?vuota?
    Si, assicurati che non ci sia uno spazio tra gli apici.

    Se tolgo @ , in caso di errore chi è php che me lo segnala? sarebbe il programma tipo Eclipse su cui scrivo il codice???
    Se si verifica un errore, il messaggio appare sulla pagina nel browser mentre navighi nel sito.

    quindi per ora che sono in fase di studio, è meglio procedere senza @, quando poi l'applicazione va a buon fine allora ci inserisco la @, ok?
    Sì.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    giusto per la regola del "define" non so perchè mi è uscito così...

    quindi se metto la @ non mi compare nulla nel browser in caso di errore?
    pensavo che avendo messo __FINE_ e _ LINE__ , potevo capire bene dove era l'errore, forse non copire tutto il percorso dove è memorizzato il file, ma qualcosa capivo...è giusto come ragionamento??


    EDIT
    EDIT
    se ora provo a connettermi con queste due applicazione che ho creato, come faccio a sapere se sono connesso davvero?
    Ultima modifica di Alfoxx; 11-09-2016 a 18:37

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    I messaggi d'errore di PHP già ti dicono tutto ciò che ti serve per risalire al posto e il motivo del problema, non c'è bisogno di inventarsi niente.

    Se php non si connette al db ti darà errore.

    Prova, prova a far girare il codice, il PC non esplode se hai sbagliato qualcosa.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    Ho provato e mi dice questo

    codice:
    Warning: mysqli_connect(): (HY000/1045): Accesso non consentito per l'utente: 'root'@'localhost' (Password: NO) in C:\Program Files\EasyPHP-12.0\Capitolo6\test_connessione.php on line 4Errore connessione: Accesso non consentito per l'utente: 'root'@'localhost' (Password: NO)
    cosa posso fare?
    Ultima modifica di Alfoxx; 12-09-2016 a 12:11

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Il messaggio ti dice che non puoi eseguire l'accesso senza password.

    l'utente: 'root'@'localhost' (Password: NO)
    L'utente con username "root" sul server "localhost" non può accedere senza password.

    Sei sicuro che non ci sia una password impostata? Non è che phpMyAdmin entra direttamente perché la password è salvata nelle sue impostazioni?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    306
    sono andato a trovare una mia vecchia discussione ed ho trovato che avevo modificato config.inc.php
    dove ho trovato che c'era una password in questo
    codice:
    $cfg['Servers'][$i]['password'] = 'mia';


    vado quindi a modificare il file esterno con questa riga di definizione
    codice:
    define('DB_PSW','mia');                //password


    mi esce

    Warning: mysqli_connect(): (HY000/1045): Accesso non consentito per l'utente: 'root'@'localhost' (Password: SI) in C:\Program Files\EasyPHP-12.0\Capitolo6\test_connessione.php on line 4
    Errore connessione: Accesso non consentito per l'utente: 'root'@'localhost' (Password: SI)

    se invece ci tolgo la password mi dice

    Warning: mysqli_connect(): (HY000/1045): Accesso non consentito per l'utente: 'root'@'localhost' (Password: NO) in C:\Program Files\EasyPHP-12.0\Capitolo6\test_connessione.php on line 4
    Errore connessione: Accesso non consentito per l'utente: 'root'@'localhost' (Password: NO)


    mi è venuto in mente di chiudere e riavviare Easy php ed ora mi esce
    Catchable fatal error: Object of class mysqli could not be converted to string in C:\Program Files\EasyPHP-12.0\Capitolo6\test_connessione.php on line 5
    e non riesco nemmeno ad entrare in PhpMyAdmin
    Ultima modifica di Alfoxx; 12-09-2016 a 12:44

  10. #10
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    in C:\Program Files\EasyPHP-12.0\Capitolo6\test_connessione.php on line 5
    E che cosa c'è su quella riga?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.