php include


Először is nem árt egy biztonsági mentést csinálni a főfájlodről! (index.html), aztán mentsd el a "fő" oldaladat , php dokumentumként. Egyszerűen csak megkeresed Total Commander-ben, és a kiterjesztését átírod html-ről, vagy htm-ről php-ra.

Én ebben a pédában main.php-t használok. Meghagyom az menüsorokat, és a logót, csak az eddigi tartalmat törlöm ki a fájlból. Tehát, most van egy olyan dokumentumunk, amiben van menüsor, és a logó(k), de nincs benne tartalom. Tegyünk ez ellen!
Illesszük a fájl forrásába a következő kódot oda, ahonnan kiszedtük a tartalmat:

1
2
3
4
5
6
7
<?php
$id = (isset($_GET['id']) && !empty($_GET['id'])) ? ltrim($_GET['id'], './') : 'error';
if (file_exists("$id.htm"))
{include ("$id.htm");}
else
{include ("error.htm");}
?>

Most az eddigi tartalmat illesszük be egy .htm kiterjesztésű fájlba. Pl.: a híreket, vagy ami eddig ott volt. Én a példában ezt most teszt.htm-nek hívom. Semmi mást ne írjunk az új fájlunkba, csak a tartalmat. Nem kell sem <body>, sem <html>, csak a tartalom.

Most töltsük fel a két fájlt a tárhelyünkre, aztán írjuk be a böngészőbe:

http://www.teneved.hu/main.php?id=teszt

És mit látunk, hogy ugyanúgy néz ki, mit ténykedésünk előtt. Nézzük meg e feltöltött, és böngészőben lehívott oldal forrását. Olyan, mintha nem is csináltunk volna semmit. Pedig nagyon is sokat. De ha rossz fájlnevet írsz be az id= után a böngésződben akkor az error.htm fájlt fogja behívni. Ezt a fájlt is érdemes megcsinálni, teljesen testre szabható

Mindez azért jó, mert ha mondjuk változtatni akarunk akarunk a menünkön, nem kell minden egyes fájlban módosítani, hanem elég csak egyben. Egy hátránya van csak ennek, hogy a gépen nem fog működni, csak ha felteszel egy webszervert a gépedre.

Szerző: ArChiE

Kapcsolódó bejegyzések:
  • A cikk előzményeként olvasd el ezt a 2 leírást (php switch get I. és php switch get II.). A fórumon felvetődött a kérdés: hogy lehetne megoldani a nyelvválasztás …

  • Honlapok esetében néha nagyon hasznos megoldás tud lenni, ha a lap tartalmát (vagy egy részét) külső fájlból linkeljük be. Milyen előnyei vannak?1.) …

  • Az alábbi leírásnak már van egy előzménye, melyet “php switch get I.” címmel megtaláltok a honlapon. Mivel e leírás annak továbbfejlesztett – és módszerben is új …

  • Az első kérdés, ami felmerül majdnem mindenkiben, hogy lehet egy többnyelvű honlapot megcsinálni, amin váltani lehet a nyelvek között. Vegyünk egy példát, van eg …

  • A következőkben egy olyan, általam írt PHP-s függvényt szeretnék bemutatni, amellyel könnyedén és egyszerűen készíthetünk magunknak olyan oldalt, amely támogatja …

A cikket beküldte: Harder (http://blog.harder.hu)

13 hozzászólás

  1. Marci says:

    Kipróbáltam ezt de nekem örökké csak a hibaoldalt jelzi ki.

  2. BlackY says:

    Helló!

    Kösz, hogy szóltál, javítottam, így már mennie kell (nem volt register globals off kompatibilis).

    BlackY

  3. Marci says:

    Tényleg most jó! Jaj de hú de jaj de örülök.

  4. Drake says:

    Nagyon jó az oldal, és gratulálok hozzá!

    A leírással kapcsolatban lenne egy kérdésem, ugyanis gondolatban kicsit tovább fejlesztettem a működését, de nem tudom megcsinálni. Azt szeretném, ha nem a létező fájlttól függene a lap, vagy a hibaoldal megjelenése, hanem egy megadott dátumtól. Vagyis megadok egy dátumot, ami előtt a hibaoldal, és csak a megadott dátum után jelenne meg a lap. A másik kérdésem, hogy megoldható-e, hogy a szerveren beállított dátum szerint működjön, hiszen így a felhasználó nem tudja “kijátszani” (gondolom). Ha hülyeséget kérdeztem, akkor elnézést kérek, mert még kezdő szinten állok ezen a téren. A választ előre is nagyon köszönöm!

  5. TLoF says:

    Meg lehet csinálni. Az időpontra védeni kivánt file első sorába beszurod a következő pár sor sort:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    <?
    $mikortol =  1211396400;
    if ( time() <= $mikortol)
    {
    include ('error.html');
    }
    else
    {
    include ('tenylegestartalom.html');
    }
    ?>

    És csak a szerveren megadott dátum szerint müködik, mert az include ott futt le.
    A unixtimestamp előállitáshoz pedig itt van kis segitség: http://www.unixtimestamp.com/index.php

  6. Drake says:

    TLoF!

    Nagyon szépen köszönöm!!! Működik, és pontosan így képzeltem.

  7. TeXe says:

    Helló!

    Nekem az lenne a kérdésem hogy a menüben lévő gomb amire kattintanak az hogy van megoldva?

  8. Harder says:

    a leírásban ott egy példa link, hogy kell a gombot megcsinálni (www.teneved.hu/main.php?id=teszt)

  9. Én így csinánálom says:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    <?
    /// ha az id nem kapott értéket akkor a news.php-t tölti be.
    if(!isset($_GET['id'])) 
      {
        include("news.php"); 
      } 
    ///ha az id változó kapott értéket akkor 
    if(isset($_GET['id'])) 
      { 
        $id = $_GET['id']; 
        //// megvizsgáljuk ,hogy létezik-e a file
       /// ha igen
        if(file_exists("$id.php")) 
          { 
            include("$id.php"); 
          } 
        ///ha nem akkor hiba kiiratás
         elseif(!file_exists("$id.php"))
          { 
            echo '
     
                404-es hiba !
                404-es hiba a keresett oldal nem található
              ';
          }
      }
    ?>

    bár mondjuk 404 hiba oldal helyett .htaccess-t lövöm be :)

  10. mmatyas says:

    Ugyanezt meg tudnátok nekem mutatni Layerekkel is ???
    Tehát ne egy külön oldalt inclu-doljon be, hanem egy div-et a kijelőlt div-be.

  11. Robi says:

    “Helló!

    Nekem az lenne a kérdésem hogy a menüben lévő gomb amire kattintanak az hogy van megoldva?”

    Nem nehéz megoldani :)

    az én megoldásom a következő:

    és az includ-os rész
    a fent láthatók akármelyike megfelel … csak a változóknak kell egyeznie

    itt a részletes


    <img src=”” alt=”HOME” border=”0″
    onmouseover=”src=””
    onmouseout=”src=”” />


    _____________________________________________________________

  12. Én így csinálnám says:

    menüre természetes pl. index.php?id=xy ekkor az xy.php tartalmát tölti be ..már ha létezik ilyen ,ha nem akkor 404es hba.

    DIVES :
    IF-Ekkel meoldva

    1
    2
    3
    4
    
    if(!$_GETt['show_div']) 
      {echo 'Ez lesz az alap feltéve ,hogy nem küldtek változót '; }
    if($_GET['show_div'] == 1)
      {echo 'Ez lesz az 1es div feltéve ,hogy at átadott érték ?show_div=1 '; }

    stb stb..

    SWITCH-el megoldva :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    switch($_GET['show_div'])
       {
        case 1 : $tartalom = '1es div'; break;
        case 2 : $tartalom = '2es div'; break;
        case 3 : $tartalom = '3es div'; break;
        case 4 : $tartalom = '4es div'; break;
        default : $tartalom = 'nem küldtünk még értéket a(z)show_divvel ezért ez lesz az alap     
                                      divünk'; break;
       }
    echo ''.$tartalom.'';

    ennyi :)

  13. Sgt. says:

    Üdv! Arra volnék kíváncsi, hogy:
    1. Hogy lehet azt megoldani, hogy az index.php-n, azaz a honlap főoldalán a tartalomnak kijelölt helyen ott legyen a tartalom, de a menüsor linkjeit mégis ugyanazon a helyen nyissa meg. Tehát, ugyanaz, ami a fenti cikkben áll, csak legyen tartalom is, meg include is.

    2. Ha a hírszerkesztőm (Fusion News) cikkeket tartalmazó lapját (news.php) megjelenítem az include kóddal a tartalom helyén, a hírszerkesztő önálló linkjei (amik ezen a news.php-n vannak, pl. Hozzászólások, Email barátnak) is ugyanott fognak megnyílni, és nem pedig egy teljesen új oldalon, ahol nincs körülötte az én honlapom menüje, logója, stb keretként (amiről az egész include dolog szól. Ha érthető. :\ Tudom, kicsit körülményesen fogalmazok… :P

Szólj hozzá
a php include c. bejegyzéshez

- Engedélyezett HTML elemek: <a> <em> <strong> <ul> <ol> <li>
- Forráskód beküldéséhez tedd a kódot ezek közé: <pre lang="php" line="1">Kódrészlet helye itt</pre>