• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
استفاده از pretty urls
#1
من اومدم تمام ادرسهای سایت رو به صورت pretty urls درآوردم ولی الان چندتا مشکل دارم
مشکلی که دارم اینه وقتی دارم از require_once استفاده می کنم چطور متغیر رو تووی صفحات استفاده کنم

کد پی‌اچ‌پی:
$safePages = array("profile""post""ask","comment");
$safeAction = array("edit""send","delete","banned");

if(isset(
$_SERVER["REQUEST_URI"]))
{
    
$path = (substr($_SERVER['REQUEST_URI'], -1) == '/') ?
                         
substr($_SERVER['REQUEST_URI'], 0, -1) :
                         
$_SERVER['REQUEST_URI'];
    
$path = (substr($path1) == '/') ?
                         
substr($path1) :
                         
$path;
    
$urlParts explode("/",$path);
}
else
{
    echo 
"error";
}

if(isset(
$urlParts))
{
    if(isset(
$urlParts[0]) && $urlParts[1] )
    {
        
in_array($urlParts[0] ,$safePages) ? $page $urlParts[0] : $page "404";
        
in_array($urlParts[1] ,$safePages) ? $action $urlParts[1] : $action "none";
    }
    if(isset(
$urlParts[2]))
        
$id $urlParts[2] ;
}
switch(
$page)
{
    case 
"post":
        require_once(
"post.php");
        break;
    case 
"profile":
        require_once(
"profile.php");
        break;
    default:
        require_once(
"home.php");


توی آدرس های قبلیم ادرسها به صورت زیر بودن
post.php?id=26&action=show
اونجا از متغیر get استفاده می کردم حالا اینجا چیکار کنم .راهی که به ذهنم میرسه اینه که همون متغیر get رو اینجا مقدار دهی کنم با مقداری که از ادرس میگیرم
کد پی‌اچ‌پی:
if(isset($urlParts[2]))
        
$_GET['id'] =  $urlParts[2] ;
}
switch(
$page

دومین مشکلم با همین اینکلود کردن فایل های مختلف هست
تووی ادیتور فایل ها رو به صورت ajax آپلود و نمایش میداد ولی الان دوتا مشکل تووی فال php پیش اومده
یه شرط دارم که چک می کنه آیا تووی پوشه آپلود فایل موجود یا نه الان شرط همیشه مقدار true بر می گردونه .در صورتی که فایل توی پوشه وجود داره
کد پی‌اچ‌پی:
(!file_exists("/uploads/img/".$director."/".$fileName)) 

یکی هم ادرس تصاویر هست که الان همون ادرس قبلیه ولی بعد از عملیات آپلود عکس رو نشون نمیده
خروجی برای ادیتور هم تقریبا همونی که بالا ذکر کردم فقط اسم فایل یا دایرکتوری ممکنه تغییر کنه

الان نه ادرس دهی مطلق نه نسبی (استفاده از dirname , / ) بهم کمکی نکرد تووی اکشن فرمها / رو که اضافه می کنم قبل از ادرس فایل مشکل فرمها حل میشه ولی تووی صفحات پردازشی فایل اینکلود میشه که الان شناسای نمیشن قبلا به شکل زیر بود
کد پی‌اچ‌پی:
require_once("include/user.php"); 
اما الان
نه
کد پی‌اچ‌پی:
require_once("/include/user.php"); 
و نه با dirname
کار نمکنه
وبسته به اینکه تووی چندمین پوشه هستم باید اینکلود کنم
کد پی‌اچ‌پی:
require_once("/../../include/user.php"); 
و نه با dirname

هيچ اگر سايه پذيرد منم آن سايه هيچ
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان