Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    5

    Autoinstallante Database

    Ciao a tutti,
    ho un problema e non riesco a venirne a capo.

    Avrei bisogno di creare un autoinstallante che alla prima apertura del mio sito chieda le credenziali d'accesso (username, localhost, password) per importare il dump del mio database.

    Qualcuno ha qualche idea su come fare?

    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Sì, ma ci vogliono più info... cosa intendi con "prima apertura"? Prima per chi? Per tutti, per ogni utente?

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    5
    Originariamente inviato da eiyen
    Sì, ma ci vogliono più info... cosa intendi con "prima apertura"? Prima per chi? Per tutti, per ogni utente?
    In pratica devo consegnare il mio sito ad un valutatore e non appena quest'ultimo apre il sito deve inserire le credenziali citate prima per far sì che venga importato il database. Se errate non viene importato il database e restituisce un errore. La richiesta di queste credenziali al valutatore deve essere fatta finché il database non viene importato, una volta caricato,invece, non deve chiedere nessun dato per accedere.

    Questo mio lavoro è effettuato in locale e tale rimarrà, nel senso che è solo un progetto che non verrà reso online. (l'ho specificato nel caso possa servire)

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Ma... se hai fatto già il sistema non è molto complesso:

    - crea il dump
    - all'avvio dello script controlla se il db è già presente/popolato
    - se sì salta i passi di restore
    - se no fai il restore:
    . chiedi login
    . restore (es.: restore dumped db )

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    5
    Innanzitutto grazie per il link

    ora c'è un altro problema però.. ho usato il codice del link che mi hai passato, ho aggiunto la creazione del db direttamente nel codice e lo crea correttamente, poi fa le insert prendendole dal file/dump da me indicato però il problema è che lo fa ogni volta che cambio pagina.
    Come faccio a far sì che la creazione delle tabelle e le relative insert me le faccia solo una volta?

    ah..anche un'altra cosa.. come faccio a richiedergli host, username e password per effettuare il procedimento(nel caso l'inserimento sia corretto ovviamente XD)?
    (anche se ora in locale ho root come username e nulla come password)

    ti posto il codice nel caso serva:



    Codice PHP:
    <?php  // Name of the file $filename = 'sito04_714546.sql'; 
    // MySQL host $mysql_host = 'localhost'; 
    // MySQL username $mysql_username = 'root'; 
    // MySQL password $mysql_password = ''; 
    // Database name $mysql_database = 'sito04_714546'; ////////////////////////////////////////////////////////////////////////////////////////////// // Connect to MySQL server mysql_connect($mysql_host, $mysql_username, $mysql_password) or die('Error connecting to MySQL server: ' . mysql_error()); 
    $creazioneDB "CREATE DATABASE IF NOT EXISTS Sito04_714546;"mysql_query($creazioneDB) or die ("Errore nel caricamento del DB"); 
    // Select database 
    mysql_select_db($mysql_database) or die('Error selecting MySQL database: ' mysql_error());
     
    // Temporary variable, used to store current query 
    $templine ''
    // Read in entire file 
    $lines file($filename);
     
    // Loop through each line 
    foreach ($lines as $line) { 
    // Skip it if it's a comment 
    if (substr($line02) == '--' || $line == '') continue;
     
    // Add this line to the current segment 
    $templine .= $line
    // If it has a semicolon at the end, it's the end of the query
    if (substr(trim($line), -11) == ';') { 
    // Perform the query 
    mysql_query($templine) or print('Error performing query \'[b]' $templine '\': ' mysql_error() . '

    '
    ); 
    // Reset temp variable to empty
     
    $templine ''
    }
    ?>

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    5
    chiaramente le variabili in cima al codice non sono commentate.. ho solo dimenticato di mandare a capo il codice qui nel post

    la mia domanda nel post precedente è stata fatta a causa di questo errore:
    "Duplicate entry '1' for key 'PRIMARY'"

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Chiaramente devi fare un controllo... puoi p.es. fare una query sul db o verificarne l'esistenza: se c'è già non fa nulla, altrimenti va allo script con login+restore (da registrare a parte). Quindi NON includi in tutte le pagine tale script, ma solo una parte di controllo che eventualmente lo richiami

    Per controllare se c'è il db ci sono vari modi... può anche bastare una semplice query:
    - semplice query sul db o controllo esistenza tabella o database;
    - rinomini il file di dump dopo che lo usi se non ci sono errori: alla prossima esecuzione non lo trova più e quindi sa che l'ha già usato
    - etc. etc.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2012
    Messaggi
    5
    ho risolto facendo due query che verificano se le 2 tabelle del mio database sono popolate.. se ritorna true allora non mostra il form di login, non verifica ovviamente le credenziali e non fa il restore del dump, se invece ritorna false allora mostra il form di login, verifica le credenziali e fa il restore nel caso queste ultime siano state inserite correttamente.

    Grazie mille dell'aiuto, mi hai salvato la vita

    nel caso riscontrassi qualche problema che non so risolvere o avessi qualche ulteriore dubbio tornerò qui ad invocare aiuto ma spero di non doverlo fare!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    Bene... a presto allora, ciao!

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.