Originariamente inviato da Vicar
Beh, inanzitutto nella sezione ti memorizzi l'id dell'utente, una volta che hai l'id il profilo dell'utente lo crei prendendo i dati dal database dell'id..
Mi spiego meglio..
Ci sarà una pagina profile.php che verifica che sei connesso e, se sei connesso prenda i dati dell'id salvato nella sessione creata al momento del login.
..non riesco a capire scusa, così è troppo generico
so che con le sessioni mi porto dietro l'id dell'utente loggato, ma non ho capito come fare impostare la condizione if
posto un po di codice(ripreso uguale dalla guida)
home.php
Codice PHP:
<?php
include_once("include/config.php");
include_once("include/auth.lib.php");
list($status, $user) = auth_get_status();
if($status == AUTH_LOGGED & auth_get_option("TRANSICTION METHOD") == AUTH_USE_LINK){
$link = "?uid=".$_GET['uid'];
}else $link = '';
?>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<div align="center">
<table cellspacing="2">
<tr>
<td>[url="home.php<?=$link?>"]Home Page[/url]</td>
<td>[url="pagina1.html<?=$link?>"]Prima Pagina (pubblica)[/url]</td>
<td>[url="pagina2.php<?=$link?>"]Seconda Pagina (privata)[/url]</td>
<td>[url="pagina3.php<?=$link?>"]Terza Pagina (privata)[/url]</td>
<td>[url="pagina4.php<?=$link?>"]Quarta Pagina (permessi)[/url]</td>
<td>[url="registrati.php"]Registrati[/url]</td>
</tr>
</table>
<?php
switch($status){
case AUTH_LOGGED:
?>
[b]Sei loggato con il nome di <?=$user["name"];?> [url="logout.php<?=$link?>"]Logout[/url][/b]
<?php
break;
case AUTH_NOT_LOGGED:
?>
<form action="login.php<?=$link?>" method="post">
<table cellspacing="2">
<tr>
<td>Nome Utente:</td>
<td><input type="text" name="uname"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="passw"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="action" value="login"></td>
</tr>
</table>
</form>
<?php
break;
}
?>
</div>
</body>
</html>
e questa è la pagina login.php
Codice PHP:
<?php
include_once("include/config.php");
include_once("include/auth.lib.php");
list($status, $user) = auth_get_status();
if($status == AUTH_NOT_LOGGED){
$uname = strtolower(trim($_POST['uname']));
$passw = strtolower(trim($_POST['passw']));
if($uname == "" or $passw == ""){
$status = AUTH_INVALID_PARAMS;
}else{
list($status, $user) = auth_login($uname, $passw);
if(!is_null($user)){
list($status, $uid) = auth_register_session($user);
}
}
}
switch($status){
case AUTH_LOGGED:
header("Refresh: 5;URL=home.php");
echo '<div align="center">Sei gia connesso ... attendi il reindirizzamento</div>';
break;
case AUTH_INVALID_PARAMS:
header("Refresh: 5;URL=home.php");
echo '<div align="center">Hai inserito dati non corretti ... attendi il reindirizzamento</div>';
break;
case AUTH_LOGEDD_IN:
switch(auth_get_option("TRANSICTION METHOD")){
case AUTH_USE_LINK:
header("Refresh: 5;URL=home.php?uid=".$uid);
break;
case AUTH_USE_COOKIE:
header("Refresh: 5;URL=home.php");
setcookie('uid', $uid, time()+3600*365);
break;
case AUTH_USE_SESSION:
header("Refresh: 5;URL=home.php");
$_SESSION['uid'] = $uid;
break;
}
echo '<div align="center">Ciao '.$user['name'].' ... attendi il reindirizzamento</div>';
break;
case AUTH_FAILED:
header("Refresh: 5;URL=home.php");
echo '<div align="center">Fallimento durante il tentativo di connessione ... attendi il reindirizzamento</div>';
break;
}
?>
Ecco ora non riesco a capire come muovermi su questo file per richiamare "l'area personale" dell'utente loggato..
Codice PHP:
<?php
include_once("include/config.php");
include_once("include/auth.lib.php");
list($status, $user) = auth_get_status();
if($status == AUTH_LOGGED){
$msg = 'Contenuto della pagina';
}else $msg = 'Non hai i diritti per visualizzare la pagina';
?>
<html>
<head>
<title>Pagina tre</title>
</head>
<body>
[b]<font color="red" size="5"><?=$msg;?></font>[/b]
</body>
</html>
Se scrivo " echo $user['name'];" e sono loggato mi restituisce il nome dell'utente loggato(e fin qui perfetto) ma se io ora volessi anche un caricamento dell'area dell'utente, io ho pensato a qualcosa del tipo:
include_once("".$user['name'].".txt");
però in questo modo non avrei nessuna protezione del file di testo e un qualsiasi utente loggato(forse anche non loggandosi) può(modificando la barra degli indirizzi) accedere all'area riservata e quindi al file di testo--->ciò non andrebbe bene..
Spero di essermi spiegato un po meglio