Ciao, volevo sapere qual è la soluzione migliore per negare la visualizzazione di alcune pagine del sito agli utenti non autorizzati...
Ciao, volevo sapere qual è la soluzione migliore per negare la visualizzazione di alcune pagine del sito agli utenti non autorizzati...
A parte che non ci sono tantissimi metodi, comunque l'autenticazione lato server (tipo questo forum per esempio leggere i post è libero se vuoi postare devi essere logato)![]()
Cavicchi Andrea
Problemi con javascript, jquery, ajax clicca qui
Mi dai qualche esempio di codice ... o mi indirizzeresti a qualche tutorial??Originariamente inviato da cavicchiandrea
A parte che non ci sono tantissimi metodi, comunque l'autenticazione lato server (tipo questo forum per esempio leggere i post è libero se vuoi postare devi essere logato)![]()
PS
É da parecchio che non uso PHP, però se non erro dovrei usare le sessioni...
Comunque vorrei fare che, solo l'utente che ha l'autorizzazione può accedere ad una risorsa... ora non sono al pc, dopo provo a spiegarmi meglio....
Per fare l'esempio con questo forum, si può fare che solo l'utente che apre il topic riesca ad accedervi?
Scusate, cerco di spiegarmi meglio...
Avete presente la bacheca di facebook (il nostro profilo?!)
Possiamo decidere se renderlo visibile solo a noi stessi o al pubblico.. io voglio creare una cosa simile...
Nel database registro tramite un booleano se l'area è pubblica o privata(solo per l'utente proprietario)
Peró poi come posso verificare e gestire il tutto da PHP?
Editato, non avevo capito bene il problema.
Fai così: crea un campo nel database: 'pubblico(varchar, 2)'.
Dopo nella pagina modifica profilo tramite una selezione per check metti 2 opzioni: si e no(in questo modo il campo potrà avere solo 3 opzioni: si, no, oppure vuoto, dipende da come hai fatto lo script di registrazione).
Dopo che gli utenti si sono registrati dovresti ottenere l'effetto voluto con questo script:
Ovviamente dipende da come è strutturato il tuo sito, immagino che metterai gli utenti (almeno i profili e simili) ripescabili con dei filtri, e non ognuno con una pagina propia()ogni utente la propia pagina.php)....Codice PHP:
//tramite get prendi le informazioni della persona alla quale è legata il profilo(faccio l'esempio solo con id)
$id = $_GET['id'];
$select = "SELECT pubblico FROM utenti WHERE id=$id";
$query = mysql_query($select);
$array = mysql_fetch_array($query);
//il campo pubblico contiene si o no alla visione del propio account da parte di terzi
if ($array == 'si'){
//fai vedere tutta la pagina
}else{
//mostra messaggio:pagina privata
}
//oppure in alternativa puoi fare così
$pubblico = $_GET['pubblico'];
if ($pubblico == 'si'){
//fai vedere tutta la pagina
}else{
//mostra messaggio:pagina privata
}
Comunque se utilizzi il secondo metodo con $pubblico sappi che potebbero cambiare nell'indirizzo il no con un si e aggirare quello che hai fatto.
Spero di averti illustrato bene il metodo base per fare quello che chiedi in php.
![]()
Invece per impostare che l'utente proprietario la veda a prescindere dal pubblico o meno?
PS, per risolvere il ""Comunque se utilizzi il secondo metodo con $pubblico sappi che potebbero cambiare nell'indirizzo il no con un si e aggirare quello che hai fatto."" mi basterebbe rendere il GET un POST?
Premetto che ho un normale script di registrazione che usai tempo fa, devo ancora aggiungere questa opzione (pubblico/privato), sto aspettando di avere tutte le notizie cosi faccio tutto insieme
Comunque Si, ogni utente ha una cartella con il proprio file...
es:
sito.com/utente1/
sito.com/utente2/
sito.com/utente3/
però oltre al index c'è anche un file immagine, come faccio far in modo che tizio scrivendo
sito.com/utente1/utente1.jpg
non gli acceda? (se non sbaglio tramite .htaccess giusto? o consigli altro?!)
Se vuoi che l'utente propietario possa vederlo in tutti i casi devi fare in modo che si attivi solo ad una determinata condizione:
Il valore di $_SESSION['username'] puoi settarlo solo tu dalla pagina di login, quindi non possono manipolarlo, in questo modo solo se veramente l'utente ha fatto il login può vedere la pagina.Codice PHP:
$id = $_GET['id'];
$username = $_GET['username'];
//tralascio la parte in cui selezionii dati, visto che l'avevo già scritta prima
if ($array == 'si'){
//fai vedere tutta la pagina
}else{
if($array != 'si' AND $_SESSION['username'] == $username)){
//fai vedere tutta la pagina
}else{
//mostra messaggio:pagina privata
}
Ti consigli di cambiare disposizione delle cartelle utenti in questa: sito.com/utenti/utente1, sito.com/utenti/utente2, ecc.
Mi pare che .htaccess si usa per redirect e roba simile. In teoria puoi usare lo stesso metodo, anhce con le immagini legandole sempre al nome utente e al campo pubblico/privato.
Originariamente inviato da _Marco_87
Se vuoi che l'utente propietario possa vederlo in tutti i casi devi fare in modo che si attivi solo ad una determinata condizione:
Il valore di $_SESSION['username'] puoi settarlo solo tu dalla pagina di login, quindi non possono manipolarlo, in questo modo solo se veramente l'utente ha fatto il login può vedere la pagina.Codice PHP:
$id = $_GET['id'];
$username = $_GET['username'];
//tralascio la parte in cui selezionii dati, visto che l'avevo già scritta prima
if ($array == 'si'){
//fai vedere tutta la pagina
}else{
if($array != 'si' AND $_SESSION['username'] == $username)){
//fai vedere tutta la pagina
}else{
//mostra messaggio:pagina privata
}
Ti consigli di cambiare disposizione delle cartelle utenti in questa: sito.com/utenti/utente1, sito.com/utenti/utente2, ecc.
Mi pare che .htaccess si usa per redirect e roba simile. In teoria puoi usare lo stesso metodo, anhce con le immagini legandole sempre al nome utente e al campo pubblico/privato.
GENIALE... appena mi è possibile provo (devo ancor creare il db)
Appena ho fatto faccio sapere!