- Home
- Categorie
- Coding e Sistemistica
- PHP
- script login
-
ciao,
ho letto e messo lo script, funziona,ovviamente..
il problema è che giustamente mi dice:"Non hai fatto il login correttamente, mi spiace riprova o iscriviti"
questo perchè non cè nessun usaername e password nel database, quindi avrei bisogno di creare il file register.php , al quale mi manda cliccando su "iscriviti".
mi aiuteresti in questo step?
grazie in anticipo
-
beh, non è difficile farlo
Hai bisogno di una pagina con il form di immissione dati di iscrizione, un qualcosa del genere:
[html]<form action="register.php" method="POST" name="register">
Username<input type="text" name="username">
Password<input type="password" name="password">
Verifica password<input type="password" name="repassword">
<input type="submit" value="Iscriviti">[/html]e poi il file register.php vero e proprio:
[php]<?
include "config.php";
// inizializza sempre le variabili che usi in uno script
$username="";
$psw="";
$repsw="";
// assegna i valori POSTati a queste variabili hashando la password
$username=$_POST['username'];
$psw=md5($_POST['password']);
$repsw=md5($_POST['repassword']);// verifiche di controllo e sicurezza e quindi scrivi sul Db
$sql = "INSERT INTO utenti (username, password) VALUES ('$username', '$psw')";
$query= @mysql_query($sql) or die (mysql_error());
@mysql_close($connection);
?>[/php]Questa è una versione semplice e SENZA sicurezze.
Se vuoi implementare delle sicurezze, cosa da fare anche sulla pagina di login, bisognerà immettere lì dove ho messo il commento di controllo e verifiche di sicurezza un po' di cose e molte dipendono dalle tue scelte. Puoi addirittura decidere di fare un'iscrizione con username e e-mail, inviando la password alla mail dell'utente, password che generera' il tuo codice stesso.Restando sul fatto di registrarsi con utente e psw, il primo controllo da fare è che $username e $psw abbiano un valore e che la psw ridigitata sia uguale:
[php]if ($username!="" && $psw!="" && $repsw!=""){
if ($psw===$repsw){
// allora passiamo al prossimo controllo/verifica
} else {
echo "Controlla la password digitata";
}
} else {
echo "Devi compilare tutti i campi per poterti registrare";
}[/php]Il prossimo passo è quello di evitare le SQL injection, la password è hashata quindi non ci sono problemi, ma il campo username e anche troppo facilmente attaccabile. Le scelte sono diverse, potresti evitare a priori l'iscrizione con username che contengano caratteri *sensibili *(' , " , < , > , &) o passare l'username da una funzione che modifichi questi caratteri in entità html (vedi htmlentities() o htmlspecialchars() nella sezione Funzioni PHP ) e lo stesso dovrai fare per la pagina di login.
Già così hai fatto qualcosa per la sicurezza dello script, cosa implementare come verifiche dipende dalle scelte che farai
-
dunque...innanzitutto grazie, pero' il problema è leggermente più complicato, cerco di spiegarmi meglio:
questa è la terzultima pagina di script del mio test:<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"<html>
<head>
<p align="left">
<title>prueba emociones</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<BR>
<BR>
<p align="center"> <font size="+4"><BR> <BR><A HREF=salvastep/values</A>sceglie se finire il test e vedere i valori
<p align="center"> <font size="+4"><BR> <BR><A HREF="login....</A>login
</body>
</html>
<?php
$_SESSION['test_valence_photo10'] = $_GET['test_valence_photo10'];
?>questa la penultima:
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Skyline">
<title>Login</title>
</head>
<body>
<form action="register.php" method="POST" name="register">
Username<input type="text" name="username">
Password<input type="password" name="password">
<input type="submit" value="Iscriviti">
</body>
</html>poi l'ultima:
<?php
session_start();
?><?
$connessione=mysql_connect("localhost", "");
$selezione_db=mysql_select_db("guest_book", $connessione);/* Acquisizione Variabili Registrazione Da Register.php /
$username = @$_POST['username'];
$password = @$_POST['password'];
$_SESSION['username'] = $_GET['username'];
/ Impostazioni Su Variabili acquisite */
// Criptazione MD5 Password
$passwordcript = md5('$password');
// Controllo: Rimpiazziare Caratteri Su Variabili Acquisite
$username = str_replace("<", "<", $username);
$username = str_replace(">", ">", $username);
$password = str_replace("<", "<", $password);
$password = str_replace(">", ">", $password);
// Controllo: Eliminare Spazi [Inizio - Fine] Su Variabili Acquisite
(trim($username) == "");
(trim($password) == "");
// Controllo: Verifica Lunghezza Variabili Acquisite
if (strlen($username) < 6 or strlen($password) < 6) {$WarnUsr = "<strong>Username</strong> o <strong>Password</strong> troppo corti. La loro lunghezza minima è di 6 caratteri.";
echo "$WarnUsr";
}
// Esecuzione Query Di Inserimento In Database Mysql
else {
$inserimento=mysql_query( "insert into messaggi (id_user,username,password,user,gender,date_of_birth,country,test_arousal_photo1,test_valence_photo1,test_arousal_photo2,test_valence_photo2,test_arousal_photo3,test_valence_photo3,test_arousal_photo4,test_valence_photo4,test_arousal_photo5,test_valence_photo5,test_arousal_photo6,test_valence_photo6,test_arousal_photo7,test_valence_photo7,test_arousal_photo8,test_valence_photo8,test_arousal_photo9,test_valence_photo9,test_arousal_photo10,test_valence_photo10,date) values ('" . $_SESSION['id_user']. "','" . $_SESSION['username']. "','" . $_SESSION['password']. "', '" . $_SESSION['user']. "','" . $_SESSION['gender'] . "','" . $_SESSION['year'] . "-" . $_SESSION['month'] . "-" . $_SESSION['day'] . "','" . $_SESSION['country'] . "','" . $_SESSION['test_arousal_photo1'] . "','" . $_SESSION['test_valence_photo1'] . "','" . $_SESSION['test_arousal_photo2'] . "','" . $_SESSION['test_valence_photo2'] . "','" . $_SESSION['test_arousal_photo3'] . "','" . $_SESSION['test_valence_photo3'] . "','" . $_SESSION['test_arousal_photo4'] . "','" . $_SESSION['test_valence_photo4'] . "','" . $_SESSION['test_arousal_photo5'] . "','" . $_SESSION['test_valence_photo5'] . "','" . $_SESSION['test_arousal_photo6'] . "','" . $_SESSION['test_valence_photo6'] . "','" . $_SESSION['test_arousal_photo7'] . "','" . $_SESSION['test_valence_photo7'] . "','" . $_SESSION['test_arousal_photo8'] . "','" . $_SESSION['test_valence_photo8'] . "','" . $_SESSION['test_arousal_photo9'] . "','" . $_SESSION['test_valence_photo9'] . "','" . $_SESSION['test_arousal_photo10'] . "','" . $_SESSION['test_valence_photo10'] . "', now())" );echo "La registrazione è avvenuta correttamente. Adesso puoi effettuare il login.";
}?>
il mio scopo è poter inserire la registrazione degli utenti alla fine del test, quindi alla penultima pagina possono scegliere se registrarsi e godere dei benifici oppure non registrarsi e finire il tutto.
Qualora scegliessero di registrarsi, avendo creato una sessione, devo per forza di cosa ricordarmi di tutti i dati inseriti dall'utente che ha effettuato il test, quindi aspettare che si registri con la propria username e password, controllare che non sia già iscritto l'username e mandare tutto in registrazione al database che alla fine elaborerà i risultati .grazie della pazienza.
-
Per tirarti dietro i risultati puoi utilizzare vari modi o le sessioni o un hidden data magari (ti sconsiglio vivamente di usare $_GET)
Per verificare che non esista già l'username dovrai fare un
[php] "SELECT username FROM utenti WHERE username='$username'";[/php]
se la query restituisce un valore significa che l'username è già esistente
-
dunque..ho risolto la parte delle sessioni, cosi' ora inserisco tutto alla fine.
fatto tutto con $_GET.questo è il codice finale nella pagina del login, ora mi rimane da mettere delle sicurezze e soprattutto la verifica che l'username non sia già presente e se presente farglielo sapere.
infine,come potrei gestire un invio automatico di email se l'utente richiede la password?
grazie davvero!<?php
session_start();
?><?/* Acquisizione Variabili Registrazione Da Register.php /
$_SESSION['username'] = $_GET['username'];
$_SESSION['password'] = $_GET['password'];
/ Impostazioni Su Variabili acquisite */
// Criptazione MD5 Password
$passwordcript = md5('$password');$connessione=mysql_connect("localhost", "");
$selezione_db=mysql_select_db("guest_book", $connessione);
$inserimento=mysql_query( "insert into messaggi (id_user,username,password,user,gender,date_of_birth,country,test_arousal_photo1,test_valence_photo1,test_arousal_photo2,test_valence_photo2,test_arousal_photo3,test_valence_photo3,test_arousal_photo4,test_valence_photo4,test_arousal_photo5,test_valence_photo5,test_arousal_photo6,test_valence_photo6,test_arousal_photo7,test_valence_photo7,test_arousal_photo8,test_valence_photo8,test_arousal_photo9,test_valence_photo9,test_arousal_photo10,test_valence_photo10,date) values ('" . $_SESSION['id_user']. "','" . $_SESSION['username']. "','" . $_SESSION['password']. "', '" . $_SESSION['user']. "','" . $_SESSION['gender'] . "','" . $_SESSION['year'] . "-" . $_SESSION['month'] . "-" . $_SESSION['day'] . "','" . $_SESSION['country'] . "','" . $_SESSION['test_arousal_photo1'] . "','" . $_SESSION['test_valence_photo1'] . "','" . $_SESSION['test_arousal_photo2'] . "','" . $_SESSION['test_valence_photo2'] . "','" . $_SESSION['test_arousal_photo3'] . "','" . $_SESSION['test_valence_photo3'] . "','" . $_SESSION['test_arousal_photo4'] . "','" . $_SESSION['test_valence_photo4'] . "','" . $_SESSION['test_arousal_photo5'] . "','" . $_SESSION['test_valence_photo5'] . "','" . $_SESSION['test_arousal_photo6'] . "','" . $_SESSION['test_valence_photo6'] . "','" . $_SESSION['test_arousal_photo7'] . "','" . $_SESSION['test_valence_photo7'] . "','" . $_SESSION['test_arousal_photo8'] . "','" . $_SESSION['test_valence_photo8'] . "','" . $_SESSION['test_arousal_photo9'] . "','" . $_SESSION['test_valence_photo9'] . "','" . $_SESSION['test_arousal_photo10'] . "','" . $_SESSION['test_valence_photo10'] . "', now())" );?>
-
Come dicevo poco fa' ....... utilizza quello che vuoi ma NON $_GET per inviare i dati.
Senno' tanto vale che lasci accesso liberoUtilizzare $_GET è come mettere una copia delle chiavi di casa sotto il tappetino di Welcome che hai all'esterno
-
ma ho utilizzao $_GET per tutte le sessioni... devo ricambiare tutto?
se utilizzo $_POST è meglio?
-
Come potrai vedere dalle FAQ di sezione utilizzare il metodo GET, se parliamo di sicurezza, è la prima cosa che devi evitare dato che i dati vengono passati IN CHIARO tramite url.
Si, il metodo POST è decisamente meglio, dato che passa i valori in background, ma occhio, ricordati di inizializzare sempre le variabili prima di usarle in uno script
[php]$username=""; // variabile inizializzata[/php]
-
grazie mille, trasformero' tutto in POst allora.
ultima cosa prima di chiudere oggi......
come posso impedire all'utente di tornare indietro nelle pagine?
-
a che io sappia non puoi impedirlo a 360°, anche se fai sparire la barra di navigazione l'utente dovrebbe comunque avere la possibilità di farlo tramite click destro.
Forse puoi prevedere un alert Js, ma ripeto, non mi è mai capitato, potrei sbagliarmi (anzi è molto probabile)
-
ho un problema con il login:
se lo faccio dal browser in cui ho messo password e username me lo ricorda con le sessioni, se pero' chiudo e riapro, sembra non riesca a trovare nel database l'utente con quei valori...index:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Skyline">
<title>Login</title>
</head>
<body>
<form action="login.php" method="post" enctype="application/x-www-form-urlencoded" name="login">
<input type="text" value="Username" size="20" maxlength="20" name="username" /><br />
<input type="password" value="Password" size="20" maxlength="20" name="password" /><br />
<input type="submit" value="Login" name="Submit" />
</form>
</body>
</html>login:
<?php
//includo il file di Configurazione con session_start()) dentro
include "config.php";
//Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
$query = mysql_query("SELECT username FROM utenti WHERE username = '".$_POST['username']."' AND password = '".md5($_POST['password'])."'");
//se esegue la query entra nell'IF
if($query)
{
//metto l'username nella variabile di sessione "username"
$_SESSION['username'] = $_POST['username'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
else
{
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
?>config:
<?php
session_start();
$connection = mysql_connect( 'localhost', ) or die('Could not connect to server.' );
mysql_select_db('guest_book', $connection) or die('Could not select database.');
?>login:
<?php
//includo il file di Configurazione con session_start()) dentro
include "config.php";
//se esiste la variabile $_SESSION['username'] è loggato
if(isset($_SESSION['username']))
echo "Benvenuto ".$_SESSION['username']." hai effettuato il login con successo<br />Puoi effettuare il logout";
//Altrimenti non è loggato
else
echo "Non hai fatto il login correttamente, mi spiace <a href="index1.php">riprova</a> o <a href="register.php">iscriviti</a>";
?>logout:
<?php
//distruggo le sessioni per fare il logout
session_destroy();
echo "Logout effettuato";
echo "<script>
window.location = "index.php"
</script>";
?>
-
Guarda come ti ha salvato i dati nel Db per prima cosa e poi fai un echo dei valori postati dalla pagina index.
Vediamo se c'è qualcosa che non va
-
come lo richiamo l'echo da qui?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Skyline">
<title>Login</title>
</head>
<body>
<form action="login.php" method="post" enctype="application/x-www-form-urlencoded" name="login">
<input type="text" value="Username" size="20" maxlength="20" name="username" /><br />
<input type="password" value="Password" size="20" maxlength="20" name="password" /><br />
<input type="submit" value="Login" name="Submit" />
</form>
</body>
</html>
-
i dati sono stati già salvati con $_POST ma al richiamo dal login dice che non ci sono:bho:
-
da qui non seleziona la tabella del db. potrebbe essere questo?
<?php
session_start();
$connection = mysql_connect( 'localhost', ) or die('Could not connect to server.' );
mysql_select_db('guest_book', $connection) or die('Could not select database.');?>
-
ho fatto un po di modifiche è l'ho testato in locale, funge tutto
index.html
[html]<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Skyline">
<title>Login</title>
</head>
<body>
<form action="login.php" method="post" enctype="application/x-www-form-urlencoded" name="login">
<input type="text" value="username" size="20" maxlength="20" name="username"><br>
<input type="password" value="password" size="20" maxlength="20" name="password"><br>
<input type="submit" value="Login" name="Submit">
</form>
</body>
</html>[/html]login.php
[php]<?php
//includo il file di Configurazione con session_start()) dentro
include "config.php";
//Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
$username="";
$psw="";
$username=$_POST['username'];
$psw=md5($_POST['password']);
$query = mysql_query("SELECT username FROM utenti WHERE username='$username' AND password='$psw'") or die (mysql_error());
$veruser = mysql_num_rows ($query);
//se esegue la query entra nell'IF
if($veruser !== 0)
{
//metto l'username nella variabile di sessione "username"
session_start();
$_SESSION['username'] = $_POST['username'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
else
{
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
@mysql_close($connection);
?>
[/php]config.php
[php]<?php
$connection = mysql_connect( 'localhost', 'userdb', 'pswdb') or die('Could not connect to server.' );
mysql_select_db('dbname', $connection) or die('Could not select database.');
?>[/php]enter.php
[php]<?php
//includo il file di Configurazione con session_start()) dentro
include "config.php";
//se esiste la variabile $_SESSION['username'] è loggato
session_start();
if($_SESSION['username'] != "")
{
echo "Benvenuto ".$_SESSION['username']." hai effettuato il login con successo<br>Puoi effettuare il <a href="logout.php">logout</a>.";
}
//Altrimenti non è loggato
else
{
echo "Non hai fatto il login correttamente, mi spiace <a href="index.html">riprova</a> o <a href="register.php">iscriviti</a>";
}
?>[/php]logout.php
[php]<?php
//distruggo le sessioni per fare il logout
session_start();
session_unset();
session_destroy();
echo "Logout effettuato";
echo "<script>
window.location = "index.html"
</script>";
?>[/php]register.php
[php]<html>
<head>
<title>Iscriviti</title>
</head>
<body>
<form action="register.php" method="POST" name="register">
Username<input type="text" name="username"><br>
Password<input type="password" name="password"><br>
Verifica password<input type="password" name="repassword"><br>
<input type="submit" value="Iscriviti">
<?
include "config.php";
// inizializza sempre le variabili che usi in uno script
$username="";
$psw="";
$repsw="";
// assegna i valori POSTati a queste variabili hashando la password
$username=$_POST['username'];
$psw=md5($_POST['password']);
$repsw=md5($_POST['repassword']);
$ver = "SELECT * FROM utenti WHERE username= '$username'";
$tabver = @mysql_query ($ver) or die (mysql_error());
$veruser = mysql_num_rows ($tabver);
if ($username=='' || $psw=='' || $repsw=='')
{
echo '<br>Compila correttamente tutti i campi';
}
else if ($psw !== $repsw)
{
echo "<br>Controllare la password digitata.";
}
else if ($veruser !== 0)
{
echo "<br>L'username richiesto risulta già registrato";
}
else if (eregi("[:,;èéçòà °@#ù§*+^ì'<>?!£$%&/=()]", $username))
{
echo "<br>Il nick contiene caratteri non validi.";
}
else
{
$sql = "INSERT INTO utenti (username, password) VALUES ('$username', '$psw')";
$query= @mysql_query($sql) or die (mysql_error());
echo "<br>Registrazione effettuata.";
}
@mysql_close($connection);
?>
</body>
</html>[/php]Ci andrebbero altri controlli per eliminare SQL injection pero', ma già il grosso è fatto così
-
ciao, grazie per lo script.
pero' io ho gia' una sessione attiva dato che la registrazione la devo mettere quasi alla fine di tutto, quindi mi dice:
Notice: A session had already been started - ignoring session_start() in c:\programmi\easyphp1-8\www\config.php on line 2
poi...
La tabella 'guest_book.utenti' non esiste
infatti la tabella si chiama messaggi e il db si chiama guest_book.index3:
<?php
session_start();
?><html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<meta name="author" content="Skyline">
<title>Login</title>
</head>
<body>
<form action="login2.php" method="post" enctype="application/x-www-form-urlencoded" name="login">
<input type="text" value="username" size="20" maxlength="20" name="username"><br>
<input type="password" value="password" size="20" maxlength="20" name="password"><br>
<input type="submit" value="Login" name="Submit">
</form>
</body>
</html>login2:
<?php
session_start();
?>
<?php
//includo il file di Configurazione con session_start()) dentro
include "config.php";
//Eseguo una query nella tabella utenti verificando se esiste l'username con quella password
$username="";
$psw="";
$username=$_POST['username'];
$psw=md5($_POST['password']);
$query = mysql_query("SELECT username FROM utenti WHERE username='$username' AND password='$psw'") or die (mysql_error());
$veruser = mysql_num_rows ($query);
//se esegue la query entra nell'IF
if($veruser !== 0)
{
//metto l'username nella variabile di sessione "username"
session_start();
$_SESSION['username'] = $_POST['username'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
else
{
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
@mysql_close($connection);
?>config:
<?php
session_start();
$connection = mysql_connect( 'localhost', ) or die('Could not connect to server.' );
mysql_select_db('guest_book', $connection) or die('Could not select database.');
?>enter:
<?php
session_start();
?>
<?php
//includo il file di Configurazione con session_start()) dentro
include "config.php";
//se esiste la variabile $_SESSION['username'] è loggato
session_start();
if($_SESSION['username'] != "")
{
echo "Benvenuto ".$_SESSION['username']." hai effettuato il login con successo<br>Puoi effettuare il <a href="logout.php">logout</a>.";
}
//Altrimenti non è loggato
else
{
echo "Non hai fatto il login correttamente, mi spiace <a href="index.html">riprova</a> o <a href="register.php">iscriviti</a>";
}
?>logout:
<?php
session_start();
?>
<?php
//distruggo le sessioni per fare il logout
session_start();
session_unset();
session_destroy();
echo "Logout effettuato";
echo "<script>
window.location = "index.html"
</script>";
?>register:
<?php
session_start();
?>
<html>
<head>
<title>Iscriviti</title>
</head>
<body>
<form action="register.php" method="POST" name="register">
Username<input type="text" name="username"><br>
Password<input type="password" name="password"><br>
Verifica password<input type="password" name="repassword"><br>
<input type="submit" value="Iscriviti">
<?
include "config.php";
// inizializza sempre le variabili che usi in uno script
$username="";
$psw="";
$repsw="";
// assegna i valori POSTati a queste variabili hashando la password
$username=$_POST['username'];
$psw=md5($_POST['password']);
$repsw=md5($_POST['repassword']);
$ver = "SELECT * FROM utenti WHERE username= '$username'";
$tabver = @mysql_query ($ver) or die (mysql_error());
$veruser = mysql_num_rows ($tabver);
if ($username=='' || $psw=='' || $repsw=='')
{
echo '<br>Compila correttamente tutti i campi';
}
else if ($psw !== $repsw)
{
echo "<br>Controllare la password digitata.";
}
else if ($veruser !== 0)
{
echo "<br>L'username richiesto risulta già registrato";
}
else if (eregi("[:,;èéçòà °=()]", $username))
{
echo "<br>Il nick contiene caratteri non validi.";
}
else
{
<?$connessione=mysql_connect("localhost", "");
$selezione_db=mysql_select_db("guest_book", $connessione);$inserimento=mysql_query( "insert into messaggi (id_user,username,password,user,gender,date_of_birth,country,test_arousal_photo1,test_valence_photo1,test_arousal_photo2,test_valence_photo2,test_arousal_photo3,test_valence_photo3,test_arousal_photo4,test_valence_photo4,test_arousal_photo5,test_valence_photo5,test_arousal_photo6,test_valence_photo6,test_arousal_photo7,test_valence_photo7,test_arousal_photo8,test_valence_photo8,test_arousal_photo9,test_valence_photo9,test_arousal_photo10,test_valence_photo10,date) values ('" . $_SESSION['id_user']. "','" . $_POST['username'] . "','" . $_POST['password'] . "', '" . $_SESSION['user']. "','" . $_SESSION['gender'] . "','" . $_SESSION['year'] . "-" . $_SESSION['month'] . "-" . $_SESSION['day'] . "','" . $_SESSION['country'] . "','" . $_SESSION['test_arousal_photo1'] . "','" . $_SESSION['test_valence_photo1'] . "','" . $_SESSION['test_arousal_photo2'] . "','" . $_SESSION['test_valence_photo2'] . "','" . $_SESSION['test_arousal_photo3'] . "','" . $_SESSION['test_valence_photo3'] . "','" . $_SESSION['test_arousal_photo4'] . "','" . $_SESSION['test_valence_photo4'] . "','" . $_SESSION['test_arousal_photo5'] . "','" . $_SESSION['test_valence_photo5'] . "','" . $_SESSION['test_arousal_photo6'] . "','" . $_SESSION['test_valence_photo6'] . "','" . $_SESSION['test_arousal_photo7'] . "','" . $_SESSION['test_valence_photo7'] . "','" . $_SESSION['test_arousal_photo8'] . "','" . $_SESSION['test_valence_photo8'] . "','" . $_SESSION['test_arousal_photo9'] . "','" . $_SESSION['test_valence_photo9'] . "','" . $_SESSION['test_arousal_photo10'] . "','" . $_SESSION['test_valence_photo10'] . "', now())" );
mysql_close($connessione);
?></body>
</html>
-
dunque, rispetto a prima che mi dava l'inesistenza della taballa utenti, giustamente l'ho cambiata in messaggi:
<?php
//includo il file di Configurazione con session_start()) dentro
include "config.php";
//Eseguo una query nella tabella messaggi verificando se esiste l'username con quella password
$username="";
$psw="";
$username=$_POST['username'];
$psw=md5($_POST['password']);
$query = mysql_query("SELECT username FROM messaggi WHERE username='$username' AND password='$psw'") or die (mysql_error());
$veruser = mysql_num_rows ($query);
//se esegue la query entra nell'IF
if($veruser !== 0)
{
//metto l'username nella variabile di sessione "username"
session_start();
$_SESSION['username'] = $_POST['username'];
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
else
{
//Faccio il redirect nella pagine enter.php
echo "<script>
window.location = "enter.php"
</script>";
}
@mysql_close($connection);
?>adesso il problema è che mi visualizza questo:
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\easyphp1-8\www\config.php:8) in c:\programmi\easyphp1-8\www\enter.php on line 5
Notice: Undefined index: username in c:\programmi\easyphp1-8\www\enter.php on line 6
Non hai fatto il login correttamente, mi spiace riprova o iscriviti
-
dunque, sembra che per ora sia risolto..faccio login e registrazione, ...grazie!
ora provo a mettere le tutto con le sessioni.
-
allora, ora ci siamo quasi, tutto bene, registra ecc.
pero', c'è sempre un pero', siccome ho messo tutto in una sessione che parte dall'inizio, e avendo messo nel database la chiave primaria id_autoincrement, succede che ogni volta che mi connetto al database, tipo per controllare l'utente, o magari solo per l'iscrizione, ovviamente mi incrementa di uno.
come potrei ovviare a tutto cio'?
thanksquesta è l'ultima pagina dello script che contiene tutte le variabili
<?php
session_start();
?>
<html>
<head>
<title>Iscriviti</title>
</head>
<body>
<form action="register2.php" method="POST" name="register">
Username<input type="text" name="username"><br>
Password<input type="password" name="password"><br>
Verifica password<input type="password" name="repassword"><br>
<input type="submit" value="Iscriviti">
<?
include "config.php";
// inizializza sempre le variabili che usi in uno script
$username="";
$psw="";
$repsw="";
// assegna i valori POSTati a queste variabili hashando la password
$username=$_POST['username'];
$psw=md5($_POST['password']);
$repsw=md5($_POST['repassword']);
$ver = "SELECT * FROM messaggi WHERE username= '$username'";
$tabver = @mysql_query ($ver) or die (mysql_error());
$veruser = mysql_num_rows ($tabver);
if ($username=='' || $psw=='' || $repsw=='')
{
echo '<br>Compila correttamente tutti i campi';
}
else if ($psw !== $repsw)
{
echo "<br>Controllare la password digitata.";
}
else if ($veruser !== 0)
{
echo "<br>L'username richiesto risulta già registrato";
}
else if (eregi("[:,;èéçòà =()]", $username))
{
echo "<br>Il nick contiene caratteri non validi.";
}
else
{
$sql = "INSERT INTO messaggi (username, password) VALUES ('$username', '$psw')";$inserimento=mysql_query( "insert into messaggi (id_user,username,password,user,gender,date_of_birth,country,test_arousal_photo1,test_valence_photo1,test_arousal_photo2,test_valence_photo2,test_arousal_photo3,test_valence_photo3,test_arousal_photo4,test_valence_photo4,test_arousal_photo5,test_valence_photo5,test_arousal_photo6,test_valence_photo6,test_arousal_photo7,test_valence_photo7,test_arousal_photo8,test_valence_photo8,test_arousal_photo9,test_valence_photo9,test_arousal_photo10,test_valence_photo10,date) values ('" . $_SESSION['id_user']. "','" . $_POST['username']. "','" . $_POST['password']. "', '" . $_SESSION['user']. "','" . $_SESSION['gender'] . "','" . $_SESSION['year'] . "-" . $_SESSION['month'] . "-" . $_SESSION['day'] . "','" . $_SESSION['country'] . "','" . $_SESSION['test_arousal_photo1'] . "','" . $_SESSION['test_valence_photo1'] . "','" . $_SESSION['test_arousal_photo2'] . "','" . $_SESSION['test_valence_photo2'] . "','" . $_SESSION['test_arousal_photo3'] . "','" . $_SESSION['test_valence_photo3'] . "','" . $_SESSION['test_arousal_photo4'] . "','" . $_SESSION['test_valence_photo4'] . "','" . $_SESSION['test_arousal_photo5'] . "','" . $_SESSION['test_valence_photo5'] . "','" . $_SESSION['test_arousal_photo6'] . "','" . $_SESSION['test_valence_photo6'] . "','" . $_SESSION['test_arousal_photo7'] . "','" . $_SESSION['test_valence_photo7'] . "','" . $_SESSION['test_arousal_photo8'] . "','" . $_SESSION['test_valence_photo8'] . "','" . $_SESSION['test_arousal_photo9'] . "','" . $_SESSION['test_valence_photo9'] . "','" . $_SESSION['test_arousal_photo10'] . "','" . $_SESSION['test_valence_photo10'] . "', now())" );
$query= @mysql_query($sql) or die (mysql_error());
echo "<br>Registrazione effettuata.";
}
@mysql_close($connection);
?>
</body>
</html>