PDA

View Full Version : problema con database (mysql - php)


alexxio1989
08-06-2013, 10:38
Salve ragazzi

Ho un problema nella creazione di un database , quando riempio il form mi da tutto ok poi però nel database non vengono salvati i dati.



Questo è il file contenente il form (form.php):
<html>
<head>
</head>
<body>

<form method="post" action="register.php" id="formregistrazione">

<ul>
<li><label for="username">Username</label>
<input type="text" name="username" id="username" />
</li>
<li>
<label for="password1">Password</label>
<input type="password" name="password1" id="password1" />
</li>
<li>
<label for="password2">Ripeti Password</label>
<input type="password" name="password2" id="password2" />
</li>

</ul>
<input type="submit" name="invia" id="registrati" value="Registrati" />
</form>

</body>
</html>

Questo invece è il file per l'analisi e l'invio dei dati dal form al database (register.php):


<html>
<head>
</head>
<body>


<?php


$connx=mysql_connect("localhost", "root", "");
if (!$connx)
{
die ("Connessione a Mysql non riuscita. - " . mysql_error());
}
$connx_db=mysql_select_db("sito", $connx);
if (!$connx_db)
{
die ("Connessione non riuscita al database specificato. - " . mysql_error());
}

$username = mysql_real_escape_string($_POST['username']);
$password1 = mysql_real_escape_string($_POST['password1']);
$password2 = mysql_real_escape_string($_POST['password2']);


// controllo campi vuoti e password

if($username == "" ){
echo "Devi riempire tutti i campi";
}elseif($password1 == "" || $password2 == ""){
echo "Devi riempire tutti i campi";
}elseif($password2 != $password1){
echo "Le password devono coincidere";
}else{

$query = "INSERT INTO `utenti` ( `username` , `password’ ) VALUES ('$username','$password2')";

echo "registrazione avvenuta";

}


?>





</body>
</html>

Potete aiutarmi a risolvere questo problema?

Mettiu_
08-06-2013, 15:24
Ciao, hai creato la query ma ti sei dimenticato di eseguirla! :)
Dopo l'istruzione: $query = "INSERT INTO `utenti` ( `username` , `password’ ) VALUES ('$username','$password2')";
devi fare:
mysqli_query($connx_db, $query);
E ricordati anche di chiudere la connessione al DB! ;-)

alexxio1989
08-06-2013, 15:53
ho messo quello che mi hai detto dopo l'invio dei dati ma mi da questo errore :
Warning: mysql_query() expects parameter 2 to be resource, string given in C:\xampp\htdocs\register.php on line 38

Mettiu_
08-06-2013, 16:08
Leggo che mysql_select_db (http://php.net/manual/en/function.mysql-select-db.php) è deprecata. E' meglio riscrivere il tutto così:

<?php
$connx=mysqli_connect("localhost", "root", "", "sito");
if (!$connx)
{
die ("Connessione a Mysql non riuscita. - " . mysql_error());
}
$username = mysql_real_escape_string($_POST['username']);
$password1 = mysql_real_escape_string($_POST['password1']);
$password2 = mysql_real_escape_string($_POST['password2']);


// controllo campi vuoti e password

if($username == "" ){
echo "Devi riempire tutti i campi";
}
elseif($password1 == "" || $password2 == ""){
echo "Devi riempire tutti i campi";
}
elseif($password2 != $password1){
echo "Le password devono coincidere";
}
else{
$query = "INSERT INTO `prova`.`utenti` (`username`, `password`) VALUES ('".$username."', '".$password1."');";
$ris = mysqli_query($connx, $query);
mysqli_close($connx);
echo "registrazione avvenuta";
}
?>

Controlla se i dati per la connessione al DB sono giusti (potrei aver scordato qualcosa) e vedi se va.

Mettiu_
08-06-2013, 16:17
C'era anche un errore nella concatenazione dei parametri nella query:
$query = "INSERT INTO `prova`.`utenti` (`username`, `password`) VALUES ('".$username."', '".$password1."');";
Così dovrebbe andare (ho sistemato il codice nel mio precedente post)!