نقل قول: پیدا کردن مسیر در php
دوستان میخوام به cms دستور بدم که فایل ها رو از پوشه pages دریافت کنه و اگر فایلی که در پوشه pages نبود ارور نوت پیچ یا 404 قرار بده میتونید کمک کنید؟
نقل قول: پیدا کردن مسیر در php
بنده دقیق منظور شمارو متوجه نشدم
اما
برای نمایش ارور 404 Not Found که دربسیاری از سایت دیده میشه از این روش استفاده نمیکنن!
روش معقول تعریف ارور 404 در فایل .htaccess هستش
کدشو دقیق یادم نیست ولی چیز پیچیده ای نیست سرچ کنید زیاد میاد
نقل قول: پیدا کردن مسیر در php
در همان کدخودتان به جای تابع is_file از file_exists استفاده کنید .
در خصوص روشی که پیش بردید اگر $page توسط کاربر وارد شود باگ خطرناکی دارد .
2 ضمیمه
نقل قول: پیدا کردن مسیر در php
سلام از پاسخگویی شما متشکرم!
بنده کدشو یاد دارم ولی من به شکل دیگه ای میخوام سایت با این ارور برخورد کنه ببینید اگه یکم واضح تر بخوام بگم
این پوشه بندی :
ضمیمه 139884
و محتوی ایندکس:
ضمیمه 139885
نمونه این کد تو و مسیر یابی در اسکریپت دی چت موجوده که در اینجا میتونید دانلود کنید
http://baran-web.ir/%D8%AF%D8%A7%D9%...7%D8%B1%D8%A7/
من میخواهم فایل های که در پوشه pages هستن به عنوان فایل های اصلی قرار بدم که اگر سایت با فایل های جز این پوشه برخورد کنه ارور نات فاند بده در واقع میخوام به عنوان هسته برنامه از این پوشه دستور بگیره این پوشه هم در واقع فایل های که در مسیر های app وجود داره رو فراخونی میکنه و هم دستوراتو در این قسمت اجرا میکنه
نقل قول: پیدا کردن مسیر در php
نقل قول:
نوشته شده توسط
us1234
در همان کدخودتان به جای تابع is_file از file_exists استفاده کنید .
در خصوص روشی که پیش بردید اگر $page توسط کاربر وارد شود باگ خطرناکی دارد .
سلام ممنون از پاسخگویی شما
تست میکنم اطلاع میدم برای من تابع $page تعریف نشده هست در اصل
میخوام تابع $page جوری تعریف بشه که همه فایل ها داخل پوشه pages رو بتونه بخونه
مثال من در پوشه pages فایلی دارم به اسم test.php
که در حالت عادی به این مسیر میخوره
www.nameweb.ir/pages/test.php
که من میخوام
www.nameweb.ir/test.php
به این شکل باز شه البته فقط یک فایل در پوشه نیست و منظورم همه فایل های داخل پوشه هستش
نقل قول: پیدا کردن مسیر در php
کسی اگر میتونه در تعریف تابع $page کمک کنه ممنون میشم
نقل قول: پیدا کردن مسیر در php
خب اگ بخوام واضح تر بیان کنم بنده میخوام محتویات پوشه سیستم رو به عنوان فایل های اصلی قرار بدم مثال من فایلی در پوشه system دارم با اسم test.php خب مطمنا به این شکل باز خواهد شد
www.myweb.ir/system/test.php
بنده میخوام به صورت زیر باز بشه
www.myweb.ir/test.php
البته منظور من استفاده از دستور های include نیست در واقع میخوام به سیستم بفهمونم روت اصلی سایت رو در پوشه system جستجو کنه و تنها فایل test.php نیست بلکه همه فایل هایی که در پوشه system هست رو خودکار بخونه
www.myweb.ir/system/$page.php
www.myweb.ir/$page.php
در رابطه با اسکریپتی که قرار دادم اسکریپت دی چت
کاری که میخوام انجام بدم دقیقا در اسکریپت دی چت طبق گفته شما با تابع giu انجام شده
یعنی روت و یا ایندکس سایت رو در پوشه pages جستجو میکنه و فایل های pages هم مسیر theme رو فرخوانی میکنن
من الان قصد دارم ایندکس سایتم رو در پوشه system جستجو کنه و محتویات پوشه system هم پوشه app رو فراخوانی کنه
نقل قول: پیدا کردن مسیر در php
خب من تونستم تا حدودی عملی کنم
<?php
function giu($re, $i=''){
global $giu;
if($giu == null){
global $site_url,$options;
if($options['url_type'] == 'rewrite'){
$i = strtolower($_SERVER['REQUEST_URI']);
if(!empty($options['rewtite_suffix'])){$i = explode($options['rewtite_suffix'], $i);$i = $i[0];}
$i = substr($i, 1);
$i = explode('?', $i);
$i = explode('/', $i[0]);
if($i[0] == ''){
$i[0] = 'index';
}elseif($i[0] == 'index'){
header::Go(url());exit();
}else{
if($i[0] != 'robots.txt' and $i[0] != 'sitemap.xml'){
$temp = explode('?', strtolower($_SERVER['REQUEST_URI']));
if(substr($temp[0],strlen($temp[0])-strlen($options['rewtite_suffix'])) != $options['rewtite_suffix']){header::go("http://{$_SERVER['HTTP_HOST']}/".implode('/', $i).$options['rewtite_suffix']);exit();}
}
}
$giu = $i;
}elseif($options['url_type'] == 'rewrite-i'){
if(!isset($_GET['i'])){
$i = strtolower($_SERVER['REQUEST_URI']);
$i = explode($options['rewtite_suffix'], $i);
$i = $i[0];
$i = substr($i, 1);
$i = explode('/', $i);
if($i[0] == ''){$i[0] = 'index';}
$giu = $i;
}else{
$i = strtolower($_GET['i']);
$i = explode('|', $i);
if($i[0] == ''){$i[0] = 'index';}
$giu = $i;
}
}elseif($options['url_type'] == 'i'){
if(isset($_GET['i'])){
$i = strtolower($_GET['i']);
$i = explode('|', $i);
if($i[0] == ''){$i[0] = 'index';}
$giu = $i;
}
}elseif($options['url_type'] == 'get'){
$giu = array_keys($_GET);
}
}
switch($re){
case('page'):return(isset($giu[0]) ? $giu[0] : 'index');break;
case('el2'):return(isset($giu[1]) ? $giu[1] : false);
case('el3'):return(isset($giu[2]) ? $giu[2] : false);
case('el4'):return(isset($giu[3]) ? $giu[3] : false);
case('el5'):return(isset($giu[4]) ? $giu[4] : false);
}
}
?>
index.php
<?php
date_default_timezone_set('Asia/Tehran');
session_start();
include("include/config.php");
include("include/function.php");
include("include/core.php");
$page = giu('page');
if(is_file("system/$page.php"))include("system/$page.php");else include('system/notpage.php');
?>
نقل قول: پیدا کردن مسیر در php
مشکلی که هست اینه که همه فایل ها رو نمیخونه و فقط index رو میخونه