آژانس هواپیمایی
pop up

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

شروع موضوع توسط sina1808 ‏23 آگوست 2004 در انجمن PHP

  1. sina1808

    sina1808 Registered User

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

    ghese کاربر تازه وارد

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

    ShootBoy کاربر تازه وارد

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


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

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

    ehsan Administrator

    تاریخ عضویت:
    ‏5 دسامبر 2002
    نوشته ها:
    7,915
    تشکر شده:
    3,507
    محل سکونت:
    Internet
  5. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    خيلي ممنون از راهنمايي دوستان ... تست ميكنم ببينم چطوري هست :)
     
  6. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    دستت درد نكنه احسان جان :)
     
  7. boxilink
  8. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    من از روش 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
    كار اينكلود به درستي انجام ميشه ولي در حالت عادي يه خطا ميده ... ببينيد ...
     
  9. oxygenws

    oxygenws کاربر تازه وارد

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

    ghese کاربر تازه وارد

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


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

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    آره ممنون ميشم كه بنويسيد ... :rolleyes: :)
     
  12. ShootBoy

    ShootBoy کاربر تازه وارد

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


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


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

    PHP:
    phpinfo();
     
  13. knowhow

    knowhow مدیران قدیمی

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    3,480
    تشکر شده:
    19
    سینا جان کدت رو اینجوری ادیت کن.

    کد:
    <? 
    if ($QUERY_STRING != "") {
    include ("$QUERY_STRING.htm") ;
    }
    ?>
    
     
  14. avajang.com .leftavajang.com.right
  15. ghese

    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");

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

    ShootBoy کاربر تازه وارد

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


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

    oxygenws کاربر تازه وارد

    تاریخ عضویت:
    ‏8 ژانویه 2004
    نوشته ها:
    96
    تشکر شده:
    0
  18. sina1808

    sina1808 Registered User

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

    ghese کاربر تازه وارد

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

    sina1808 Registered User

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

    ShootBoy کاربر تازه وارد

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

    PHP:
    exit();
     
  22. sina1808

    sina1808 Registered User

    تاریخ عضویت:
    ‏11 سپتامبر 2003
    نوشته ها:
    1,564
    تشکر شده:
    5
    كد كاملش چي ميشه ؟