PDA

View Full Version : تنظیم کاراکترهای مجاز



tooka123
شنبه 27 آذر 1395, 14:54 عصر
سلام
در cms قبلی که با کدایگنیتر 2 بود با کد زیر تمام لینک های فارسی من به درستی کار می کرد
$config['permitted_uri_chars'] = '%2F
%D8%B6%D8%B5%D8%AB%D9%82%D9%81%D8%BA%D8%B9%D9%87%D 8%AE%D8%AD%D8%AC%DA%86%DA%98%DA%AF%DA%A9%D9%85%D9% 86%D8%AA%D8%A7%D9%84%D8%A8%DB%8C%D8%B3%D8%B4%D8%B8 %D8%B7%D8%B2%D8%B1%D8%B0%D8%AF%D8%A6%D9%88%D9%BE';
$config['permitted_uri_chars'] .= 'a-z A-Z 0-9~%.:_&\-+';
اما وقتی کدایگنیتر 3 استفاده کردم بعضی از لینک ها باز نمی شه و پیغام Object not found! نشون می ده هر چه کد توی اینترنت پیدا کردم و چیزهایی که به نظر خودم اومد اضافه کردم کار نکرد

آیا دلیل این پیغام کاراکتر غیر مجاز هست ؟ یا دلیل دیگه ای داره؟
ممنون

numberone1
شنبه 27 آذر 1395, 21:20 عصر
سلام

url بصورت پیش فرض تو کدایگنایتر از تابع url_encode عبور داده میشن. شما باید بعد از گرفتن مقدار از url اول اونو با url_decode بازش کنید بعد توی دیتابیس بزارینش یا جاهای دیگه استفاده کنید.
اگر آدرس فارسی ارسال میکنید مثلا برای ریدایرکت کردن بهتره قبل از اینکه توی تابع هدر بزاری از تابع url_encde استفاده کنی تا مشکلی پیش نیاد
کدایگنایتر با فارسی هیچ مشکلی نداره :چشمک:

tooka123
چهارشنبه 01 دی 1395, 22:30 عصر
سلام
اگر در url حرف م باشه پیغام Object not found نشون می ده ، با بقیه حروف مشکلی نداره ، چه کار کنم؟

charcharkh
پنج شنبه 02 دی 1395, 09:14 صبح
جل الخالق یعنی چطوزی همه حروف فارسی رو خوب میشناسه فقط م رو مشکل داره باهاش :متعجب:

با موارد دیگری لطفا امتحان کنید.
برای ما هم جالب شد :متفکر:

numberone1
پنج شنبه 02 دی 1395, 18:45 عصر
سلام
اگر در url حرف م باشه پیغام Object not found نشون می ده ، با بقیه حروف مشکلی نداره ، چه کار کنم؟

سلام

اگر همه مقادیر url از تابع url_encode بگذرونی چون کاراکتر های فارسی کلا به شکل یونیکد تغییر شکل میدن , شما دیگه توی url چیزی به عنوان فارسی نداره که بخواد باهاش به مشکل بخوره
اگر توی صفحه جایی لینک بصورت دستی ایجاد میکنی باید قبلش url_encode بزاری تا به مشکل نخوری

tooka123
شنبه 04 دی 1395, 20:44 عصر
سلام
در تابع filter_uri در فایل URI از urlencode استفاده کردم و با فارسی مشکلی نداره ولی اگر در لینک حرف م باشه لینک باز نمی شه