ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : انتقال ادرس های بیهوده در php ( شرایط من خاصه )



mojtabakh18
April 3rd, 2017, 21:50
سلام این پروژه من یه روتینک داره به این شکل

مثلا شما ادرس


site.com/user/login

رو بزنید میره در یک فایل خاص کلاس user رو اجرا می کنه و از داخل اون کلاس متد login رو اجرا می کنه و نمایش می ده!

خب به طور مثال اگه کسی اومد و این ادرس رو زد


site.com/asdasdasd

کلا یه ادرس بیهوده

میاد همچین خطا هایی به کاربر نشون می ده


Notice: Undefined offset: 2 in C:\xampp\htdocs\workspace\notes-v2\index.php on line 7

Warning: require_once(C:\xampp\htdocs\workspace\notes-v2/controller/useasdasd.php): failed to open stream: No such file or directory in C:\xampp\htdocs\workspace\notes-v2\index.php on line 14

Fatal error: require_once(): Failed opening required 'C:\xampp\htdocs\workspace\notes-v2/controller/useasdasd.php' (include_path='C:\xampp\php\PEAR') in C:\xampp\htdocs\workspace\notes-v2\index.php on line 14

و این هم زیاد جالب نیست

اگه شرایط من خاص نبود به راحتی با یک خط کد htaccess می شد صفحه اختصاصی نوشت

ولی خب الان نمی شه چون هر ادرسی بزنیم سیستم میخواد با اون نام کلاسی رو اجرا کنه بعد متد اجرا کنه ولی نمیشه !!!!!!!!!!!!

چیکار کنم ؟؟ چطوری مثلا ادرس های الکی رو منتقل کنم ؟؟؟

hamid53214
April 3rd, 2017, 22:30
یه کد ساده به index.php اضافه کنید و ریدایرکت کنید در صورتی که کلاس وجود نداشته باشه ریدایرکت بشه به یه صفحه خاص

phpcoding
April 3rd, 2017, 22:36
یه اعتبار سنجی کوچیک مشکل شمارو حل میکنه
اول از همه از کد error_reporting استفاده کنید و ناتیس هارو خاموش کنید
سپس بعد از فراخوانی فایل مورد نظر یه اعتبار سنجی با استفاده از تابع class_exists انجام بدید که اگه کلاس وجود داشت کلاس رو صدا بزنه اگه نداشت یه خطایی بده یه صفحه ای نشون بده یا ...
اینم نمونه کد :



if(class_exists('amirali')): exit("ok"); else: exit("no amirali"); endif;


روز خوش

mojtabakh18
April 3rd, 2017, 22:54
یه اعتبار سنجی کوچیک مشکل شمارو حل میکنه
اول از همه از کد error_reporting استفاده کنید و ناتیس هارو خاموش کنید
سپس بعد از فراخوانی فایل مورد نظر یه اعتبار سنجی با استفاده از تابع class_exists انجام بدید که اگه کلاس وجود داشت کلاس رو صدا بزنه اگه نداشت یه خطایی بده یه صفحه ای نشون بده یا ...
اینم نمونه کد :



if(class_exists('amirali')): exit("ok"); else: exit("no amirali"); endif;


روز خوش

ممنون

اخه مشکل اینجاش من برای هر کلاس میام یه فایل ایجاد میکنم مثلا برای کلاس user اومدم فایل user.php رو ایجاد کردم

قبل از بررسی وجود اینکه کلاس هست یا نه

باید فایل رو require کنم

که به اون گیر میده !!!

اونو چیکار کنم ؟؟

بعد مورد دیگه نوتیس ها رو تو هاست اشتراکی چطوری خاموش کنم؟؟؟

Azade.Kaveh
April 3rd, 2017, 23:05
if (!file_exists("test.txt")) die('Joon?');

https://www.w3schools.com/php/func_filesystem_file_exists.asp

phpcoding
April 3rd, 2017, 23:08
ممنون

اخه مشکل اینجاش من برای هر کلاس میام یه فایل ایجاد میکنم مثلا برای کلاس user اومدم فایل user.php رو ایجاد کردم

قبل از بررسی وجود اینکه کلاس هست یا نه

باید فایل رو require کنم

که به اون گیر میده !!!

اونو چیکار کنم ؟؟

بعد مورد دیگه نوتیس ها رو تو هاست اشتراکی چطوری خاموش کنم؟؟؟

برای خاموش کردن ناتیس ها در همه ی هاست دو کد وجود داره :


error_reporting(false | null | 0);

و یا :


ini_set("display_errors",(false | null | 0);

هر کدوم از کد های بالا (بسته به سلیقه خودتون - البته کارای هر کدوم مشخصه و هر کجا یک کدومشون به کار میاد ولی در اینجا مهم نیست) که خوشتون میاد رو کپی کنید و اول کد ها بعد از <?php قرار بدید

در مورد سوال دومتون اصلا از پرسیدن این سوال توسط شما من تعجب کردم !

نه اینکه خدا نکرده بخوام مسخرتون کنم ولی فک میکردم دیگه جواب این سوال رو بدونید

کافیه برای require یا include کردن اون فایل یه اعتبار سنجی انجام بدید که اون فایل وجود داشته باشه

نمون کد برای چهارتا تابع include - include_once - require - require_once رو براتون نوشتم خدمت شما :


$file = 'user.php';
if(is_file($file) AND file_exists($file)): include($file); endif;
if(is_file($file) AND file_exists($file)): include_once($file); endif;
if(is_file($file) AND file_exists($file)): require($file); endif;
if(is_file($file) AND file_exists($file)): require_once($file); endif;

با تشکر

mojtabakh18
April 3rd, 2017, 23:13
برای خاموش کردن ناتیس ها در همه ی هاست دو کد وجود داره :


error_reporting(false | null | 0);

و یا :


ini_set("display_errors",(false | null | 0);

هر کدوم از کد های بالا (بسته به سلیقه خودتون - البته کارای هر کدوم مشخصه و هر کجا یک کدومشون به کار میاد ولی در اینجا مهم نیست) که خوشتون میاد رو کپی کنید و اول کد ها بعد از <?php قرار بدید

در مورد سوال دومتون اصلا از پرسیدن این سوال توسط شما من تعجب کردم !

نه اینکه خدا نکرده بخوام مسخرتون کنم ولی فک میکردم دیگه جواب این سوال رو بدونید

کافیه برای require یا include کردن اون فایل یه اعتبار سنجی انجام بدید که اون فایل وجود داشته باشه

نمون کد برای چهارتا تابع include - include_once - require - require_once رو براتون نوشتم خدمت شما :


$file = 'user.php';
if(is_file($file) AND file_exists($file)): include($file); endif;
if(is_file($file) AND file_exists($file)): include_once($file); endif;
if(is_file($file) AND file_exists($file)): require($file); endif;
if(is_file($file) AND file_exists($file)): require_once($file); endif;

با تشکر

ممنون

مثل همیشه عالی :)

لان ک فکر میکنم سوالم واقعا مسخره بود خخخ

گیج خواب بودم مخم تعطیل شده بود خخ

بازم ممنون