• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نوشتن هدر Location به این شکل
#1
من هدر Location رو به این شکل نوشتم و در فایرفاکس و IE تست کردم کار میکنه:
کد:
header("Location: ?per_page=$per_page&page=$page");
یعنی اسم صفحه رو دیگه بهش ندیم و فقط پارامترهایی که تغییر میکنن رو مشخص کنیم.
میخواستم ببینم این شکل استانداردی هست یا حداقل تمام مرورگرهای متداول ساپورتش میکنن یا نه.

اینطوری نوشتن از لحاظ انعطاف و راحتی کدنویسی بهتره خب.
  پاسخ
تشکر شده توسط :
#2
نقل قول:اینطوری نوشتن از لحاظ انعطاف و راحتی کدنویسی بهتره خب.

بهتر نیست به جای این کار یه ثابت مثلا با نام URL براش در نظر بگیریم و توی برناممون ازش استفاده کنیم؟
این ثابت هم هنگام نصب مقدار دهی میشه.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#3
(۱۳۹۱ خرداد ۱۵, ۰۱:۳۴ ب.ظ)ehsan_php نوشته: بهتر نیست به جای این کار یه ثابت مثلا با نام URL براش در نظر بگیریم و توی برناممون ازش استفاده کنیم؟
این ثابت هم هنگام نصب مقدار دهی میشه.
ثابت؟!
اون که میبینی اول به این شکل بوده:
کد:
header("Location: admin-accounts.php?per_page=$per_page&page=$page");
اونجا اسم صفحه قرار میگیره. چیز ثابتی نیست.
  پاسخ
تشکر شده توسط :
#4
نه، منظورم چیزی شبیه به اینه:

کد پی‌اچ‌پی:
# config.php
define('URL','http://www.site.com/');
# other pages. example
header('Location: '.URL.'post/edit'); 
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#5
عزیزم منظور شما به صحبت من ربطی نداره بنظرم.
همون قسمت post/edit که شما نوشتی در صفحات مختلف تفاوت میکنه. غیر از اینه؟
حالا من میخوام از یک header که در چند صفحه مشترک هست و فقط بخش اسم فایلش (اون بخشی که شما بجاش post/edit گذاشتی) تفاوت میکنه استفاده کنم. میخوام این هدر رو همراه با مقداری کدهای دیگه که بین اون صفحات مشترک هست در یک فایل قرار بدم و در همه اینکلود کنم.

سوال این بود که روشی که نوشتم آیا استاندارد هست یا توسط عمدهء مرورگرها ساپورت میشه یا خیر.
شما بحث رو کشوندی به یه چیز دیگه.
اما درمورد اون چیز دیگه هم که گذاشتی بنظر بنده اصلا چرا باید بیایم اون کار رو بکنیم؟ چه لزومی داره؟ یک گزینهء کانفیگ بیخودی داری اضافه میکنی که جز دردسر و نیاز به تنظیم موقع نصب چیزی نداره. اصلا نیازی نیست که URL رو اونطور کامل و بصورت مطلق بنویسی در header.

ضمنا این روشی که من گذاشتم رو بروبچ در فروم برنامه نویس تست کردن میگن روی مرورگرهای دیگر هم کار میکنه.
  پاسخ
تشکر شده توسط :
#6
نقل قول:همون قسمت post/edit که شما نوشتی در صفحات مختلف تفاوت میکنه. غیر از اینه؟

برداشتن post، edit و گذاشتن دو متغییر جاشون کار غیر ممکنیه؟! من فقط یک مثال زدم تا موضوع رو درک کنید.

نقل قول:شما بحث رو کشوندی به یه چیز دیگه.

کجا کشوندم؟! جمله ی خودت رو نقل قول کردم

نقل قول:اینطوری نوشتن از لحاظ انعطاف و راحتی کدنویسی بهتره خب.

و این روش رو گفتم. چیز بی ربطی بود؟

نقل قول:اما درمورد اون چیز دیگه هم که گذاشتی بنظر بنده اصلا چرا باید بیایم اون کار رو بکنیم؟ چه لزومی داره؟ یک گزینهء کانفیگ بیخودی داری اضافه میکنی که جز دردسر و نیاز به تنظیم موقع نصب چیزی نداره. اصلا نیازی نیست که URL رو اونطور کامل و بصورت مطلق بنویسی در header.

موضوع فقط header نیست. توی خیلی از موارد میتونی از این ثابت استفاده کنی مثل ادرس دهی، ایجکس و ... . دو خط پروژه که قرار نیست بنویسید.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#7
نقل قول:برداشتن post، edit و گذاشتن دو متغییر جاشون کار غیر ممکنیه؟! من فقط یک مثال زدم تا موضوع رو درک کنید.
عزیزم من میخوام یک کدی رو در چند صفحه بصورت مشترک استفاده کنم. بحث اینکه راحته متغییر رو تغییر بدی یا نه نیست. من میتونم در هر صفحه مثلا قبل از اینکلود کردن فایل مشترک بیام و اون مقادیر رو توی متغییرهایی پاس کنم و بعد در فایل اینکلودی بذارم توی header، ولی وقتی راه راحتتر و کوتاهتر هست چرا این کار رو بکنم؟ اغلب روش Generic تر بهتره خب. چون ساده تره و نیاز به تنظیمات دستی کمتری داره یا کد کمتری میخواد؛ خودش بصورت خودکار در هر جایی کار میکنه، و این مزیت کمی نیست در کدنویسی نویسی.

نقل قول:کجا کشوندم؟! جمله ی خودت رو نقل قول کردم
و این روش رو گفتم. چیز بی ربطی بود؟
ربطی نداشت. شما گفتی ثابت، درحالیکه مشکل من اصلا سر بخش ثابتش نبود.
تا اینجا هم هرچی گفتی میبینی که دست آخر رسیدی به اینکه تغییر دوتا متغییر کار سختی نیست. پس بحث اون بخش ثابت که شما مطرح کردی نبوده است.
شما روش دیگری رو مطرح کردی بجز تعریف یک URL بصورت ثابت؟

نقل قول:موضوع فقط header نیست. توی خیلی از موارد میتونی از این ثابت استفاده کنی مثل ادرس دهی، ایجکس و ... . دو خط پروژه که قرار نیست بنویسید.
ببین سوال اصلا این نبوده آخه. من کاری ندارم به اینکه مطرح کردی. اصلا درست و مفید. سوال من یه چیز دیگه بود! شما دوست داری URL ثابت تعریف و استفاده کن. من مخالفتی ندارم و بحثی ندارم و الان روش اصلا فکر نکردم و نمیکنم چون موضوع بحث و سوال من نبوده. اینم که گفتم نیازی نیست، منظورم در ارتباط با مورد خاص خودم بود نه اینکه حالا مثلا توی ایجکس هم ممکنه کاربرد داشته باشه و نمیدونم هرجای دیگه.
ضمنا اینم که مثلا در یک جای دیگه به هر علتی نیاز داشته باشی یا ترجیح بدی URL و آدرس مطلق درج کنی ربطی به موارد دیگه نداره. بهتره کمترین و ساده ترین و Generic ترین کد ممکن رو در هرجایی گذاشت. نه اینکه بگیم چون یک جایی یک جور دیگه کاربرد داره پس همه جا همون شکلی بنویسیم.

ضمنا ناراحت شدن هم نداره. اینقدر نازک نارنجی نباش. دیدی که من با اینکه چیزهایی که مطرح کردی بنظرم بی ربط بودن ولی با این حال نگفتم ادامه نده و خودم هم روش نظر دادم و بحث کردم، چون همیشه از مطرح شدن اطلاعات و بحث و یادگیری استقبال میکنم و نامنعطف نیستم و نمیگم فقط و فقط بحث اولیهء مورد نظر من باید در تاپیکم مطرح بشه؛ ولی بهرصورت باید روشن کنم که منظور چی بوده و چرا چیزهایی که شما مطرح کردن بی ربط با منظور من بودن تا رفع ابهام بشه و بشه روی موضوع اصلی هم تمرکز کرد.

سوال این بود که روشی که من گذاشتم استاندارد هست یا ساپورت کافی داره یا نه. اگر داشته باشه، دیگه دلیلی وجود نداره بخوایم از روشهای پیچیده تر استفاده کنیم. با ایجکس و اینا چکار داریم در اینجا! ربطی به مورد و سوال خاص من ندارن.
اگر در این مورد مخالفت و دلیل و نظر خاصی داری میتونی بگی.



(۱۳۹۱ خرداد ۱۵, ۰۶:۱۱ ب.ظ)ehsan_php نوشته: موضوع فقط header نیست. توی خیلی از موارد میتونی از این ثابت استفاده کنی مثل ادرس دهی، ایجکس و ... . دو خط پروژه که قرار نیست بنویسید.
منظورت رو از ایجکس متوجه نشدم.
من این رو در پروژهء خودم برای ایجکس استفاده کردم که بدون مشکل کار میکنه:
کد:
xhr.open('GET', 'ajax/check_username.php?value='+encodeURIComponent(uname), true);
برای استفاده از ایجکس نیازی نیست که آدرس کامل بنویسم. مرورگر خودش آدرسهای نسبی رو بر اساس سایت مبداء به آدرس کامل تبدیل میکنه.
شاید منظورت جا و حالت دیگه ای بوده.

ضمنا برای روشن شدن منظورت از آدرس دهی یک مثال واقعی رو ذکر کن. چه آدرس دهی ای کجا؟
  پاسخ
تشکر شده توسط :
#8
نقل قول:ولی بهرصورت باید روشن کنم که منظور چی بوده و چرا چیزهایی که شما مطرح کردن بی ربط با منظور من بودن تا رفع ابهام بشه و بشه روی موضوع اصلی هم تمرکز کرد.

موضوع اصلیتون چیه خب؟
ساپورت کدتون توسط مرورگر های مختلف؟!
یا بالا بردن انعطاف و راحتی در کدنویسی؟

تعریف ثابت URL ربطی به انعطاف و راحتی در کدنویسی نداره؟

نقل قول:منظورم در ارتباط با مورد خاص خودم بود نه اینکه حالا مثلا توی ایجکس هم ممکنه کاربرد داشته باشه و نمیدونم هرجای دیگه.

پس این موضوع فقط مربوط شما و ساختار برنامه نویسیتون هست. ممکنه این روش نتونه نیاز من و یا خیلی از دیگر افراد رو بر طرف کنه. مشکلی هم نداره شما میتونید ازش در اسکریپت هاتون استفاده کنید. منتها روشی که من گفتم یه عمل خصوصی و منحصر به ساختار و کدهای خودم نیست، روشیه که تو خیلی از جاها مثل یه سری از سی ام اس های معروف ازش استفاده میکنن و روش کامل و مناسبی هم هست.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :
#9
(۱۳۹۱ خرداد ۱۵, ۰۷:۰۰ ب.ظ)ehsan_php نوشته: موضوع اصلیتون چیه خب؟
ساپورت کدتون توسط مرورگر های مختلف؟!
یا بالا بردن انعطاف و راحتی در کدنویسی؟
ببین این جمله ای که نوشتم بقدر کافی واضح نیست:
نقل قول:میخواستم ببینم این شکل استانداردی هست یا حداقل تمام مرورگرهای متداول ساپورتش میکنن یا نه.
منظورم از «این شکل» کدام شکل بوده؟
منظورم همون بود که اسم فایل صفحهء جاری رو نذاریم و بعد از علامت سوال فقط پارامترها رو بذاریم. یعنی مرورگر خودش بقیهء آدرس رو برابر آدرس صفحهء جاری قرار میده.

نقل قول:تعریف ثابت URL ربطی به انعطاف و راحتی در کدنویسی نداره؟
این رو درمورد خیلی چیزهای دیگه هم میشه پرسید. ولی این تاپیک دربارهء یک موضوع خیلی کلی و گسترده ای مثل روشهای انعطاف و راحتی کدنویسی نیست و بنده هم چیز خاصی درمورد موارد دیگه نگفتم.

نقل قول:پس این موضوع فقط مربوط شما و ساختار برنامه نویسیتون هست. ممکنه این روش نتونه نیاز من و یا خیلی از دیگر افراد رو بر طرف کنه. مشکلی هم نداره شما میتونید ازش در اسکریپت هاتون استفاده کنید. منتها روشی که من گفتم یه عمل خصوصی و منحصر به ساختار و کدهای خودم نیست، روشیه که تو خیلی از جاها مثل یه سری از سی ام اس های معروف ازش استفاده میکنن و روش کامل و مناسبی هم هست.
مگه من اومدم در جایی از این تاپیک گفتم آی ملت همه بیاید همه جا از این روش استفاده کنید و این کد برای همه جاست و هیچ روش دیگری جای دیگه نیاز نیست یا نباید استفاده بشه؟!
روش شما اصلا ربطی به سوال من نداشت که درموردش حرفی بزنم. تاجاییکه به مورد من و کد و روش ارائه شده در این تاپیک مربوط میشد گفتم نیازی به آدرس دهی مطلق نداریم که بخوایم بابتش ثابت تعریف کنیم.

درمورد سوال بنده و منظور تاپیک احتمالا برداشتت از منظور من اشتباه بوده.

اون چیزی که من مطرح کردم واضحه. و البته هرجا هرکس بتونه به اون شکل بنویسه، یعنی موقعی که فقط پارامترهای URL تغییر میکنن و نه چیز دیگه، خب چرا باید به روش دیگری بنویسه؟ روش ساده تر و کوتاهتر و کلی تر بهتر نیست؟
هرجا هم که نشد خب با روش دیگری مینویسه دیگه. مشکلی هست؟

بقیش و بیشتر از این من دیگه ادعای خاصی کردم. فقط برای تحقیق و روشن شدن بیشتر چیزهایی که گفتی و روشی که مطرح کردی (با وجود اینکه به موضوع و سوال خودم ارتباط واضحی درش ندیدم) ازت چنتا سوال کردم و مثال و نمونه خواستم، که البته جواب ندادی. بالاخره اگر خودت چیزی رو که مطرح میکنی بهش احاطه داری و دیدی پس باید بتونی بیشتر روشن کنی و مثال بدی.
مثلا گفتی در ایجکس لازمه گفتم چرا لازمه؟ مثالش؟ من منظورت رو نفهمیدم که واقعا کجای ایجکس چرا به همچین چیزی نیازه.
  پاسخ
تشکر شده توسط : undefined
#10
نقل قول:میخواستم ببینم این شکل استانداردی هست یا حداقل تمام مرورگرهای متداول ساپورتش میکنن یا نه.

نه داداش مشکل نداره Big Grin
استاندارد نیست، توی منوال هم ذکر شده که چه جوری ادرس بدیم حالا به هزار دلیل که من زیاد مطلع نیستم. اما جواب میده و مشکلی هم نداره.
مثل من که گاهی اوقات یا بهتره بگم همیشه بسته به نیازم چنین کاریو انجام میدم:

کد پی‌اچ‌پی:
class test
{
    function 
add()
    {
        
# function add
    
}
    
    function 
edit()
    {
        
# function edit
    
}
    
    function 
delete()
    {
        
# function delete
    
}
}
$func=(string)$_GET['func']; # for example $_GET['func']=='edit'
$test=new test;
$test->$func(); 

این روش، یک روش استاندارد نیست. اما کار میکنه و گاهی اوقات از نوشتن کلی کد اضافی جلوگیری میشه.

نقل قول:مثلا گفتی در ایجکس لازمه گفتم چرا لازمه؟ مثالش؟ من منظورت رو نفهمیدم که واقعا کجای ایجکس چرا به همچین چیزی نیازه.

خب، تقریبا هم زمان شد متوجه نشدم دوباره اومدی مطلب جدیدی رو اضافه کردی، الان دیدم!

یه مدت صبر کن پروژه ی بعدیم رفت رو گیتوریوز خودت بررسیش کن. اونجا این موضوع به وضوح قابل مشاهده هست.
هر چیزی که در جستن آنی آنی...
غایب
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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