Login e registrazione

selvaggia

Utente Attivo
12 Giu 2013
58
1
6
Salve a tutti stò facendo un sito con login e registrazione utilizzando php, per la registrazione il mio problema è che nel momento che compio la registrazione clicco invio ma il sito mi rimane nella pagina della registrazione e non torna alla pagina dove è stato scelto di compiere la registrazione.
Nel login i miei problemi sono diversi cioè quando compio il log nella pagina mi rimane la possibilità di inserire user e pass e se cambio pagina mi perde il log cosa posso fare?
Questo è il mio login
PHP:
if(isset($_POST['Login']))
{
	$u=$_POST['Username'];
	$p=$_POST['Password'];
	$query = "SELECT * FROM utente WHERE Username = '".$u."' AND Password = '".$p."'";
	$result = mysql_query($query);
	$res=mysql_num_rows($result);
	if($res<1)
	{
		
		echo "Login non riuscito.";		

 
	
	}
	else 
	{
		$_SESSION['Logged']=true;
?>
		<form action="" method="POST"/>
			Sei stato loggato correttamente. </br>
		</form>
 
ciao
dallo script che hai postato (se è solo quello) non ti sposti da quella pagina.
non capisco poi cosa sia quel form che hai messo in fondo.
senza considerare che un log così è soggetto a injection un po' pericolose
io farei la pag così
PHP:
<?php
session_start();
//connessione al db
if(isset($_POST['Login'])){//questo immagino venga dalla pag dove hai il form in cui inserisci user e pass che potrebbe anche essere su questa
	$u=addslashes(trim($_POST['Username']));//questo da un minimo di protezione
    $p=addslashes(trim($_POST['Password']));//sarebbe bene che la password fosse codificata almeno sah1
	//usa o le PDO o mySqLi, le vecchie querry mySqL sono deprecate
	$query = "SELECT * FROM utente WHERE Username = '".$u."' AND Password = '".$p."'";
    $result = mysql_query($query);
    $res=mysql_num_rows($result);
	if($res < 1){
		//login non riuscito
		header("location:nome_pag_a_cui_vuoi_rinviare.php");//riinvii dove vuoi
		exit();
	}else{
		$_SESSION['utente']=$u;
		header("location:pagine_riservate.php");//riinvii dove vuoi
		exit();
	}
//meno indicazioni dai qui meglio è
?>
poi fai le pagine riservate
PHP:
<?php
session_start();
if(!isset($_SESSION['utente'])){
	header("location:nome_pag_a_cui_vuoi_rinviare.php");//riinvii dove vuoi
	exit();
}
echo "ciao <h2>".$_SESSION['utente']."</h2>";
?>
<!DOCTYPE html>
<html>
<head>
<!-- ... eccetera..... -->
 
ciao
dallo script che hai postato (se è solo quello) non ti sposti da quella pagina.
non capisco poi cosa sia quel form che hai messo in fondo.
senza considerare che un log così è soggetto a injection un po' pericolose

il problema delle injection è la minore perchè è un sito che lavora in locale per una presentazione d'esame
il form finale è stato un mio errore di copiatura
la cos che mi interessa è che il login rimanga finche nn viene fatto il log out
 
ciao
puoi navigare nella pagine riservate sino a che la $_SESSION['utente'] esiste e la sessione esiste sino a quando non esci dal sito o la distruggi con un apposito comando
es. unset($_SESSION['utente'])
se intendi invece che l'utente loggato possa passare dalle riservate alle pubbliche e viceversa senza loggarsi tutte le volte, basta aggiungere alla pag di log la verifica che la sessione esista e se si reindirizzarlo direttamente alle riservate senza chiedere di nuovo user e pass.
se hai pazienza posso farti un esempio
 

Discussioni simili