Newsgroup: it.comp.www.php
Titolo: modulo registrazione...non và

Ho creato questo script per far registrare le persone sul mio sito, però 
anche se mi dice registrazione avvenuta non inserisce nulla e non riesco a 
capire dove sbaglio. Spero che qualcuno di voi riesca ad aiutarmi.
Grazie mille in anticipo!!!
PAGINA 1
<form action="testreg.php" method="POST">
Username:<br>
<input type="text" size="50" name="reguser" value=""><br> 
//inserimento user
Password:<br>
<input type="password" size="50" name="regpass" value=""><br> 
//inserimento pass
<p>
Conferma password:<br>
<input type="password" size="50" name="regcpass" value=""><br> 
//inserimento pass di conferma
<p>
<input type="submit" value="Conferma">
PAGINA 2
<?
$dbhost="host";
$dbnome="nome";
$dbuser="user";
$dbpass="pass";
$conn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbnome);
if ($reguser=="") {
 echo("Non hai inserito il nome");
 include ('registrazione.htm');
}else{
 if ($regpass=="") {                        //mi controlla se nella 
variabile regpass c'è qualcosa
   echo("Non hai inserito il nome");
   include ('registrazione.htm');
  }else{
   if ($regpass == $regcpass) {     //mi confronta la pass con quella di 
conferma
   $sql = "INSERT INTO tabpass (user,pass,livello) VALUES 
($reguser,$regpass)";
   echo("Avvenuta registrazione!");
   }else{
   echo("La password non è stata confermata");
   include ('registrazione.htm');
 }
}
}
mysql_close($conn);
?> 

   echo("Avvenuta registrazione!");
Scusa, ma qui non inserisci proprio nulla!
Semplicemente crei una variabile contenente la query da eseguire.
Ti manca l'istruzione  mysql_query($sql);
E poi il campo  livello  non lo inserisci.
Ciao
Marco 

    echo("Avvenuta registrazione!");
  Vedo qche problemi:
  1. Hai specificato una query che ha bisogno di tre argomenti, ma hai
stabilito solamente due (e hai dimenticato i 'single quotes'):
   INSERT INTO tabpass (user, pass, livello)
     VALUES ($reguser, $regpass)
   Migliore:
   INSERT INTO tabpass (user, pass)
     VALUES ('$reguser', '$regpass')   // nota i quotes '
  2. Devi chiamare la funzione mysql_query x eseguire questo query !!!
    $resultati = mysql_query($query);
  3. Questo script e' molto vulnerabile a un attacco tipo "Iniezione SQL". 
Immagini che qualcuno entra, come nome utente:
   franco', 'pwd'); DELETE FROM tabpass;
    !!!! aieeee !!!!
   prima di mandare qualsiasi cosa al database, si deve chiamare
mysql_escape_string per protegere il database:
   $reguser = mysql_escape_string($reguser);
   $regpass = mysql_escape_string($regpass);
  buona fortuna!
  marco.
-- 
I am not an ANGRY man.  Remove the rage from my email to reply.

non vą lo stesso.... aiutatemi plssssssss


Marco, la sintassi corretta č:
$sql="INSERT INTO tabpass (user,pass) VALUES ('$reguser','$regpass')";
$result=mysql_query($sql);
Cos'č il campo "livelli"? O non lo inserisci (come in questo codice) 
oppure gli assegni un valore, aggiungendo la stringa relativa alla lista 
dei values.
Max

 
  se hai ancora problemi, devi cercare di capire xche:
  $reguser = mysql_escape_string($reguser);
  $regpass = mysql_escape_string($regpass);
  $query = <<EOQUERY
INSERT INTO tabpass (user, pass)
  VALUES('$reguser', '$regpass');
EOQUERY;
  $resultati = mysql_query($conn, $query);
  if ($resultati === FALSE)
  {
    $errno = mysql_errno($conn);
    $error = mysql_error($conn);
    echo "C'era un error col INSERT:  ($errno):  $error<br/>\n";
    mysql_close($conn);
    exit;
  }
  mysql_close($conn);
  ecc.
  cerca di verificare che il query ($query) contiene cio che vuoi, e poi
utilizza il programma cliente mysql x verificare che i dati sono inseriti
correttamente ...
  buona fortuna!!!
  mark.

-- 
