the page link how fan change php facebook profile

php - link - facebook fan page change url



Facebook Like Custom Profile URL PHP (1)

Crear un sitio web y quiero poner una URL de perfil personalizada para todos los usuarios de mi sitio (como facebook).

Ya en mi sitio web, las personas tienen una página como http://sitename.com/profile.php?id=100224232

Sin embargo, quiero hacer un espejo para esas páginas que se relaciona con su nombre de usuario. Por ejemplo, si va a http://sitename.com/profile.php?id=100224232 le redirige a http://sitename.com/myprofile

¿Cómo haría esto con PHP y Apache?


Sin carpetas, sin index.php

Solo eche un vistazo a este tutorial .

Editar: Esto es solo un resumen.

0) Contexto

Asumiré que queremos las siguientes URL:

http://example.com/profile/userid (obtener un perfil por ID)
http://example.com/profile/username (obtener un perfil por nombre de usuario)
http://example.com/myprofile (obtener el perfil del usuario que está conectado actualmente)

1) .htaccess

Cree un archivo .htaccess en la carpeta raíz o actualice el existente:

Options +FollowSymLinks # Turn on the RewriteEngine RewriteEngine On # Rules RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /index.php

¿Qué hace eso?

Si la solicitud es para un directorio o archivo real (uno que existe en el servidor), index.php no se sirve, de lo contrario, cada URL se redirige a index.php .

2) index.php

Ahora, queremos saber qué acción activar, por lo que debemos leer la URL:

En index.php:

// index.php // This is necessary when index.php is not in the root folder, but in some subfolder... // We compare $requestURL and $scriptName to remove the inappropriate values $requestURI = explode(‘/’, $_SERVER[‘REQUEST_URI’]); $scriptName = explode(‘/’,$_SERVER[‘SCRIPT_NAME’]); for ($i= 0; $i < sizeof($scriptName); $i++) { if ($requestURI[$i] == $scriptName[$i]) { unset($requestURI[$i]); } } $command = array_values($requestURI);

Con la URL http://example.com/profile/19837 , $ command contendría:

$command = array( [0] => ''profile'', [1] => 19837, [2] => , )

Ahora, tenemos que enviar las URL. Agregamos esto en el index.php:

// index.php require_once("profile.php"); // We need this file switch($command[0]) { case ‘profile’ : // We run the profile function from the profile.php file. profile($command([1]); break; case ‘myprofile’ : // We run the myProfile function from the profile.php file. myProfile(); break; default: // Wrong page ! You could also redirect to your custom 404 page. echo "404 Error : wrong page."; break; }

2) profile.php

Ahora en el archivo profile.php, deberíamos tener algo como esto:

// profile.php function profile($chars) { // We check if $chars is an Integer (ie. an ID) or a String (ie. a potential username) if (is_int($chars)) { $id = $chars; // Do the SQL to get the $user from his ID // ........ } else { $username = mysqli_real_escape_string($char); // Do the SQL to get the $user from his username // ........... } // Render your view with the $user variable // ......... } function myProfile() { // Get the currently logged-in user ID from the session : $id = .... // Run the above function : profile($id); }

Para concluir

Desearía ser lo suficientemente claro Sé que este código no es bonito, y no tiene un estilo OOP, pero podría dar algunas ideas ...