Allora, per inviare i dati di registrazione alla tabella 'users' uso questo codice:
Codice PHP:
<?php
// Parametri di connessione
class MysqlClass
{
private $nomehost = "localhost";
private $nomeuser = "root";
private $password = "";
private $database = "utenti";
private $attiva = false;
public function connetti()
{
if(!$this->attiva)
{
if($connessione = mysql_connect($this->nomehost,$this->nomeuser,$this->password)){
{
$selezione = mysql_select_db($this->database);
}
}else{
return true;
}
}
}
public function inserisci($t,$v,$r = null)
{
if(isset($this->attiva))
{
$istruzione = 'INSERT INTO users';
// $query = mysql_query($istruzione) or die (mysql_error());
if($r != null)
{
$istruzione .= ' ('.$r.')';
}
for($i = 0; $i < count($v); $i++)
{
if(is_string($v[$i]))
$v[$i] = '"'.$v[$i].'"';
}
$v = implode(',',$v);
$istruzione .= ' VALUES ('.$v.')';
$query = mysql_query($istruzione) or die (mysql_error());
}else{
return false;
}
}
}
$data = new MysqlClass();
$data->connetti();
if(!isset($_POST['registrati'])){
?>
<form method="post">
Nome utente: <input type="text" name="username" required />
<p>
Password: <input type="password" name="password" required />
<p>
Nome: <input type="text" name="nome" required />
<p>
Cognome: <input type="text" name="cognome" required />
<p>
<input type="submit" name="registrati" value="Registrati ora!">
</p>
</form>
<?php
} else {
$username = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['password']);
$nome = mysql_real_escape_string($_POST['nome']);
$cognome = mysql_real_escape_string($_POST['cognome']);
if(strlen($username) < 3 || strlen($username) > 20) {
echo "L'username deve contenere da 3 a 20 caratteri. <p> <a href='javascript:history.go(-1)'><font color='blue'>Indietro</font></a>";
}elseif(strlen($pass) < 5 || strlen($pass) > 25){
echo "La password deve contenere da 5 a 25 caratteri. <p> <a href='javascript:history.go(-1)'><font color='blue'>Indietro</font></a>";
}elseif(strlen($nome) < 2 || strlen($nome) > 15){
echo "Il nome deve contenere da 2 a 15 caratteri. <p> <a href='javascript:history.go(-1)'><font color='blue'>Indietro</font></a>";
}elseif(strlen($cognome) < 3 || strlen($cognome) > 20){
echo "Il cognome deve contenere da 3 a 20 caratteri. <p> <a href='javascript:history.go(-1)'><font color='blue'>Indietro</font></a>";
} elseif(mysql_num_rows(mysql_query("SELECT USERNAME FROM utenti WHERE USERNAME = '$username'")) == 1){
echo "Il nome utente scelto č giā in uso. <p> <a href='javascript:history.go(-1)'><font color='blue'>Indietro</font></a>";
} else {
$table = "users";
$valore = array ('$username', '$pass', '$nome', '$cognome');
$campo= "USERNAME, PASSWORD, NOME, COGNOME";
$data->inserisci($table,$valore,$campo);
}
}
?>
Solo che, quando la registrazione viene eseguita, non invia i dati, ma invia
Codice PHP:
$username $pass $nome $cognome
Come mai? Dove sbaglio? Ho provato anche a modificare $valore in questo modo
Codice PHP:
$valore = array ('$this->username', '$this->pass', '$this->nome', '$this->cognome');
Ma non essendo oggetti non posso usare $this.. Potreste aiutarmi?