| PHP/MySql | |
|
|
Autore | Messaggio |
---|
darkwolf membro importante
Numero di messaggi : 225 Localizzazione : Un pò più a destra ecco bravo adesso un pò più in basso perfetto abito lì Data d'iscrizione : 05.11.07
| Titolo: PHP/MySql Ven Dic 21, 2007 12:07 pm | |
| Allora mi sono studiato un pò di sql e sono arrivato quà - Codice:
-
<?php $user = "root"; $pass = "mia pass"; $host = "localhost"; $db = "Darkwolf"; $connessione = mysql_connect ($host, $user, $pass); mysql_select_db("db") or die ("impossibile selezionare database"); echo "Connessione riuscita"; mysql_close();
?>
lo script prende dei parametri preimpostati si connette al database e da connessione riuscita... Visto che il primo passo mi era riuscito sono passato alla creazione di una tabella (seguendo la guida sul sito di black) - Codice:
-
<?php $user = "mio user"; $pass = "mia pass"; $host = "mysql5.netsons.org"; $db = "mio database"; $connessione = mysql_connect ($host, $user, $pass); mysql_select_db("db") or die ("impossibile selezionare database"); CREATE TABLE news nome VARCHAR (50) NOT NULL, password VARCHAR (50) NOT NULL, if (mysql_query($query, $db)) echo "Creazione completata"; else echo "Errore";
Errore in line 8 (se non mi sbaglio un errore presente in linea 8 si trova in linea 7 e così via) dove sbaglio.. La tabella poi la ho creata manualmente ed ho fatto prima ma volevo sapere dove stava l'errore Poi avevo fatto questo form - Codice:
-
<html>
<head> <title>registrazione</title> </head>
<body> <form action = "prova.php" method = "GET"> USERNAME <input type = "text" name = "user"> PASSWORD <input type = "password" name = "pass"> E_MAIL <input type = "text" name = "mail"> <input type = "submit" value = "invia"> </form> </body> </html>
e lo script per inserire i dati - Codice:
-
<?php $user = $_GET ['user']; $pass = $_GET ['pass']; $mail = $_GET ['mail']; $host = "mysql5.netsons.org"; $nome = "mio host"; $password = "mia pass"; $db = "nome mio dat";
$connessione = mysql_connect ($host, $nome, $password); mysql_select_db ("db");
$query = "INSERT INTO Utenti (Username, Password, E-mail) VALUES ('$user', '$pass', '$mail')";
mysql_close(); ?> credo di aver sbagliato con le query mi sa che non ne ho messe proprio anche perchè non ho capito come funzionano | |
|
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 3:01 pm | |
| Che guida hai seguito sul mio sito? Non abbiamo ancora scritto la guida per la gestione di database MySQL tramite PHP... In ogni caso gli errori sono abbastanza grossi... - Codice:
-
mysql_select_db("db") or die ("impossibile selezionare database"); CREATE TABLE news nome VARCHAR (50) NOT NULL, password VARCHAR (50) NOT NULL, if (mysql_query($query, $db)) Non puoi passare query SQL direttamente nel codice PHP come se fossero normali istruzioni. Devi metterle in una stringa e poi eseguirle con mysql_query: - Codice:
-
mysql_select_db("db") or die ("impossibile selezionare database"); $query = "CREATE TABLE news (nome VARCHAR (50) NOT NULL, password VARCHAR (50) NOT NULL)"; if (mysql_query($query, $db)) - Codice:
-
$query = "INSERT INTO Utenti (Username, Password, E-mail) VALUES ('$user', '$pass', '$mail')";
mysql_close(); Qui invece la mysql_query non la esegui proprio... | |
|
| |
darkwolf membro importante
Numero di messaggi : 225 Localizzazione : Un pò più a destra ecco bravo adesso un pò più in basso perfetto abito lì Data d'iscrizione : 05.11.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 3:16 pm | |
| ok comunque sul tuo sito ho seguito la guida per la creazione della tabella ma probabilmente non ho capito alcune cose nel secondo pezzo di script dovrebbe andare così - Codice:
-
<?php $user = $_GET ['user']; $pass = $_GET ['pass']; $mail = $_GET ['mail']; $host = "localhost"; $nome = "root"; $password = "mia pass"; $db = "test";
$connessione = mysql_connect ($host, $nome, $password); mysql_select_db ("test");
$query = "INSERT INTO Utenti (Username, Password, E-mail) VALUES ('$user', '$pass', '$mail')";
if (mysql_query($query, $db)) echo "Utente inserito"; else echo "Errore";
mysql_close(); ?>
mi segnala un errore nella stringa 18 non so fare proprio niente....... | |
|
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 4:01 pm | |
| - Codice:
-
if (mysql_query($query, $db)) La sintassi di mysql_query (fonte: documentazione ufficiale di php.net) è - Codice:
-
resource mysql_query ( string $query [, resource $identificativo_connessione [, int $modo_risultato ]] ) Non è necessario quindi chiamarla con due parametri, ma se proprio vuoi farlo il secondo parametro deve essere l'identificativo della connessione (nel tuo caso $connessione), NON il nome del database. | |
|
| |
darkwolf membro importante
Numero di messaggi : 225 Localizzazione : Un pò più a destra ecco bravo adesso un pò più in basso perfetto abito lì Data d'iscrizione : 05.11.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 4:06 pm | |
| lo script funziona tutto ma da errore | |
|
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 6:07 pm | |
| Che errore hai? Se l'errore è nella mysql_query stampalo... - Codice:
-
if (mysql_query($query)) echo "Utente inserito"; else echo "Errore ".mysql_errno().": ".mysql_error()."<br>\n"; | |
|
| |
darkwolf membro importante
Numero di messaggi : 225 Localizzazione : Un pò più a destra ecco bravo adesso un pò più in basso perfetto abito lì Data d'iscrizione : 05.11.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 7:36 pm | |
| Risolto il carattere - non può essere usato colgo l'occasione per farti un ultima domanda con che script si verifica l'esistenza della user e della password (il login in poche parole) Grazie P.s mi dici da 1 a 10 quanto ti ho fatto uscire pazzo in questa settimana P.s2 per il sito mi consigliate di istallare un phpnuke o mambo oppure di fare tutto io a mano | |
|
| |
BlackLight Moderatore
Numero di messaggi : 277 Età : 37 Data d'iscrizione : 22.08.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 10:15 pm | |
| - Codice:
-
$query = "select username,password from utenti where username='$user' and password='$pass'";
$res=mysql_query($query); $found=false;
if ($line=mysql_fetch_array ($res,MYSQL_NUM)) { $found=true; print "Login corretto\n"; }
if (!$found) print "Login errato\n"; p.s. Occhio usa la mysql_real_escape_string sui campi user e pass, se non vuoi avere una potenziale SQL injection. | |
|
| |
darkwolf membro importante
Numero di messaggi : 225 Localizzazione : Un pò più a destra ecco bravo adesso un pò più in basso perfetto abito lì Data d'iscrizione : 05.11.07
| Titolo: Re: PHP/MySql Ven Dic 21, 2007 10:27 pm | |
| grazie per il consiglio ma non ho capito benissimo sarebbe una cosa del genere - Codice:
-
$user = mysql_real_escape_string($_GET['user']); $pass = mysql_real_escape_string($_GET['pass']);
quindi lo script sarebbe - Codice:
-
<?php $user = mysql_real_escape_string($_GET['user']); $pass = mysql_real_escape_string($_GET['pass']); $host = "localhost"; $nome = "root"; $password = "mia pass"; $db = "test";
$connessione = mysql_connect ($host, $nome, $password); mysql_select_db ("test");
$query = "select username,password from utenti where username='$user' and password='$pass'";
$res=mysql_query($query); $found=false;
if ($line=mysql_fetch_array ($res,MYSQL_NUM)) { $found=true; print "Login corretto\n"; }
if (!$found) print "Login errato\n";
mi restituisce questo Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\www\login.php on line 2 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\www\login.php on line 2 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\www\login.php on line 3 Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in C:\www\login.php on line 3 Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\www\login.php on line 17 Login errato tutto risolto il codice giusto è - Codice:
-
<?php $host = "localhost"; $nome = "root"; $password = "mia pass"; $db = "test";
$connessione = mysql_connect ($host, $nome, $password); mysql_select_db ("test");
$user = mysql_real_escape_string($_GET['user']); $pass = mysql_real_escape_string($_GET['pass']);
$query = "select username,password from utenti where username='$user' and password='$pass'";
$res=mysql_query($query); $found=false;
if ($line=mysql_fetch_array ($res,MYSQL_NUM)) { $found=true; print "Login corretto\n"; }
if (!$found) print "Login errato\n";
le stringhe $user = mysql_real_escape_string($_GET['user']); $pass = mysql_real_escape_string($_GET['pass']); andavano inserite dopo la connessione | |
|
| |
Contenuto sponsorizzato
| Titolo: Re: PHP/MySql | |
| |
|
| |
| PHP/MySql | |
|