Ciao, ho una pagina in php che contiene due form, uno per il login e l'altro per la registrazione. I due form richiamano (nell'action) due funzioni. Il login mi funziona ma la registrazione non lo so perchè non mi mostra nemmeno il form. Mi spiego meglio: se associo la funzione registrazione() nell'action del form della registrazione, non mi mostra nessun form, mentre se toglio qualsiasi attributo al form, allora quest'ultimo mi viene mostrato. Non capisco dove sia l'errore..
codice:
<div id="login">
<p>Login</p>
<form action="<?php session_start(); require_once("funzioni.php"); echo login();?>" method="post">
<table>
<tr>
<td>Username:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td><input type="submit" value="Login" name="Login"/></td>
</tr>
</table>
</form>
</div>
<div id="registrazione">
<p>Registrazione</p>
<form action="<?php session_start(); require_once("funzioni.php"); echo registrazione();?>" method="post">
<table>
<tr>
<td>Nome:</td>
<td><input type="text" name="reg-nome"/></td>
</tr>
<tr>
<td>Cognome:</td>
<td><input type="password" name="reg-cognome"/></td>
</tr>
<tr>
<td>Username:</td>
<td><input type="text" name="reg-username"/></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="reg-password"/></td>
</tr>
<tr>
<td><input type="submit" value="Registrami" name="Registrami"/></td>
</tr>
</table>
</form>
</div>
codice:
function login() {
if(isset($_POST['Login'])) {
$conn = dbConnect();
$table = mysql_query("CREATE TABLE IF NOT EXISTS users(
user VARCHAR(50),
password VARCHAR(100),
nome VARCHAR(50),
cognome VARCHAR(50),
primary key(user, password)
)")
or die(mysql_error());
mysql_query($table, $conn);
$query = "replace INTO users(user, password, nome, cognome) VALUES('admin', 'admin', 'admin', 'admin')";
$result = mysql_query($query) OR die(mysql_error());
if(!isset($_POST['username']) OR $_POST['username'] == "" OR !isset($_POST['password']) OR $_POST['password'] == "") {
die("Non hai inserito i dati.");
}
else {
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM users WHERE user='$username' AND password='$password'");
if(mysql_num_rows($result) == 0)
return die("Username e/o password errati");
else {
$_SESSION['loggedin'] = 1;
$_SESSION['username'] = $username;
$user = mysql_fetch_array($result);
header("refresh: 1; url = index.php");
exit();
}
}
}
}
function registrazione() {
$conn = dbConnect();
$table = mysql_query("CREATE TABLE IF NOT EXISTS users(
user VARCHAR(50),
password VARCHAR(100),
nome VARCHAR(50),
cognome VARCHAR(50),
primary key(user, password)
)")
or die(mysql_error());
mysql_query($table, $conn);
$nome = $_POST['reg-nome'];
$cognome = $_POST['reg-cognome'];
$username = $_POST['reg-username'];
$password = $_POST['reg-password'];
$result = mysql_query("SELECT * FROM users WHERE user='$username'");
if(mysql_num_rows($result) == 1) //se esiste già un utente con quel nome
return die("Username già utilizzato.");
else {
$nuovoUtente = "INSERT into users(user, password, nome, cognome) VALUES($username, $password, $nome, $cognome)";
if(mysql_query($nuovoUtente) == FALSE)
echo "Record non inserito " . mysql_error());
else
echo "Registrazione effettuata con successo. Ora puoi effettuare il login.";
}
}
Dov'è l'errore?
Grazie mille