sintassi query sql (con php)

  • Creatore Discussione Creatore Discussione michela
  • Data di inizio Data di inizio

michela

Nuovo Utente
26 Nov 2003
1
0
0
Ho creato un modulo html (in php) che modifica un database sql(creato con phpMyAdmin).

Ho un problema, penso relativo alla sintassi.
Se scrivo cosi :
$query = 'INSERT INTO `utenti_prova` ( `nome` , `cognome` , `tipo_utente` , `login` , `pwd` ) '
. ' VALUES ( $nome, $cognome, $tipo_utente, $login, PASSWORD($pwd ) );'
. ' ';
Mi da errore n° 1054. Colonna sconosciuta '$nome' in 'field list'.

Se scrivo cosi’:
$query = 'INSERT INTO `utenti_prova` ( `nome` , `cognome` , `tipo_utente` , `login` , `pwd` ) '
. ' VALUES ( \'$nome\', \'$cognome\', \'$tipo_utente\', \'$login\', PASSWORD( \'$pwd\' ) );'
. ' ';
Completa l’inserimento nel db, ma nel campo nome mi scrive <<$nome>>, invece del contenuto della variabile <<$nome>>

Ho provato anche a scrivere \’$POST[nome]’ ma mi dice undefinited variable POST, che fare?
Grazie dell'aiuto :)
 
$query = 'INSERT INTO `utenti_prova` ( `nome` , `cognome` , `tipo_utente` , `login` , `pwd` ) '
. ' VALUES ( $nome, $cognome, $tipo_utente, $login, PASSWORD($pwd ) );'
. ' ';

$sql = mysql_query("INSERT INTO utenti_prova (nome, cognome, tipo_utente, login, pwd) VALUES ('$nome','$cognome','$tipo_utente','$login','$pwd')") or die (mysql_error());

il die lo aggiungi per verificare se ci sono errori nell'inserimento dei dati e di che tipo errori si tratta.

$pwd o $_POST['pwd'] (nel caso i dati siano stati inviati con metodo POST) si equivalgono, il secondo è solo più sicuro.
Ad esempio se sapessi la password (ma allora ci sarebbero grossi problemi di sicurezza) e volessi accedere ad una pagina in cui si richiede la variabile della password, con il primo metodo potrei farlo senza problemi:
http://www.nomepagina.com/file.php?pwd=nomepassword

Per quanto riguarda PASSWORD($pwd), secondo me è meglio utilizzare la criptazione md5 e non il metodo offerto da MySQL per la codifica (facilmente decriptabile), naturalmente se pensi che il server che ospita lo script sia passibile di attacco.

Per criptare in md5: $pwd = md5($pvd);

Per confrontare un valore con il valore criptato:
$valore = md5($valore);
if($valore == $pwd){ etc...
 

Discussioni simili