Correzione per form PHP/HTML

21 Dic 2014
3
0
0
Buongiorno, è qualche giorno che sto bestemmiando per capire come risolvere questo problema, allora io ho un form di registrazione scritto in html :
HTML:
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title></title>
</head>
<body>
<h2 style="text-align: center;">Registrazione</h2>
<form name="form_registration" method="post" action="registrati.php"><br>
<p style="text-align: center;">Username: <br>
<input name="user" type="text"></p>
<br>
<p style="text-align: center;">Email: <br>
<input name="email" type="text"></p>
<br>
<p style="text-align: center;">Password: <br>
<input name="pass1" type="password"></p>
<br>
<p style="text-align: center;">Ripeti Password: <br>
<input name="conferma" type="password"></p>
<div style="text-align: center;"><button>Registrati</button> </div>
</form>
</body>
</html>


che reindirizza al seguente script:

PHP:
<?php
$nomehost = “localhost”;
$nomeuser = “root”;
$password = “...”;
$dbname = “utenti”;
$connessione = mysql_connect($nomehost,$nomeuser,$password);

if($connessione == 0) { echo “connessione fallita”;}

$database_select=mysql_select_db($dbname,$connessione);
if($database_select == 0) {echo “selezione non riuscita”;}

$user = ($_POST[‘user’]);
$mail = ($_POST[‘email’]);
$pass1 = ($_POST[‘pass1’]);
$conferma = ($_POST[‘conferma’]);


if($pass1!=$conferma) { echo “password non corrispondenti”;}

else {


if($user == ”” or $mail == "" or $pass1 == "" or $conferma ==“”){


echo “tutti i campi sono obbligatori”. “<br>” . ‘<a href=“http://buzzi2h.ovh/sito/prova.php”>ritorna indietro</a>’;}

else {

$query = “ Insert into ‘tabella_registrati’ (‘user’ , ‘email’ , ‘password’) VALUES (‘$user’,’$mail’,’$pass1)”;

$result=mysql_query($query,$connessione);

if($result == 0) die (“errore di registrazione”);

else

header(“location:prova.php”);

}
}
?>

ora il problema è: quando inserisco i dati e premo registrati, mi reindirizza, ma dandomi pagina vuota, e nel database mysql non ho niente, se qualcuno mi può chiarire dove sbaglio ne sarei grato.


grazie in anticipo
 
<?php

$nomehost = “localhost”;
$nomeuser = “root”;
$password = "blabla";
$dbname = “utenti”;
$connessione = mysql_connect($nomehost,$nomeuser,$password);

if($connessione == 0) { echo 'connessione fallita'; }

$database_select=mysql_select_db($dbname,$connessione);
if($database_select == 0) {echo 'selezione non riuscita';}

$user= "$_POST[user]";
$mail = "$_POST[mail]";
$pass1 = "$_POST[pass1]";
$conferma = "$_POST[conferma]";

//Protezione da MySQL injection
$mail = trim(strip_tags(stripslashes($mail)));
$pass1 = trim(strip_tags(stripslashes($pass1)));
$conferma = trim(strip_tags(stripslashes($conferma)));
$user= trim(strip_tags(stripslashes($user)));

// CONTROLLO SE I CAMPI SONO STATI COMPILATI
if ($mail == "" | $pass1 == "" | $conferma == "" | $user == "") {

echo "<p>Errore, compila tutti i campi richiesti.</p>";

}else{

$Sql="INSERT INTO tua_tabella (user, mail, pass1) VALUES ('$user', '$mail', '$pass1')";

if (!($Result=mysql_query($Sql)))

echo "<p>Errore, registrazione fallita.</p>";

else{

echo "<p>Complimenti! Registrazione avvenuta con successo. Attendi..</p>";

}

header("location:prova.php");

}

?>
 
Punto uno perchè dai gli stili direttamente dall html se prima colleghi il foglio di stile css.
Due il button in input submit che ho inserito io invia dati tipo POST alla pagina registrati.php.

HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="style.css">
<title></title>
</head>
<body>
<h2 style="text-align: center;">Registrazione</h2>
<form name="form_registration" method="post" action="registrati.php"><br>
<p style="text-align: center;">Username: <br>
<input name="user" type="text"></p>
<br>
<p style="text-align: center;">Email: <br>
<input name="email" type="text"></p>
<br>
<p style="text-align: center;">Password: <br>
<input name="pass1" type="password"></p>
<br>
<p style="text-align: center;">Ripeti Password: <br>
<input name="conferma" type="password"></p>
<div style="text-align: center;"><input type="submit" name="invio" value="Registrati" /></div>
</form>
</body>
</html>

PHP:
<?php 
$nomehost = “localhost”; 
$nomeuser = “root”; 
$password = “...”; 
$dbname = “utenti”; 
$connessione = mysql_connect($nomehost,$nomeuser,$password); 

if($connessione == 0) { echo “connessione fallita”;} 

$database_select=mysql_select_db($dbname,$connessione); 
if($database_select == 0) {echo “selezione non riuscita”;} 

$user = $_POST['user']; 
$mail = $_POST['email']; 
$pass1 = $_POST['pass1']; 
$conferma = $_POST['conferma']; 

if (isset($_POST['invio'])){

if($pass1!=$conferma) { echo “password non corrispondenti”;} 

else { 


if($user == ”” or $mail == "" or $pass1 == "" or $conferma ==“”){ 


echo “tutti i campi sono obbligatori”. “<br>” . ‘<a href=“http://buzzi2h.ovh/sito/prova.php”>ritorna indietro</a>’;} 

else { 

$query = “ Insert into ‘tabella_registrati’ (‘user’ , ‘email’ , ‘password’) VALUES (‘$user’,’$mail’,’$pass1)”; 

$result=mysql_query($query,$connessione); 

if($result == 0) die (“errore di registrazione”); 

else 

header(“location:prova.php”); 

} 
}

}else{
 echo "Button registrati non premuto.  <a href=“http://buzzi2h.ovh/sito/prova.php”>ritorna indietro</a>";
} 
?>

Spero che la sintassi sia corretta perchè l ho scritto dall ipad non ho nemmeno provato il codice. Aspetto tua risposta ciao e buon natale :)
 
Ultima modifica:
Ciao ti posto il tuo script corretto e aggiornato in mysqli testato e funziona.

PHP:
<?php 
$nomehost = "localhost"; 
$nomeuser = "admin"; 
$password = "admin"; 
$dbname = "utenti"; 
 $mysqli = new mysqli($nomehost, $nomeuser, $password, $dbname);


$user = ($_POST['user']); 
$mail = ($_POST['email']); 
$pass1 = ($_POST['pass1']); 
$conferma = ($_POST['conferma']); 


if($pass1!=$conferma) { echo "password non corrispondenti";} 

else { 


if($user == "" || $mail == "" || $pass1 == "" || $conferma ==""){ 


echo "tutti i campi sono obbligatori". "<br>" . "<a href='http://buzzi2h.ovh/sito/index.html'>ritorna indietro</a>";} 

else { 


$stmt = $mysqli->prepare("INSERT INTO tabella_registrati(user, email, password) VALUES (?, ?, ?)");
	$stmt->bind_param('sss', 
	$user, 
	$mail,
	$pass1
	);
	$stmt->execute(); 
	$stmt->close();

 

header("location: index.html"); 

} 
} 
?>
 

Discussioni simili