Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema PHP+MySql

  1. #1

    Problema PHP+MySql

    Salve a tutti, ho un grosso problema con la gestione di un sito web. Premetto che non sono un webmaster, ma un semplice impiegato di un'organizzazione a cui è stato dato questo ingrato compito....copiare il sito web aziendale e portarlo nello spazio del nuovo hosting.

    Così, ho copiato di sana pianta tutti i files e le cartelle prima della disattivazione del sito dallo spazio vecchio, e ho ricopiato il tutto ieri all'attivazione del nuovo spazio.

    Solo che ho un problema: in pratica sul sito c'è una pagina in cui c'è un form per una ricerca in un database per la visualizzazione delle aziende certificate con la nostra organizzazione.
    Mi sono messo a navigare tra i vari files del sito e ho trovato la cartella certificati che contiene vari files php per la gestione di quella pagina, così da browser ho digitato l'indirizzo del file php "install.php" per procedere all'installazione e alla creazione automatica delle tabelle in mysql.
    Il file mi chiede di inserire i dati per l'accesso a MySql....inserisco tutti i dati ma il file install mi da un'errore "impossibile creare il db" che per db sarebbe una tabella con quel nome.

    Però in realtà vedendo dal pannello di mysql le tabelle vengono create correttamente, ma poi utilizzando il pannello per l'inserimento dei certificati, mi rendo conto che non funziona, infatti mi restituisce un "impossibile eseguire la query".

    Spero che qualcuno di voi abbia voglia di perdere un pò di tempo con me riuscendo a farmi capire cos'è che non va, cosa sbaglio e cosa dovrei correggere.

    Di seguito vi posto il file install.php...grazie a chi mi aiuterà:

    <?
    if(!$_POST['Submit']) {
    include('install.html');
    } else {
    $nome = $_POST['nome'];
    $pass = $_POST['pass'];
    $host = $_POST['host'];
    $db = $_POST['db'];
    $pass2 = $_POST['pass2'];
    if(!$_POST['pass2']) {
    echo "Devi per forza specificare una password. Torna indietro e riprova";
    exit;
    }
    mysql_connect("$host","$nome","$pass") or die("Impossibile effettuare una connessione. Rivedere bene i dati");
    mysql_select_db("$db") or die("Impossibile connettersi al db, vedere se esiste effettivamente");

    mysql_query("CREATE TABLE `db` (
    `id` int(11) NOT NULL auto_increment,
    `tcert` varchar(244) NOT NULL,
    `via` varchar(255) NOT NULL,
    `cap` varchar(255) NOT NULL,
    `citta` varchar(255) NOT NULL,
    `prov` varchar(255) NOT NULL,
    `reg` varchar(255) NOT NULL,
    `naz` varchar(255) NOT NULL,
    `datap` int(11) NOT NULL,
    `datau` int(11) NOT NULL,
    `datav` int(11) NOT NULL,
    `norma` varchar(255) NOT NULL,
    `accr` varchar(255) NOT NULL,
    `stato` varchar(255) NOT NULL,
    `sett1` varchar(255) NOT NULL,
    `sett2` varchar(255) NOT NULL,
    `sett3` varchar(255) NOT NULL,
    `sett4` varchar(255) NOT NULL,
    `scopo` varchar(255) NOT NULL,
    `esclusione` varchar(255) NOT NULL,
    `ncert` varchar(255) NOT NULL,
    `azienda` varchar(255) NOT NULL,
    PRIMARY KEY (`id`))") or die('Impossibile creare il db'); //Creazione db
    mysql_query("CREATE TABLE `accr` (
    `id` int(11) NOT NULL auto_increment,
    `nome` varchar(255) NOT NULL,
    PRIMARY KEY (`id`))") or die('Impossibile creare il accr'); //Creazione accr
    mysql_query("CREATE TABLE `es` (
    `id` int(11) NOT NULL auto_increment,
    `nome` varchar(220) NOT NULL,
    PRIMARY KEY (`id`))") or die('Impossibile creare il es'); //Creazione es
    mysql_query("CREATE TABLE `scert` (
    `id` int(11) NOT NULL auto_increment,
    `type` enum('ATTIVO','SOSPESO','REVOCATO','RIPRISTINATO') NOT NULL,
    `motivo` varchar(234) NOT NULL,
    `data` int(11) NOT NULL,
    `id2` int(11) NOT NULL,
    PRIMARY KEY (`id`))") or die('Impossibile creare il scert'); //Creazione scert
    mysql_query("CREATE TABLE `sett` (
    `id` int(11) NOT NULL auto_increment,
    `nome` varchar(244) NOT NULL,
    PRIMARY KEY (`id`))") or die('Impossibile creare il sett'); //Creazione sett
    mysql_query("CREATE TABLE `tcert` (
    `id` int(11) NOT NULL auto_increment,
    `nome` varchar(255) NOT NULL default '',
    PRIMARY KEY (`id`))") or die('Impossibile creare il tcert'); //Creazione tcert
    mysql_query("CREATE TABLE `admin` (
    `pass` varchar(255) NOT NULL)") or die('Impossibile creare admin'); //Creazione admin
    mysql_query("INSERT INTO admin (pass) VALUES ('$pass2')") or die('Impossibile creare admin'); //Inserimento pass admin
    $body = fopen("../inc/mysql.php","a");
    ftruncate($body,"0");
    fwrite($body,"<?
    \$ser = \"$host\";
    \$user = \"$nome\";
    \$pass = \"$pass\";
    \$db = \"$db\";
    @mysql_connect(\$ser,\$user,\$pass) or die(\"Impossibile effettuare la connessione al database\");
    @mysql_select_db(\$db) or die(\"Impossibile selezionare il db\");
    ?>");
    echo "Database creato correttamente! Ora sei pregato di cancellare dalla root il file install.php e la cartella install per motivi di sicurezza";
    }
    ?>

  2. #2
    Non c'è un'anima pia che mi aiuta???

    Sono ormai 5 ore che sto su questa cosa che credo sia la più semplice da fare, eppure c'è qualcosa che non va.....io lancio install.php, inserisco i dati (nome utente pws nome db del mysql aruba), e lui mi restituisce errore "impossibile creare il db"....ma in realtà le tabelle vengono create tutte.

    Secondo voi il fatto che mi restituisce errore significa che effettivamente c'è un'errore, oppure una volta create le cartelle posso iniziare a ricercare il vero errore che porta al NON funzionamento dei database altrove???

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    86
    Ciao,

    ho provato ad eseguire singolarmente tutte le query presenti nel file install.php e non mi è stato restituito alcun errore.

    Quindi l'errore non dovrebbe risiedere lì.

    Se vuoi, puoi provare a creare a mano il db, attraverso uno strumento come PHPMyAdmin o simili.

    Altrimenti prova a dire quale messaggio di errore ti restituisce, specificando proprio l'intera frase.

  4. #4
    Ciao, grazie per la risposta.

    Io ora ho provato ad eseguire la prima query da mysql.aruba.it e mi da il seguente errore:

    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("CREATE TABLE `db` ( `id` int(11), `tcert` varchar(244) NOT NULL, ' at line 1

    Praticamente dice che c'è errore di sintassi.....mentre a te funzionano....

  5. #5
    Se segnala un errore di sintassi è perchè c'è, per esempio...

    mysql_query("CREATE TABLE `db` (
    `id` int(11) NOT NULL auto_increment,
    ...
    ...

    il carattere che tu utilizzi come apice ( ` ) non è un apice ( ' ), prova a sostituirli.
    Perpetual Ribellion With Absolutely No Cause

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    86
    No, attento: se esegui una query tramite un MySQL Admin una tua query:

    codice:
    mysql_query("CREATE TABLE `es` (
    `id` int(11) NOT NULL auto_increment,
    `nome` varchar(220) NOT NULL,
    PRIMARY KEY (`id`))") or die('Impossibile creare il es'); //Creazione es
    diventa solo:

    codice:
    CREATE TABLE `es` (
    `id` int(11) NOT NULL auto_increment,
    `nome` varchar(220) NOT NULL,
    PRIMARY KEY (`id`))
    devi, cioè, prendere solo il codice sql presente tra "".

    Prova così.

  7. #7
    Comunque nonostante l'errore sono riuscito a creare le table, e spero vadano bene....ora però ho i soliti problemi nel momento in cui vado ad inserire i certificati sul sito.

    Faccio il login su admin.php per inserire un nuovo certificato, procedo all'inserimento di tutti i dati e quando clicco su aggiungi mi da un errore.
    Leggendo il php relativo, l'errore è di queste righe qua:

    case 'Aggiungi':
    $tcert = $_GET['tcert'];
    $azienda = $_GET['azienda'];
    $via = $_GET['via'];
    $cap = $_GET['cap'];
    $citta = $_GET['citta'];
    $prov = $_GET['prov'];
    $reg = $_GET['reg'];
    $naz = $_GET['naz'];
    $norma = $_GET['norma'];
    $datap = mktime(0,0,0, $_GET[mesep],$_GET[giornop],$_GET[annop]);
    $datau = mktime(0,0,0, $_GET[meseu],$_GET[giornou],$_GET[annou]);
    $datav = mktime(0,0,0, $_GET[mesev],$_GET[giornov],$_GET[annov]);
    $datar = mktime(0,0,0, $_GET[meser],$_GET[giornor],$_GET[annor]);
    $datasr = mktime(0,0,0, $_GET[mesesr],$_GET[giornosr],$_GET[annosr]);
    $ncert = $_GET['ncert'];
    $accr = $_GET['accr'];
    $sett1 = $_GET['sett1'];
    $sett2 = $_GET['sett2'];
    $sett3 = $_GET['sett3'];
    $sett4 = $_GET['sett4'];
    $scopo = $_GET['scopo'];
    $esclusione = $_GET['esclusione'];
    $sql = "INSERT INTO db (tcert,via,cap,citta,prov,reg,naz,datap,datau,data v,datar,datasr,norma,accr,stato,sett1,
    sett2,sett3,sett4,scopo,esclusione,ncert,azienda) VALUES ('$tcert','$via','$cap','$citta','$prov','$reg','$ naz','$datap','$datau','$datav','$datar','$datasr' ,
    '$norma','$accr','$stato','$sett1','$sett2','$sett 3','$sett4','$scopo','$esclusione','$ncert','$azie nda')";
    mysql_query($sql) or die("Impossibile eseguire la query");


  8. #8
    Risolta anche la questione di prima....in pratica tra le tabelle create, ne mancavano due...ora facendo la procedura di inserimento certificato mi dice di averlo inserito.

    Ho controllato ed effettivamente l'ha inserito....dopo controllo anche la ricerca....speriamo bene!

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.