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

13 HOZZÁSZÓLÁS

  1. Helló!

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

    BlackY

  2. 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!

  3. 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

  4. Helló!

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

  5. 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 :)

  6. 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.

  7. 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 :)

  8. Ü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

HOZZÁSZÓLOK A CIKKHEZ

Kérjük, írja be véleményét!
írja be ide nevét