curiosità sull'url personalizzato di facebook

nicoct

Nuovo Utente
5 Mag 2013
16
0
0
Salve a tutti, da un paio di giorni ho una curiosità e approfitto del forum per farvi una domanda:
l'url dei vari profili facebook è composta cosi: www.facebook.com/nome.cognome.id che poi id non è ma credo sarà qualche numero per differenziare gli utenti con gli stessi dati anagrafici, ora la domanda è questa
visto che la pagina del profilo (il layout almeno) è uguale per tutti e cambiano solo i dati all'interno,
facebook crea una pagina profilo nuova per ogni utente registrato (ad oggi più di un miliardo)
o hanno trovato un modo per usare la stessa pagina per tutti usando riferimenti al database in base all'id o alla session dell'utente loggato e inserisce nella pagina e nell'url i suoi dati?
es:
$nome=mysql_query(“select nome from utenti where id='$id' ”);
$cognome=mysql_query(“select cognome from utenti where id='$id' ”);
echo “www.facebook.com.” . $nome . “.” . $cognome;
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Allora facebook basa tutto sull'id.
Ha aggiunto questa funzionalità per creare dei link più carini ma sono sempre univoci cioè un link corrisponde a uno e un solo utente.
Per quanto riguarda la pagina del profilo basta crearne una che vale per tutti (così come fanno tutti i siti compresi social network, forum, etc) che viene poi popolata con i dati presi dal database in funzione all'utente selezionato grazie al link.
Spero di essere stato chiaro.
 

nicoct

Nuovo Utente
5 Mag 2013
16
0
0
Per quanto riguarda la pagina del profilo basta crearne una che vale per tutti (così come fanno tutti i siti compresi social network, forum, etc) che viene poi popolata con i dati presi dal database in funzione all'utente selezionato grazie al link.
Spero di essere stato chiaro.
Chiarissimo grazie immaginavo che fosse cosi, un'altra domanda: qual'è l'istruzione per lavorare sulla barra degli indirizzi (cosi da modificarla in base ai dati del database)?
 

nicoct

Nuovo Utente
5 Mag 2013
16
0
0
Per gestire i dati inviati tramite link si usa la super-global GET.
sisi conosco sia GET che POST però non mi interessava l'invio dei dati da form <<facebook.com/?nome=pippo&cognome=paperino>>
ma l'intera trasformazione dell'indirizzo in base all'user loggato <<facebook.com/pippo.paperino>>
 

nicoct

Nuovo Utente
5 Mag 2013
16
0
0
con questa... (tecnica:confused:) le modifiche all'url valgono anche nelle select sui database?
mi spiego meglio
In questa discussione di un anno fa http://forum.mrwebmaster.it/php/28570-inserire-url-dati-richiamati-mysql.html l'utente borgo italia metteva un link sui risultati di una query
Codice:
<?php 
// selezione news da inserire 
$sql = "SELECT id, data_news, titolo_news FROM News ORDER BY data_news"; 
//salva risultati 
$risultati = mysql_query ($sql) or die (mysql_error($db)); 
//mostra i risulatati 
while ($row = mysql_fetch_array($risultati)) { 
extract ($row); 
echo $data_news . '<br/>'; 
echo " " . '<br/>'; 
echo $titolo_news . '<br/>'; 
echo " " . '<br/>'; 
echo "[B]<a href=\"tutta_la_notizia.php?id=$id\">leggi tutto....</a>[/B]<br/>";//altra pagina o altre finestra es con target=\"_blank\" 
} 
?>
utilizzando l'url rewrite in modo da far spuntare l'id nell'url è possibile far funzionare questo codice?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Si, serve proprio a questo.
Il link rimane quello, cambia solo il modo di visualizzarlo dal browser.
In pratica stai dicendo al file htaccess: Se ti viene dato il link (come quello nel codice) modificalo secondo le mie regole.
Quindi è la stessa identica cosa ma cambia il modo di visualizzarlo sul browser quindi semplificando il link vero e proprio.
 

nicoct

Nuovo Utente
5 Mag 2013
16
0
0
mi sono studiato qualche articolo su questo url rewrite e mi sono accorto di una cosa:

prendendo per esempio questo codice le parti < ([a-z]+) > e < ([0-9]+) > del pattern prendono,sostituiscono e accorciarciano le parti < ?categoria=$1 > e < idProdotto=$2 > del url originale
Codice:
RewriteEngine On
RewriteRule    /prodotti/([a-z]+)/([0-9]+).html    http://www.mio_sito.it/elenco-prodotti/prodotti.php?categoria=$1&idProdotto=$2    [L]
ora essendo la pagina su cui lavoro sempre la stessa <www.sito.com/utente.php> e cambiando solo i dati all'interno in base all'utente loggato come sostituisco il testo ($_SESSION[$id]) nel RewriteRule visto che nell'url originale manca?

url che ho:
Codice:
RewriteEngine On
RewriteRule /utente/([0-9]+).php	www.miosito.it/utente.php
che per funzionare dovrebbe essere:
Codice:
RewriteEngine On
RewriteRule /utente/([0-9]+).php	www.miosito.it/utente.php?id=$id
avevo pensato di modificare il metodo del form di login da POST a GET ma si abbasserebbe il livello di sicurezza quindi era un'idea da eliminare a prescindere