Codice PHP:
if(mysql_connect($mysql_hostname, $mysql_username, $mysql_password)) {
echo"connect";
} else {
echo"not connect";
}
Perché non va?
Codice PHP:
if(mysql_connect($mysql_hostname, $mysql_username, $mysql_password)) {
echo"connect";
} else {
echo"not connect";
}
Perché non va?
Ultima modifica di karl94 : 13-06-2011 alle ore 22.22.31 Motivo: Formattazione del codice
Non va cosa? Visualizzi un errore? Quale? Che valori ci sono nelle diverse variabili presenti nello spezzone di codice da te inserito?
inserendo parametri errati mi dice che sono connesso.
Quali sarebbero i parametri errati? La password? Su AlterVista viene ignorata.
la sto provando in locale i parametri corretti sarebbero:
e si connette.Codice:"localhost", "root", ""
se non metto lo username si connette comunque.
se modifico localhost, togliendo una lettera mi da questo errore
dovrebbe funzionare soltanto conWarning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 61 in /Users/francesco/Sites/blog/install.php on line 9come faccio?Codice:"localhost", "root", ""
Ultima modifica di karl94 : 13-06-2011 alle ore 23.00.45 Motivo: Formattazione del messaggio di errore
Non capisco, qual'è il problema?
che si connette anche quando non dovrebbe connettersi!
Dipende probabilmente da come è stato configurato.
configurato?
$mysql_database_name dovrà avere il nome del DB da selezionare.Codice PHP:
if (($res = mysql_connect($mysql_hostname, $mysql_username, $mysql_password)) && mysql_select_db($mysql_database_name, $res))
{
die ('Connect');
}
else
{
die ('Error: ' . mysql_error());
}
E' bene, prima di postare, di provare un minimo di debug, soprattutto se PHP ci mette a disposizione delle funzioni native per poterlo fare.
ancora non va!!!!!
Ti posto tutto il codice, provalo in locale e vedi quali errori riscontri:
Codice PHP:
<?php
switch($_GET['submit']) {
case 'Try to connect!':
$mysql_hostname = $_GET['mysql_hostname'];
$mysql_username = $_GET['mysql_username'];
$mysql_password = $_GET['mysql_password'];
$database_name = $_GET['mysql_database'];
$table_prefix = $_GET['table_prefix'];
$link_identifier = mysql_connect($mysql_hostname, $mysql_username, $mysql_password);
if (($res = mysql_connect($mysql_hostname, $mysql_username, $mysql_password)) && mysql_select_db($database_name, $res)) {
die ('Connect');
} else {
die ('Error: ' . mysql_error());
}
break;
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<?php if(!isset($_GET['step'])) { ?><title>Set it up in 5 minutes</title><?php } ?>
<?php if(isset($_GET['step']) == "1") { ?><title>1# Step: Mysql parameters</title><?php } ?>
<?php if(isset($_GET['step']) == "2") { ?><title>2# Step: Admin profile</title><?php } ?>
<?php if(isset($_GET['step']) == "3") { ?><title>3# Step: Site Info</title><?php } ?>
</head>
<body>
<?php if(!isset($_GET['step'])) { ?>
<h1>Install your blog!</h1>
<p>Thank you for having choosen our platform. Before starting with the installation be sure to have mysql information.</p>
<a href="?step=1"><input type="button" value="Let's Start?" /></a>
<?php } ?>
<?php if(isset($_GET['step']) == 1) { ?>
<h1>1<sup>st</sup> Step</h1>
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="get">
<table width="auto" border="0" cellspacing="0" cellpadding="5">
<tr>
<td><label for="mysql_hostname">Mysql Hostname</label></td>
<td><input type="text" name="mysql_hostname" value="localhost" /></td>
</tr>
<tr>
<td><label for="mysql_username">Mysql Username</label></td>
<td><input type="text" name="mysql_username" /></td>
</tr>
<tr>
<td><label for="mysql_password">Mysql Password</label></td>
<td><input type="password" name="mysql_password" /></td>
</tr>
<tr>
<td><label for="mysql_database">Database Name</label></td>
<td><input type="text" name="database_name" /></td>
</tr>
<tr>
<td><label for="table_prefix">Table Prefix</label></td>
<td><input type="text" name="table_prefix" value="blog_" /></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="submit" value="Try to connect!" /><input type="hidden" name="step" value="1" /></td>
</tr>
</table>
</form>
<?php } ?>
</body>
</html>
Ultima modifica di alemoppo : 14-06-2011 alle ore 14.22.54 Motivo: + tag [php]
Scusami, ma il codice è un po "strampalato"
...mi spiego:
-fai uno switch con una sola condizione (perché non usare un if?)
-tutti i parametri $_GET[] andrebbero verificati tramite la isset().
-isset() restituisce o true, o false.Codice PHP:
if(isset($_GET['step']) == "1")...
if(isset($_GET['step']) == "2")...
if(isset($_GET['step']) == "3")...
-Come suggerito sopra, se hai problemi di connessione, prova a fare l'echo delle varie variabili che contengono i dati di connessione.
-leggendo il codice velocissimamente (quindi, potrei sbagliarmi), secondo me non ha senso connettersi al database per poi fare comunque un die() subito dopo (forse per verificare la connessione a scopo di debug?)
Ciao!
Ultima modifica di alemoppo : 14-06-2011 alle ore 14.38.50
regolamento altervista_______________ regolamento forum
Lo switch ha un senso perché il codice non è completo, l'isset è a scopo cautelativo.
Non giudicare il mio modo di codare e cerca di darmi informazioni utili.
Ho provato a fare gli echo dei parametri ma ho sempre gli stessi errori.
Per quanto riguarda if() della connessione servirà per creare un file di impostazioni.
Hai qualcosa da suggerirmi del perché non si connette a mysql?
Se non hai niente da dire sei pregato di non rispondere :)
Ovviamente non volevo "offendere"... anzi, ho cercato di evidenziare eventuali errori/imprecisioni.
Infatti non ho capito il tuo problema:
ma scusa, il problema non era il contrario?:Hai qualcosa da suggerirmi del perché non si connette a mysql?
Per questo, visto che non ho capito il tuo problema, ho cercato di evidenziare gli (eventuali) errori.che si connette anche quando non dovrebbe connettersi!
Le variabili sono settare correttamente? Di che errori stai parlando?Ho provato a fare gli echo dei parametri ma ho sempre gli stessi errori.
Ciao!
Ultima modifica di alemoppo : 14-06-2011 alle ore 15.06.48
regolamento altervista_______________ regolamento forum
Cerco di spiegarmi nuovamente.
I parametri corretti sarebbero:
1) hostname: localhost
2) username: root
3) senza password
4) database: db
Il database esiste.
Inserendo questi dati mi da l'errore: No database selected.
Il problema sta nel codice secondo me, perché se metto in un'altra pagina solo la parte di connessione funziona.
Il problema è, dov'è l'errore?
memedismo, non ti pare di mancare di rispetto un po' ad una persona che sta cercando di aiutarti, gratuitamente e pubblicamente, e soprattutto un Moderatore del forum?
Noi non possiamo sapere qual è il codice completo se tu non lo scrivi e NOI lavoriamo su CIO' che VEDIAMO, non che POSSIAMO IMMAGINARE.
Il mio codice era per testare la connessione dato che mi scrivi che si connette anche quando non dovrebbe. Ecco il perché del die(). Ovviamente, una volta finito il debug dello script, si toglie ciò che ne blocca il funzionamento od è obsoleto.
Ora, IN BASE al(la parte di) codice che tu hai scritto nel quartultimo post, è sbagliato e non hai controllato bene prima di testarlo, perché hai scritto 2 volte la stessa parte di codice. Quindi modifica così il case del primo switch:
Codice PHP:
case 'Try to connect!':
$mysql_hostname = $_GET['mysql_hostname'];
$mysql_username = $_GET['mysql_username'];
$mysql_password = $_GET['mysql_password'];
$database_name = $_GET['mysql_database'];
$table_prefix = $_GET['table_prefix'];
if (($link_identifier = mysql_connect($mysql_hostname, $mysql_username, $mysql_password)) && mysql_select_db($database_name, $link_identifier)) {
echo 'Connect'; # Ho rimosso il die per permettere il proseguimento dello script
} else {
die ('Error: ' . mysql_error());
}
break;
Se mi si dice che il mio codice è "strampalato" se permetti mi altero.
Comunque non va nemmeno con queste correzioni.
Caro il mio neofita, qualcosa te l'ha detta, e ti ha dato un consiglio.
Strampalato ovviamente era per scherzare, un modo più simpatico per dire errato.
Poi ricorda che devi fare una cosa del genere:
1) hostname: localhost
2) username: memedesimo
3) password:
4) database: my_memedesimo
Caro il mio utente, lo sto provando in locale :)
Gente, riprendiamo la calma!.
Lo "strampalato" ovviamente era ironico (tra virgolette e con la faccina).
Per curiosità, potresti provare questo?:
Ciao!Codice PHP:
<?php
//...
if($link_identifier = mysql_connect($mysql_hostname, $mysql_username, $mysql_password))
echo 'Connect';
else
die ('Error: '.mysql_error());
if(mysql_select_db($database_name, $link_identifier))
echo 'Db selezionato correttamente';
else
die ('Errore su selezione database '.$database_name.': '.mysql_error());
//...
?>
Ultima modifica di alemoppo : 14-06-2011 alle ore 20.49.41
regolamento altervista_______________ regolamento forum
se cambio localhost con "localhos" mi da questo errore:
se metto i dati corretti mi da quest'altro errore:Codice:Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 61 in /Users/francesco/Sites/blog/install.php on line 9 Error: Lost connection to MySQL server at 'reading initial communication packet', system error: 61
se metto i dati sbagliati lasciando localhost mi da questo errore:Codice:ConnectErrore su selezione database : No database selected
Codice:ConnectErrore su selezione database : No database selected
Ultima modifica di alemoppo : 14-06-2011 alle ore 21.03.29 Motivo: +aggiunta [code] per errori
Credo che come "$mysql_hostname", localhost sia corretto.
Sembra, quindi, che non gli piaccia il nome del database, ovvero "$database_name".
Sei sicuro che il database si chiami in quel modo?
Funziona anche la mysql_select_db() ?perché se metto in un'altra pagina solo la parte di connessione funziona.
Ciao!
EDIT:
Hai provato con questa riga? (ho editato subito dopo...).
Se lo usi così, allora:Codice PHP:
die ('Errore su selezione database '.$database_name.': '.mysql_error());
Non va bene: dopo la parola "database", dovrebbe dare il nome, che invece è vuoto...ConnectErrore su selezione database : No database selected
Ultima modifica di alemoppo : 14-06-2011 alle ore 21.02.42
regolamento altervista_______________ regolamento forum
Ora finalmente ho capito dove sbagliavo!
Richiamavo la stringa db sbagliata. $_GET['mysql_database'] doveva essere $_GET['database_name']
ora funziona tutto correttamente tranne il solito errore del cambio della stringa localhost in qualsiasi altro tipo che mi da sempre lo stesso tipo di errore
Per quale motivo? spiegazioni?Codice:Warning: mysql_connect() [function.mysql-connect]: Lost connection to MySQL server at 'reading initial communication packet', system error: 61 in /Users/francesco/Sites/blog/install.php on line 9 Error: Lost connection to MySQL server at 'reading initial communication packet', system error: 61
Grazie alemoppo che mi hai illuminato col tuo spezzone di codice.
Ultima modifica di alemoppo : 14-06-2011 alle ore 22.15.51 Motivo: +[code] per messaggio errore
Scusami, ma non ho capito: se funziona con "localhost", perché vuoi scriverci "localhos" ?.. cioè, il tuo "host" locale, è localhost, no?
Ciao!
regolamento altervista_______________ regolamento forum
vabbè hai ragione, puoi chiudere problema risolto.
Vorrebbe capire come risolvere il problema nel caso un utente scriva un host al quale non è possibile connettersi.
Prova a vedere se riesci a risolvere così: Error: Lost connection to MySQL server at 'reading initial communication packet', system error: 61.