Profilo utente

xxx86

Nuovo Utente
29 Lug 2013
7
0
0
Salve a tutti, mi sono appena registrata a questo forum poichè lo trovo molto interessante e di aiuto.
Sto facendo un'applicazione web e dovrei per ogni utente che si logga visualizzarne il profilo.
Qualcuno mi può aiutare? ho provato a scrivere un pezzo di codice ma è come se non vedo l'utente loggato in quel momento...grazie in anticipo
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Bisogna utilizzare le sessioni o comunque hai bisogno di salvare in un livello di persistenza i dati principali dell'utente, quando vai sulla pagina profilo.php (che è unica per tutti gli utenti) controlli questi dati e stampi tutto ciò che ha a che fare con l'utente in questione.
Comunque, come diceva borgo, senza codice non possiamo aiutare molto.
 

xxx86

Nuovo Utente
29 Lug 2013
7
0
0
Questo è il codice, ma anche se faccio il login mi dice "Devi prima effettuare il login."
PHP:
<?php
session_start();

if (!isset($_SESSION['email']) || !isset($_SESSION['password'])) {
 
    die('Devi prima effettuare il login.');
}

require_once 'inc/database.php';

$utente = isset($_GET['user_id']) ? trim($_GET['user_id']) : ($_SESSION['name']);
$utente = addslashes($user_id);

$profilo = mysql_query("SELECT * FROM login_cliente WHERE name = '{$user_id}'");

if (!$profilo) {
    die('Errore nell\'invio della query del profilo: ' . mysql_error());
}

if (mysql_num_rows($profilo) === 0) {
    die('L\'utente {$utente} non esiste.');
}

$arr = mysql_fetch_assoc($profilo);
?>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
evidentemente le due sessioni, $_SESSION['email']) $_SESSION['password'], o uno o l'altra o entrambe non esistono.
verifica dove dovrebbero essere valorizzate.
poi un piccolo appunto
$_GET['user_id']
usare così l'id via get può essere molto pericoloso
 

xxx86

Nuovo Utente
29 Lug 2013
7
0
0
è vero!!! non ci avevo pensato in realtà per le session ho:
PHP:
<?php

/*
 * In questo file sono contenute le funzioni utili
 * alla gestione delle sessioni
 */

// Questa funzion fa partire la sessione
function sessionStart()
{
	// session_start() ￾ una funzione nativa di PHP
	session_start();
}

// Questa funzione controlla se l'utente ￾ loggato
function sessionUserIsLogged()
{
	// L'utente risulta loggato se nei dati della sessione 
	// risulta login = true
	if (array_key_exists('login', $_SESSION) && $_SESSION['login'] == true)
	{
		return true;
	}
	else
	{
		return false;
	}
}

// Questa funzione aggiunge informazioni alla sessione
function sessionAddInformation($informationKey, $informationValue)
{
	$_SESSION[$informationKey] = $informationValue;
}

// Questa funzione serve per ottenere informazioni dalla sessione
function sessionGetInformation($informationKey)
{
	return $_SESSION[$informationKey];
}

// Questa funzione distrugge la sessione, ￾ usata per 
// effettuare il logout di un utente
function sessionDestroy()
{
	// session_destroy() ￾ una funzione nativa di PHP
	session_destroy();
}
?>

come posso modificare il codice precedente?
e mi daresti un consiglio per l'alternativa da usare a $_GET['user_id']?
grazie mille
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
perche usi quell'ambaradan di funzioni?
es. a che ti serve avere la funzione function sessionStart()?
basta che la prima riga sia
PHP:
<?php
session_start();
//.....
?>
attenta prima del tag php quando usi session_start non deve essereci nemmeno una spazio
non so esattamente cosa devi fare ma le funzioni si usano soprattutto se devi fare la medesima operazione più volte o richiamarle in pagine diverse,
altrimenti sono solo una complicazione.
l'alternativa a $_GET è $_POST, ma non so cosa usi per far loggare l'utente, immagino un form.
in tal caso modifica il tag form <form name="form1" method="post"....
 

xxx86

Nuovo Utente
29 Lug 2013
7
0
0
HTML:
<h3>Effettua Login</h3>
 

<div class="conteiner">
<form class="form-horizontal" method="post" action="" >
  <div class="control-group">
    <label class="control-label" for="user-email">Email</label>
    <div class="controls">
      <input type="text" name="user-email" placeholder="Email">
    </div>
  </div>
  <div class="control-group">
    <label class="control-label" for="user-password">Password</label>
    <div class="controls">
      <input type="password" name="user-password" placeholder="Password">
    </div>
  </div>
  <div class="control-group">
    <div class="controls">
  
      <button type="submit" value="Login" class="btn btn-primary">Login</button>
    </div>
  </div>
</form>
    
</div>

<a class="btn"  href="register.php">Registrati</a>&nbsp;&nbsp;
<a class="btn" href="lost_password.php">Password persa?</a>
<hr/>
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
ho guardato il form e le funzioni, ma manca una cosa essenziale per capire dove ti inghippi.
intanto dove punta il form? vedo l'action vuota punta alla stessa pagina?
poi come ricevi/verifichi i dati inviati dal form prima di passarli alle funzioni (a parte la mia domanda sull'ambaradan)?
e non vedo una tabella di un db ne le query con cui poi vai a verificare l'esistenza o meno dell'username e password.
vedo che c'è il link a "registrati" quindi da qualche parte dovresti avere una tabella (db), non userai mica un file txt per salvare gli user e le pass?
ma anche se fosse (e spero di no) non vedo dove lo leggi
 

xxx86

Nuovo Utente
29 Lug 2013
7
0
0
ti ringrazio per le risposte veloci che mi dai....sono alle prime armi quindi non molte cose non le so!
ti posto i due codici a cui faccio riferimento
PHP:
<?php

// includo il file con la lista delle funzioni di utilitˆ
require_once 'inc/utils.php';

// Qui inseriremo gli errori avvenuti durante la validazione
// dei dati inseriti dall'utente nel form di login
$formErrors = array();

// Questi sono i dati inviati dall'utente
$userEmail		= $_POST['user-email'];
$userPassword 	= $_POST['user-password'];

/* Controllo sull'indirizzo email
 * 
 * Se la lunghezza ￾ 0 allora il campo ￾ vuoto
 * altrimenti controllo che l'indirizzo email sia valido
 */
if (strlen($userEmail) == 0)
{
	$formErrors[] = 'Il campo email &egrave; obbligatorio.'; 
}
else if (false == emailIsValid($userEmail))
{
	$formErrors[] = "L'indirizzo email inserito non &egrave; corretto";
}
		
/* Controllo sulla password inserita
 * 
 * Se la lunghezza ￾ 0 allora il campo ￾ vuoto 
 * Altrimenti controllo che la password abbia una lunghezza minima di 6
 */
if (strlen($userPassword) == 0)
{
	$formErrors[] = 'Il campo password &egrave; obbligatorio';
}
else if (strlen($userPassword) < 4) 
{
	$formErrors[] = 'La password inserita &egrave; troppo corta! Inserisci una password di almeno 4 caratteri ';	
}

// Se $formErrors ￾ vuoto vuol dire che
// tutti i campi compilati dall'utente sono corretti	
if (count($formErrors) == 0)
{
	//La password inserita viene ora criptata tramite la funzione md5()
	// criptare la password ￾ un buon modo per alzare il livello di sicurezza
	// del nostro sistema di login	
	$userPassword = md5($userPassword);
	
	// includo ora la lista di funzioni che servono per gestire l'utente
	require_once 'inc/user.php';
	
	/* Provo ad autenticare l'utente cercando la coppia email:password
	 * nel database.
	 * 
	 * Se riesco ad autenticarlo, lo redirigo alla sua pagina Profilo
	 * inserendo nella sessione le informazioni basilari dell'utente
	 */
	$userId = authenticateUser($userEmail, $userPassword);
	if (false == $userId)
	{
		$formErrors[] = 'La coppia email/password non &egrave; corretta';
	}
	else
	{
		// Recupero le informazioni dell'utente
		$user = userFindById($userId);
		
		// Aggiungo le informazioni dell'utente alla sessione
		// ed imposto il login a true, per identificare 
		// che l'utente si ￾ loggato correttamente
		sessionAddInformation('login', true);
		sessionAddInformation('user_id', $user['user_id']);
		sessionAddInformation('email', $user['email']);
		sessionAddInformation('name', $user['name']);
		
		// Rimando poi l'utente alla pagina successiva
		header('Location: rpc.php');
	}
}

// Stampo a video la lista degli errori, se presenti
echo showFormErrors($formErrors);


?>


<?php

/*
 * In questo file sono contenute le funzioni utili
 * alla gestione degli utenti 
 */

// Includo la lista delle funzioni per dialogare con il database
require_once 'database.php';

// Questa funzione si occupa di autenticare un utente 
// nel sistema
function authenticateUser($userEmail, $userPassword)
{
	// Apro una connessione con il database
	$connection = getConnection();
	
	// Cerco nel database un utente attivo
	// con la coppia email:password specificata
	$sql = "SELECT user_id
			FROM login_cliente 
			WHERE 
				email = '%s' 
			AND 
				password = '%s'
			AND
				active = 1";

	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, $userEmail, $userPassword);
	
	// Eseguo la query sul database
	$result = mysql_query($sql, $connection);
	
	// Se si ￾ verificato un errore oppure non ho trovato nessun risultato
	if (false == $result || mysql_num_rows($result) == 0)
		return false;
	
	// Questa riga contiene le informazioni dell'utente, se trovato nel database	
	$row = mysql_fetch_assoc($result);

	// Ritorno lo user_id dell'utente
	return $row['user_id'];	
}

// Questa funzione permette di registrare un nuovo utente nel sistema
function registerNewUser($userData)
{
	// Apro una connessione con il database
	$connection = getConnection();

	// Questi sono i dati da inserire nel database
	$userEmail 		= $userData['email'];
	$userPassword 	= $userData['password'];
	$userName		= $userData['name'];
        $userLastName		= $userData['lastname'];
        $userDataN		= $userData['datanascita'];
        $userLuogoN= $userData['luogonascita'];
        $userProv= $userData['provincia'];
        $userResidenza= $userData['residenza'];
        $userIndirizzo= $userData['indirizzo'];
	$token 			= $userData['token'];
	
	// Query per inserire i nuovi dati nel database
	$sql = "INSERT INTO login_cliente 
				(email, password, name,lastname,datanascita,luogonascita,provincia,residenza,indirizzo, token) 
			VALUES 
				('%s', '%s', '%s','%s','%s','%s','%s','%s','%s','%s') ";
	
	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, 
				$userEmail, 
				$userPassword, 
				mysql_real_escape_string($userName), 
                                mysql_real_escape_string($userLastName), 
                                $userDataN, $userLuogoN,$userProv,$userResidenza,$userIndirizzo,
				$token);
	
	// Provo ad inserire i dati
	if (false == mysql_query($sql, $connection))
	{
		return false;
	}
	// se sono riuscito ad inserire i dati,
	// ritorno l'ultimo user_id inserito	
	else
	{
		return mysql_insert_id($connection);
	}
}

// Questa funzione controlla l'esistenza
// nel database di un utente con uno specifico indirizzo email
function userEmailExists($userEmail)
{
	// Apro una connessione con il database
	$connection = getConnection();
	
	// Conto il numero di utenti registrati con 
	// l'indirizzo email specificato
	$sql = "SELECT user_id
			FROM login_cliente
			WHERE 
				email = '%s' ";
	
	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, $userEmail);
	
	// Eseguo la query sul database
	$result = mysql_query($sql, $connection);
	
	// Se non ho trovato utenti oppure se si ￾
	// verificato un errore
	if (false == $result || mysql_num_rows($result) == 0)
	{
		return false;
	}
	// Altrimenti vuol dire che ho trovato un utente
	// con l'indirizzo email specificato
	else
	{	 
		return true;
	}
}

// Questa funzione cerca i dati di un utente 
// in base al token specificato
function userFindByToken($token)
{
	// Apro una connessione con il database
	$connection = getConnection();
	
	// Cerco un utente con un certo token
	$sql = "SELECT * 
			FROM login_cliente
			WHERE
				token = '%s'";
	
	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, $token);
	
	// Eseguo la query sul database
	$result = mysql_query($sql, $connection);
	
	// Se si ￾ verificato un errore oppure non
	// ho trovato nessun utente
	if (false == $result || mysql_num_rows($result) == 0)
	{
		return false;
	}
	
	// Ritorno i dati dell'utente trovato
	return mysql_fetch_assoc($result);
}

// Questa funzione cerca i dati di un utente 
// in base all'indirizzo email specificato
function userFindByEmail($userEmail)
{
	// Apro una connessione con il database
	$connection = getConnection();
	
	// Cerco un utente con un certo indirizzo email
	$sql = "SELECT * 
			FROM login_cliente 
			WHERE 
				email = '%s'";
	
	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, $userEmail);
	
	// Eseguo la query sul database
	$result = mysql_query($sql, $connection);
	
	// Se si ￾ verificato un errore oppure non
	// ho trovato nessun utente
	if (false == $result || mysql_num_rows($result) == 0)
	{
		return false;
	}
	
	// Ritorno i dati dell'utente trovato
	return mysql_fetch_assoc($result); 	
}

// Questa funzione cerca i dati di un utente 
// in base ad un userId specificato
function userFindById($userId)
{	
	// Apro una connessione con il database
	$connection = getConnection();
	
	// Cerco un utente con un certo userId
	$sql = "SELECT * 
			FROM login_cliente 
			WHERE 
				user_id = %d";
	
	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, $userId);
	
	// Eseguo la query sul database
	$result = mysql_query($sql, $connection);
	
	// Se si ￾ verificato un errore oppure non
	// ho trovato nessun utente
	if (false == $result || mysql_num_rows($result) == 0)
	{
		return false;
	}
	
	// Ritorno i dati dell'utente trovato
	return mysql_fetch_assoc($result); 	
}

// Questa funzione serve per attivare l'account 
// di un utente con un certo userId
function userActivate($userId)
{
	// Apro una connessione con il database
	$connection = getConnection();
	
	// Attivo l'utente impostando il campo
	// active a 1
	$sql = "UPDATE login_cliente 
			SET active = 1, token = NULL
			WHERE
				user_id = %d";
	
	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, $userId);
	
	// Eseguo la query sul database
	$result = mysql_query($sql, $connection);
	
	// Se si ￾ verificato un errore oppure nessun utente
	// Ž stato attivato
	if (false == $result || mysql_affected_rows($connection) == 0)
	{
		return false;
	}
	// Altrimenti l'utente ￾ stato attivato
	else
	{ 	
		return true;
	}	
}

// Questa funzione permette di settare il token
// di uno specifico utente, identificato dal suo userId
function userSetToken($token, $userId)
{
	// Apro la connessione al database
	$connection = getConnection();
	
	// Questa ￾ la query di aggornamento
	$sql = "UPDATE login_cliente
			SET token = '%s'
			WHERE user_id = %d";
	
	// Assegno alla query i parametri da cercare
	$sql = sprintf($sql, $token, $userId);
	
	// Eseguo la query
	$result = mysql_query($sql, $connection);
	
	// Se si ￾ verificato un errore oppure nessun token ￾ stato settato
	// ritorno false
	if (false == $result || mysql_affected_rows($connection) == 0)
	{
		return false;
	}
	// altrimenti ritorno true
	else
	{
		return true;
	}
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto hai postato tutto? poi facciamo un passo alla volta
tu includi il file utils.php dove c'è quell'ambaradan di function, e sin qui ok
poi raccogli i dati con il $_POST
passo uno: verifichi l'indirizzo email con
PHP:
<?php
//....
if (strlen($userEmail) == 0){
    $formErrors[] = 'Il campo email &egrave; obbligatorio.'; 
}else if (false == emailIsValid($userEmail))
{
    $formErrors[] = "L'indirizzo email inserito non &egrave; corretto";
}
//....
?>
ho guardato tra le funzioni, ma non vedo la emailIsValid, se devi farla puoi farla così
PHP:
<?php
function emailIsValid($e){
	return filter_var($e, FILTER_VALIDATE_EMAIL);
	//se l'indirizzo non è falido ritorna FALSE
}
?>
anche se non capisco perchè non utilizzi direttamente la funzione nativa di php (scrivi meno e quindi meno possibilità di errori)
PHP:
<?php
//....
if (strlen($userEmail) == 0){
    $formErrors[] = 'Il campo email &egrave; obbligatorio.'; 
}else if (!filter_var($userEmail, FILTER_VALIDATE_EMAIL)){
    $formErrors[] = "L'indirizzo email inserito non &egrave; corretto";
}
//....
?>
questo è uno (se non ho visto male) poi passo al resto

p.s.
anche se ammesso non usare nei nomi dei campi il - (meno) usa l'underscore, sempre per il principio che possono essere fonte di errore soprattutto se usi col copy/paste il nome del campo per definire una fvariabile php
 
Discussioni simili
Autore Titolo Forum Risposte Data
I carica foto profilo sessione utente PHP 2
E Gestione profilo utente tramite Form PHP 3
I visualizza profilo utente utente in chat PHP 0
R [PHP] creare pagina profilo per ogni utente PHP 4
giancadeejay [PHP] Pagina profilo UTENTE modificabile PHP 2
G profilo utente + auto PHP 3
M Visualizzare da una classe esistente ogni profilo utente PHP 1
A Creazione profilo utente con pagina privata MySQL 0
M Creazione profilo utente -Visualizzazione profilo PHP 3
A Upload immagine profilo utente PHP 4
N [RISOLTO]Modifica Profilo Utente PHP PHP 32
M Modifica profilo utente in php mysql PHP 1
giancadeejay immagine profilo utente:come salvarla a video? PHP 19
giancadeejay upload immagine profilo utente PHP 3
giancadeejay Pagina profilo utente diversa per ogni utente. PHP 1
giancadeejay upload immagine su profilo utente PHP 0
F pagina profilo utente "pubblica" PHP 9
P Inserire un'immagine avatar nel profilo per avere ogni utente la sua pagina PHP 42
M [VBulletin] pagina profilo utente colori sballati CMS (Content Management System) 1
S Editare profilo utente [da amministratore] PHP 2
alessandro1997 Problema pagina profilo utente Supporto Mr.Webmaster 0
L Link al profilo utente Flash 0
I aggiorna profilo PHP 1
G Perché il mio sito su Google news fa vedere le immagini degli articoli la mia foto profilo? WordPress 1
andreas88 Gestione Profilo OnlyFans Leggi, Normative e Fisco 0
P Upload foto cover e profilo jQuery 0
M Cerco profilo instagram (Utenti reali) Altri Annunci 1
X [CERCO] profilo instagram lifestyle-travel Altri Annunci 1
A [ASP.Net] Gestire il profilo ADMIN in un progetto ASP NET e pattern MVC ASP.NET 0
V Email di Cerco profilo instagram di meme, minimo 25k. Annunci servizi di Social Media Marketing 0
M Cerco profilo fb possibilmente italiano che abbia marketplace attivo Annunci servizi di Social Media Marketing 0
G cerco profilo facebook ...che sia stato creato da almeno 3 anni... che sia già verificato e autentic Vendere e Acquistare pubblicita' online 0
C Vendo profilo Instagram reale è attivo 45,7k Annunci servizi di Social Media Marketing 1
E Compro profilo Instagram tra 10k e 30k Annunci servizi di Social Media Marketing 2
P cerco profilo fb Annunci servizi di Social Media Marketing 0
M Cerco profilo IG intorno ai 100k Annunci servizi di Social Media Marketing 3
F Cerco profilo Instagram con più di 50k Annunci servizi di Social Media Marketing 1
A VEONDO PROFILO INSTAGRAM Presentati al Forum 1
S VENDO PROFILO INSTAGRAM DA 67K followers! Annunci servizi di Social Media Marketing 6
blackbetty [VENDO] - Profilo Instagram di 1.5K follower reali Annunci servizi di Social Media Marketing 2
D [Vendo] profilo instagram da circa 7k Annunci servizi di Social Media Marketing 18
R VENDO PROFILO INSTAGRAM 45K ITALIANO Annunci servizi di Social Media Marketing 1
G Vendo profilo Instagram con più di 15,9k followers Annunci servizi di Social Media Marketing 2
S [VENDO] Profilo instagram tech + blog Annunci servizi di Social Media Marketing 8
N Vendo profilo INSTAGRAM 60’000 fan ITA Annunci servizi di Social Media Marketing 2
P Cerco profilo Instagram Annunci servizi di Social Media Marketing 1
K compro profilo FB Annunci servizi di Social Media Marketing 0
V Cerco profilo instagram Annunci servizi di Social Media Marketing 1
P Vendo profilo instagram 17,6 k Annunci servizi di Social Media Marketing 1
U Vendo profilo Instagram 2k seguaci Annunci servizi di Social Media Marketing 0

Discussioni simili