curiosità sull'url personalizzato di facebook

  • Creatore Discussione Creatore Discussione nicoct
  • Data di inizio Data di inizio

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;
 
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.
 
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)?
 
Quì entriamo nel php.
Per gestire i dati inviati tramite link si usa la super-global GET.
Ti consiglio di consultare il manuale o qualche guida.
 
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>>
 
Ah ok. Si chiama url rewrite; sono delle righe di codice o meglio delle regole che vanno inserite nel file htaccess e modificano l'url in base alle regole da te indicate.
 
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?
 
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.
 
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
 
L'url del profilo personale puoi anche non modificarlo, lasci solo www.sito.it/profilo.php tanto poi lo gestisci con le sessioni.
Il punto è come modificare l'url del profilo di altri utenti inserendo un nome e non l'id.
 

Discussioni simili