[Corso php/mysql]Problemi col connettermi al db con il passaggio di variabili...

Salve a tutti ragazzi, premetto che non sono un esperto programmatore in php, anzi devo dire che sono agli inizi, ma quello che mi interessava di questo linguaggio di scripting era la possibilita' di collegarlo ad un database.

Seguendo questa guida, ho visto un nuovo metodo per collegarmi al db, ovvero invece di immettere, diciamo ignorantemente "in chiaro", i parametri per collegarsi al server database, si possono far passare anche tramite le variabili...

Purtroppo ho dei problemi con l'utilizzo di questa tecnica, vi posto i miei file per avere un attimino di chiarezza:

Il file config.php dove ho messo i dati per connettermi al db:

$db_host = 'localhost:8889';
   $db_user = 'root';
   $db_psw = 'root';
   $db_name = 'prova';

E il file connect.php, che sarebbe il vero script incaricato di connettersi al server e scegliere il database:

//Richiamo lo script di configurazione
   require 'config.php';
   $link = mysql_connect($db_host, $db_user, $db_psw);
   if (!$link) {
      die("<p>Non riesco a connettermi al server database per colpa di:".mysql_error()."</p>");
   }
   //Mi sono connesso al database e ho preso l'identificatore di connessione chiamato $link
   $db_select = @mysql_select_db($db_name, $link);
   if (!$db_select) {
      die("<p>Nn riesco a connettermi al database per colpa di:".mysql_error()"</p>");
   }

Il fatto e' che quando provo ad  aprire la pg di connessione, nn mi restituisce assolutamente niente! Per essere piu' precisi, lo script di connessione e' in mezzo ad una struttura in html, e intitolata come Script di connessione; quando apro la pagina con firefox, ovviamente passando dal server web che ho in locale, nn mi restituisce neanche il titolo della pagina! e se provo a controllare il codice della pagina mi viene restituita soltanto una paginata bianca!

Qualcuno ha mica qualche perla di saggezza da distribuire???

Grazie mille in anticipo!!!

inviato 9 anni fa
Pr0v4
X 0 X

Con quello script visualizza dei messaggi solo se ci sono errori, altrimenti non visualizza nulla; la tua pagina si connette correttamente dato che è bianca!

Aggiungi un:

echo "Connesso sorrettamente!";

come ultima riga (ma prima di ?> ) e se tutto va bene ti mostrerà il messaggio.

è buona abitudine chiudere le connessioni al db quando si ha terminato di utilizzarle.

risposto 9 anni fa
LonelyWolf
X 0 X

Ciao perdonami ma probabilmente mi sono spiegato male io, so che una volta processato il codice in php, questo non dovrebbe essere visibile, ma almeno la struttura della pg in html quella si!

e invece niente! se controllo il codice risulta tutto come bloccato, ho provato anche a mettere l'echo come da te suggerito, ma purtroppo nessun sengno di vita...

Nn capisco i parametri sono giusti e quindi non dovrebbe brontolare niente, e invece...

ho provato anche a collegarmi con un altro browser, avendo paura che fosse colpa della cache di ff, ma anche questo tentativo e' stato uno sparo nel vuoto...

Chiarimento: perdonami ma voglio imparare, quando hai detto che e' buona norma chiudere le connessioni al database, intendevi anche per la pagina connect.php, perche' quella pg mi serve per inserirla in tutte le altre pagine che necessitano di connettersi al db... Ma forse l'errore sta proprio nel fatto che connect.php ha un'intestazione html e nn puo' essere inclusa in altre pagine??

Intanto grazie della risp  ;)

risposto 9 anni fa
Pr0v4
X 0 X

OK, in connect non ci va la chiusura della connessione visto l'utilizzo, pensavo fosse una pagina a se stante; però a connect.php non servono le intestazioni considerato che si deve occupare solamente di eseguire la connessione.

A questo punto però è meglio che posti la pagina intera, xkè così l'inghippo non si vede.

risposto 9 anni fa
LonelyWolf
X 0 X

Daccordo, allora come suggerito posto le due pagine che mi servono per la connessione;

config.php

<?php
   //Questo file mi permette di configurare le variabili necessarie alla connessione al mio db, in modo da rendere piu' semplice il riutilizzo per altri scopi
   $db_host = 'localhost:8889';
   $db_user = 'root';
   $db_psw = 'root';
   $db_name = 'prova';
?>

connect.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Connessione al db</title>
</head>

<body>
<?php
   //Richiamo lo script di configurazione
   require 'config.php';
   $link = mysql_connect($db_host, $db_user, $db_psw);
   if (!$link) {
      die("<p>Non riesco a connettermi al server database per colpa di:".mysql_error()."</p>");
   }
   //Mi sono connesso al database e ho preso l'identificatore di connessione chiamato $link
   $db_select = @mysql_select_db($db_name, $link);
   if (!$db_select) {
      die("<p>Nn riesco a connettermi al database per colpa di:".mysql_error()"</p>");
   }
   //Ho selezionato il db dove andro' a lavorare
   echo "<p>Ciao a tutti</p>";
?>
</body>
</html>

E questa pagina non riesco a visualizzarla, ma per completezza preferisco aggiungere la pagina tramite la quale dovrei riuscire ad inserire nuovi utenti all'interno di questo db di prova:

add.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Aggiungi</title>
</head>

<body>
<?php
   require 'config.php';
   require 'connect.php';
   $query = "INSERT INTO utenti (nome, email, sesso, newsletter, attivita, messaggio) VALUES ('Mario Rossi', 'm@rossi.it', 1,1,2,'Sono l'amministratore del sito')";
   $result = mysql_query($query);
   if (!$result) {   
      die("<p>Errore nella query: ".mysql_error()."</p>");
   }
        mysql_close();
   echo "<p>Query eseguita correttamente</p>";
?>
</body>
</html>

Il fattaccio e' che anche in quest'ultima pagina nn riesco a vedere l'echo, e neanche la struttura della pagina...

Spero che qualcuno mi faccia capire dove cavolo sto sbagliando, intanto vi ringrazio per l'interesse!

risposto 9 anni fa
Pr0v4
X 0 X

Allora ragazzi sono riuscito a risolvere il problema di connessione, ma adesso mi brontola per l'inserimento della query, che tra l'altro ho preso pari pari da quella presente nel corso.... Mi dice che c'e' un errore di sintassi nella stringa.

Cmq volevo sapere se facevo bene a continuare questo topic, oppure se era meglio se ne aprivo uno a se stante nella parte relativa a Mysql.

So che avrei dovuto farlo fin dall'inizio, ma purtroppo mi sono accorto soltanto successivamente del mio errore di sezione, attendendo un vostro intervento continuero'  a fare le mie prove, grazie in anticipo!!!!

risposto 9 anni fa
Pr0v4
X 0 X

l'errore è qua:

'Sono l'amministratore del sito'

deve essere: 'Sono l\'amministratore del sito'

risposto 9 anni fa
LonelyWolf
X 0 X

Cacchio che botta!

Devo seguire di più la tua firma  ;)

Grazie delle dritte!!!!

A presto ragazzi!

risposto 9 anni fa
Pr0v4
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda