کد نمایش صفحه در آدرس دینامیکی

bamshad

Well-Known Member
سلام دوستان
واالله دیگه نمیدونستم تیتر رو چی انتخاب کنم
ولی اگه میشه منو کمک کنید

:
من این کد رو دارم:
PHP:
<?php
if($id=="design"){ 
include("service/design.php"); 
}
?>
خوب حالا وقتی در آدرس بار نوشته میشه :
کد:
http://www.site.com/index.php?id=design
صفحه service/design.php رو به صفحه ای که توش بودم include میکنه
به نظر شما باید در قسمت
PHP:
include("service/design.php");
بجای include چه کدی رو بنویسم که بره به آدرسservice/design.php ؟؟؟؟
ممنون
 

yasak

Member
سلام،
php تاحالا کار نکردم. اما چون دیدم هیچ کس جوابی نداده جسارت کردم و جواب می دم. فکر می کنم دستور
کد:
header("Location: http://someurl.com");
مشکل رو حل کنه
 

mosi20

Active Member
ببین اینکار خیلی خطر داره
مستقیم اینکار رو نکن
اما این کدش
header('Location: service/'.@$_GET['w'].'.php');
قبلش یه سری کارکتر را باید ببندی مثل / و // و ../ و.........
من خطراتشو بهت گفتم حالا دیگه
 

bamshad

Well-Known Member
ممنون ولی این همه سایت از جمله خود مجید آنلاین از همین کار استفاده میکنند!!!!!
خوب راه بی خطر تری هم وجود داره؟
اگه میشه اون رو بگید
ممنون
راستی این کدی که شما دادی رو به این صورت اعمال کردم ولی صفحه ای که میره توش cannot find server میده!:
PHP:
<?php 
if($id=="design"){  
header('Location: service/'.@$_GET['w'].'.php');  
} 
?>

ممنون
 

bamshad

Well-Known Member
سلام،
php تاحالا کار نکردم. اما چون دیدم هیچ کس جوابی نداده جسارت کردم و جواب می دم. فکر می کنم دستور
کد:
header("Location: http://someurl.com");
مشکل رو حل کنه
دمت گرم واسه شما کار کرد
ولی یک مشکلی داره!
وقتی من با کد شما در index.php بر روی لینک index.php?id=design کلیک میکنم به آدرسی که بهش دادم میره ولی در ادرس بار بجای index.php?id=design آدرس اصلی رو میزاره مثلا مینویسه www.site.com/design.php
حالا به نظر شما باید چی کار کنم؟
راستی اگه هرکسی روش بی خطرش رو بلد بگه
ممنون
 
آخرین ویرایش:

NabiKAZ

Well-Known Member
دوست عزیز برای ارجاع به urlجدید راهش همونی است که دوستان گفتند.

در مورد خطر هم بستگی داره که به چه منظوری استفاده بشه ، اگر اون پارامتی id$ که به url ارسال میکنی حکم یک پسورد رو داشته باشه و صفحه desing.php هم قراره نمایش داده بشه یک صفحه مدیریتی و مهم باشه که صد در صد خطر ناک و غیر اصولیه . ولی اگر هدف مثلا یه لینک باکس سادست که id$ شماره لینک است اصلا مسئله امنیت مطرح نمیشه.

در مورد اینکه گفتید در آدرس بار آدرس جدید ظاهر میشه که خب طبیعیه و کاریش نمیشه کرد. ولی همیشه راه هایی هم وجود داره . مثلا شما میتونید از یه iframe استفاده کنید. تا لینکها توی اون Iframe ظاهر بشن و آدرس بار تغییری نکنه.

نبی
 

bamshad

Well-Known Member
واقعا ممنون از شما که من رو روشن کردید
ولی در مورد این بحث آخر:
این همه سایت که از این راه استفاده کردند همشون از IFrame استفاده کردند؟
 

bamshad

Well-Known Member
لطفا یکی کمک کنه
من آخر نفهمیدم باید از چه کدی استفاده کنم که در صفحه ای که میره آدرس به صورت دینامیکی باقی بمونه
ممنون
 

bamshad

Well-Known Member
ببین اینکار خیلی خطر داره
مستقیم اینکار رو نکن
اما این کدش
header('Location: service/'.@$_GET['w'].'.php');
قبلش یه سری کارکتر را باید ببندی مثل / و // و ../ و.........
من خطراتشو بهت گفتم حالا دیگه
آقا من این کدی که شما دادی رو الان نگاه کردم دیدم خیلی بهتر از بقیه هست ولی همون مشکل قبلی رو داره!
و راستی من این کد شما رو نتونستم درست ازش استفاده کنم
میشه بیشتر توضیح بدی؟ (در مورد این قسمتش:
PHP:
'.@$_GET['w'].'
ممنون
 

karevan

Member
آقا من این کدی که شما دادی رو الان نگاه کردم دیدم خیلی بهتر از بقیه هست ولی همون مشکل قبلی رو داره!
و راستی من این کد شما رو نتونستم درست ازش استفاده کنم
میشه بیشتر توضیح بدی؟ (در مورد این قسمتش:
PHP:
'.@$_GET['w'].'
ممنون
اگه درست متوجه شده باشم
این w رو به id تغییر بدید.
بعد id توی آدرس بار هرچی باشه میره به همون صفحه .php
 

bamshad

Well-Known Member
ممنون
آیا این امکان رو داره که بشه یک کاری کرد که فایل در آدرس بار کد بعد http://www.site.com/index.php?id= رو شناسایی کنه و به این شکل در بیاد :

PHP:
<?php  
if($id=="هر چی در آدرس بار نوشته شده"){   
header('Location: service/'.@$_GET['w'].'.php');   
}  
?>
ممنون
 

karevan

Member
منظورت خیلی مفهوم نیست
یعنی میخوای اگر id وارد شده بود این کار رو انجام بده و در غیر اینصورت چیزی نشون داده نشه؟
بیشتر توضیح بده
 

bamshad

Well-Known Member
مثلا اگه در آدرس بار نوشته شده بود Design بره به Design+.php اینشکلی منظورمه!
 

NabiKAZ

Well-Known Member
ممنون
آیا این امکان رو داره که بشه یک کاری کرد که فایل در آدرس بار کد بعد http://www.site.com/index.php?id= رو شناسایی کنه و به این شکل در بیاد :

PHP:
<?php  
if($id=="هر چی در آدرس بار نوشته شده"){   
header('Location: service/'.@$_GET['w'].'.php');   
}  
?>
ممنون
چرا لقمه رو میپیچونی!
خب اگر میخوای هر چی که تو آدرس بار نوشته بشه مستقیم بره به همون صفحه که دیگه if نمیخواد !
مستقیم بنویس:
PHP:
<?php  
header('Location: service/'.@$_GET['id'].'.php');   
?>
 

NabiKAZ

Well-Known Member
اگرم میخوای آدرسی که تو آدرس بار مرورگر هست تغییر نکنه از این کد برای صفحه اولت استفاده کن:
HTML:
<html>

  <head>
    <title>majidonline.com</title>
  </head>

  <frameset rows="*" framespacing="0" border="0" frameborder="NO">
    <frame src="http://majidonline.com" name="majidonline" scrolling="auto" noresize>
  </frameset>

  <noframes>
    <body>
    </body>
  </noframes>

</html>


نبی
 

bamshad

Well-Known Member
ممنون نبی جان خیلی حال دادی
البته در بحث iframe ها فکر نکنم دیگر سایتها همچیم کاری کنند ولی در هر صورت دمت گرم
ممنون
 
سلام،
آقا منم همین مشکل رو دارم. من از این استفاده‌ کردم، تو لوکال کاملا درست کار میکنه‌ اما وقتی اپلود میکنم تو سایت هیچی نشون نمیده‌، اگه‌ میشه‌ کمک کنید خیلی مهم و فوری هم هست.
PHP:
<?php if($page == "mandate"){ include("mandate.php"); } 
		elseif( $page == "bodies") {include("bodies.php"); } 
		elseif($page == "net") {include("network.php"); } 
		elseif($page == "unami") {include("aboutunami.php"); }
		elseif($page == 'contact') {include('contact.php'); }
		else{echo "dont do this, please"; }
		?>
البته‌ همونطور که‌ بقیه‌ گفتن از header استفاده‌ کردم ولی بازم هیچی نشون نمیده‌.
 

جدیدترین ارسال ها

بالا