Ben örnek aşağıdaki adım bu problem adım anlatmaya çalışacağım.
0) Question
Seni böyle sormak deneyin:
i facebook profiline www.facebook.com / kaila.piyush gibi sayfa açmak istiyor
Bu url id almak ve dosya profile.php ve onun profiline veritabanı ve gösteri kullanıcıdan featch verileri döndürmek için ayrıştırmak
normally when we develope any website its link look like
www.website.com/profile.php?id=username
example.com/weblog/index.php?y=2000&m=11&d=23&id=5678
şimdi biz permalink gibi www.website.com / kullanıcı adı veya example.com/weblog/2000/11/23/5678 kullanmayın yeniden değil, yeni tarzı ile güncellemek
http://example.com/profile/userid (get a profile by the ID)
http://example.com/profile/username (get a profile by the username)
http://example.com/myprofile (get the profile of the currently logged-in user)
1) .htaccess
. Kök klasöründe bir htaccess dosyası oluşturun veya mevcut bir güncelleme:
Options +FollowSymLinks
# Turn on the RewriteEngine
RewriteEngine On
# Rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php
O ne yapar?
Talep, gerçek bir dizin veya dosya (sunucuda var biri) için ise, index.php her url index.php yönlendirilen başka, servis değil.
2) index.php
Şimdi, biz tetiklemek için ne eylem bilmek istiyorum, bu yüzden URL'yi okumak gerekir:
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);
With the url http://example.com/profile/19837, $command would contain :
$command = array(
[0] => 'profile',
[1] => 19837,
[2] => ,
)
Now, we have to dispatch the URLs. We add this in the 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
Şimdi profile.php dosyasında, biz böyle bir şey olmalı:
// 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);
}