برگزیده های پرشین تولز

بازي كردن با دستور include در php

sina1808

Registered User
تاریخ عضویت
11 سپتامبر 2003
نوشته‌ها
1,564
لایک‌ها
7
سلام بر همگي ... يه سوالي هست كه ذهنم رو مشغول كرده ... اصلا نميدونم ميشه چنين كاري كرد يا نه ...
فرض كنيد 3 تا صفحه داريم به نام هاي
1.htm
2.htm
3.htm
درست؟
حالا چطور ميشه فايلي بصورت مثلا index.php بسازيم كه وقتي دستور ?1 رو داديم بهش بياد و فايل 1.htm رو اينكلود كنه و نشون بده ...
يعني اگه آدرس :
www.domain.om/index.php?1 باعث نشون داده شدن فايل 1.htm بشه ...؟
ممنون ميشم توضيح بفرماييد :)
 

ghese

کاربر تازه وارد
تاریخ عضویت
11 جولای 2004
نوشته‌ها
77
لایک‌ها
0
اگه منظورتو درست فهميده باشم فكر كنم با اين كد مشكلت حل بشه
PHP:
include "$id.html";
بعد يايد با url متغير رو مقدار دهي كني
http://domain/index.php?id= 1
موفق باشی
 

ShootBoy

کاربر تازه وارد
تاریخ عضویت
6 دسامبر 2003
نوشته‌ها
5
لایک‌ها
0
نيازي به اين نيست
هر چيزي كه بعد از ؟ بنويسي توي اين متغير ذخيره ميشه: $QUERY_STRING


PHP:
include ("$QUERY_STRING.html");


اينجوري ميتوني دقيقا همونجوري كه ميخواي كار كني
موفق باشي ;)
 

ehsan

Administrator
مدیر انجمن
Administrator
تاریخ عضویت
5 دسامبر 2002
نوشته‌ها
7,949
لایک‌ها
3,918
محل سکونت
Internet

sina1808

Registered User
تاریخ عضویت
11 سپتامبر 2003
نوشته‌ها
1,564
لایک‌ها
7
خيلي ممنون از راهنمايي دوستان ... تست ميكنم ببينم چطوري هست :)
 

sina1808

Registered User
تاریخ عضویت
11 سپتامبر 2003
نوشته‌ها
1,564
لایک‌ها
7
دستت درد نكنه احسان جان :)
 

sina1808

Registered User
تاریخ عضویت
11 سپتامبر 2003
نوشته‌ها
1,564
لایک‌ها
7
من از روش ShootBoy استفاده كردم ... اما در حالت عادي يه اشكالي ميگيره :(
http://www.p30world.com/test_php/index.php

محتوي اين فايل اينطوري هست :


کد:
<html>

<head>
<meta http-equiv="Content-Language" content="fa">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>New Page 1</title>
</head>

<body>

<p align="center" dir="rtl"><font face="Times New Roman"><b>سلام بر همگي :</b></font></p>
<p align="center" dir="rtl">

<?php include ("$QUERY_STRING.htm"); ?>

</p>

</body>

</html>


يه فايل sina.htm هم وجود داره ...
http://www.p30world.com/test_php/index.php?sina
كار اينكلود به درستي انجام ميشه ولي در حالت عادي يه خطا ميده ... ببينيد ...
 

oxygenws

کاربر تازه وارد
تاریخ عضویت
8 ژانویه 2004
نوشته‌ها
96
لایک‌ها
0
هیچ کدوم از لینک هات (در این لحظه) باز نشد
 

ghese

کاربر تازه وارد
تاریخ عضویت
11 جولای 2004
نوشته‌ها
77
لایک‌ها
0
اقا روش روش shootboy خیلی بهتر من این متغیر رو نمی شناختم(shootboy جان اگه لینکی رو می شناسی که همه متغیر های از پیش تعریف شده پی اچ پی رو جمع آوری کرده و راجبش توضیح داده لطفا یک ندایی به ما بده)


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

sina1808

Registered User
تاریخ عضویت
11 سپتامبر 2003
نوشته‌ها
1,564
لایک‌ها
7
آره ممنون ميشم كه بنويسيد ... :rolleyes: :)
 

ShootBoy

کاربر تازه وارد
تاریخ عضویت
6 دسامبر 2003
نوشته‌ها
5
لایک‌ها
0
الان كه لينك براي من باز شد
نوشته بود تست صفحه سينا


راستي اين oxygen كارش خيلي درسته
از بچه هاي iranphp.net هست


در مورد متغيرهاي از پيش تعريف شده هم ساده ترين راه استفاده از اين تابع پيش ساخته هست

PHP:
phpinfo();
 

knowhow

مدیران قدیمی
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
3,478
لایک‌ها
22
سینا جان کدت رو اینجوری ادیت کن.

کد:
<? 
if ($QUERY_STRING != "") {
include ("$QUERY_STRING.htm") ;
}
?>
 

ghese

کاربر تازه وارد
تاریخ عضویت
11 جولای 2004
نوشته‌ها
77
لایک‌ها
0
بابا shootboy جون درسته که ما خیلی تازه کاریم تو php اما دیگه اینقدرم گیج نیستیم بخدا .
منظور من از اون سوال یک مقاله درست و حسابی بود که همه متغییر های از پیش تعریف شده رو توضیح داده باشه
كاربردشون رفتارشون

سينا تو كه فكر كنم مشكلت حل شد با كدي كه knowhow داد
اما من وقتي داشتم با اين متغيير كار مي كردم يك مشكلي داشتم كه هم روي localhost و هم روي هاستم امتحان
كردم و توي هر دو تاشون ارور زير رو مي ده
کد:
Warning: main(.htm): failed to open stream: No such file or directory in /home/virtual/site139/fst/var/www/html/test1.php on line 3

Warning: main(): Failed opening '.htm' for inclusion (include_path='.:/php/includes:/usr/share/php') in /home/virtual/site139/fst/var/www/html/test1.php on line 3
اين ارور مال زماني هستش كه به متغير مقداري ندادم
كدم هم اينه
PHP:
<?php

if (!isset($QUERY_STRING )){
  
	echo "My String";
		
	}else{
	
include ("$QUERY_STRING.htm");

	
	
	}
	
?>
مشكل از كجاست به نظر شما؟؟؟
ممنون
 

ShootBoy

کاربر تازه وارد
تاریخ عضویت
6 دسامبر 2003
نوشته‌ها
5
لایک‌ها
0
عزيز جان منم تازه كارم :D
خوب از روي مقدار اون متغيرهاي از پيش تعريف شده ميشه حدس زد حدودا كارشون چيه
مقاله والا چيزي سراغ ندارم مگر بقيه دوستان بدونن


مشكل شما هم فكر كنم به همون كدي كه knowhow نوشته حل بشه
چون اين متغير از پيش تعريف شده است شايد با isset جواب درست نگيريم
 

sina1808

Registered User
تاریخ عضویت
11 سپتامبر 2003
نوشته‌ها
1,564
لایک‌ها
7
ممنون محمد رضا جان... كد شما كارم رو راه انداخت ولي يه چيزي ...
همون طور كه ميدونيد صفحه index.php شامل يه سري اطلاعات هست كه چنانچه ?sina بهش اضافه بشه فايل sina.htm رو در به خودش اضافه ميكنه ... يعني ميشه محتوي فايل اصلي + محتوي sina.htm
حالا چطور ميشه كاري كنيم كه ?sina فقط باعث نشون دادن sina.htm بشه و در واقع اطلاعات اوليه موجود در index.php ديگه نشون داده نشه ...
ممنون ميشم اين مورد رو هم توضيح بفرماييد ... :)
 

ghese

کاربر تازه وارد
تاریخ عضویت
11 جولای 2004
نوشته‌ها
77
لایک‌ها
0
خوب سينا جون واسه اين كار ديگه نبايد از دستور include استفاده كني
تو بايد از تابع header استفاده كني به اين شكل كه در صورتي كه مقداري در متغيير ذخيره شده بود
مثلا اگه بخوام همون كد محمد رضا رو اديت كنيم به اين شكل مي شه
PHP:
<? 
if ($QUERY_STRING != "") {
header ("location:$QUERY_STRING.htm") ;
}
?>
اما يادت باشه قبل از اين تابع حق نداري هيچ چيزي رو به خروجي بفرستي
درسته بچه ها؟؟
اميد جون خيلي ممنون كه لينك دادي من خودم CHM اين مقالات رو دانلود كرده بودم قبلا اما توش اون جوري كه بايد خوب توضيح داده نشده مثلا راجب همين متغيير نصف خط هم ننوشته
ولي در هر صورت ممنون
 

sina1808

Registered User
تاریخ عضویت
11 سپتامبر 2003
نوشته‌ها
1,564
لایک‌ها
7
ممنون ... كمي نزديك شديم ولي اين ري دايركت ميكنه به مثلا sina.htm
من ميخوام اطلاعات در آدرسي بصورت domain.com/?sina نشون داده بشه نه ري دايركت بشه و اون فايل رو در مرورگر لود كنه ...
 

ShootBoy

کاربر تازه وارد
تاریخ عضویت
6 دسامبر 2003
نوشته‌ها
5
لایک‌ها
0
ميتوني توي همون فايل ايندكس سينا رو include كني و براي جلوگيري از لود شدن بقيه صفحه از اين تابع استفاده كني

PHP:
exit();
 
بالا