Autor Zpráva
slovakCZ
Profil
DObry den, mam problem s includovanim souboru config.php...
mam adresu: localhost/test/
na strance mam:
<?php
include "app/config.php"; ?>


ovsem pri pouziti "friendly url" se mi adresa muze zmenit na:
localhost/test/kategorie/motorky
a pote nastava problem... kdyz je na strance pouzito:
<?php
include "app/config.php"; ?>

tak to soubor config.php hleda v: localhost/test/kategorie/motorky/app kde samozrejme neni.. soubor se nachazi v: localhost/test/app

existuje nejaka moznost jak toto vyresit? napriklad nejakou podminkou ktera by fungovala nasledovne:
includuj soubor app/config.php. Kdyz se include nepovede tak includuj ../app/config.php. Kdyz se ani tento include nepovede tak includuj ../../app/config.php a tak dal... mozna je to slozite reseni, ale je jedine, ktere me napada... muzete mi s tim trochu poradit?

dekuji moc,

Tom
slovakCZ
Profil
tak jsem to vzresil takto: nevim ovsem zda to je rozumne reseni =o/
$include = "config/config.php"; 
  if(file_exists($include)){include $include;}else{
    $include = "app/config/config.php";
    if(file_exists($include)){include $include;}else{
      $include = "../app/config/config.php";
      if(file_exists($include)){include $include;}
    }
  }
Nox
Profil
slovakCZ:
friendly url s tím imho nemůže mít nic společnýho, include se děje standardně přes filesystém, ne jako http požadavek

v každém případě je dobré mít uložený kořenový adresář filesystemu a pak můžeš používat absolutní URL

pokud se požadavky směřují na soubor na nejvyšším stupni, tak lze použít třeba toto:
define("root", dirname(__FILE__)); //příp. myslím __DIR__ v PHP5.3+

include root."/app/config.php";

a bude to platit pak v celém skriptu
stejně jako absolutní URL v html

tak jsem to vzresil takto: nevim ovsem zda to je rozumne reseni =o/
myslim že moc ne, to vypadá spíš jako tipování kde by mohl soubor být
slovakCZ
Profil
aha, takto se to dela... :) dekuji moc, myslim ze vysvetleni bylo vycerpavajici.

// edit:
nejspise to po nahrani na FTP fungovat bude, ale potreboval bych skript vyvyjiet na localhoste... a po pouziti Tve rady:
define("root", dirname(__FILE__));
  include root."/app/config.php";

mi to pise:

Warning: include(D:\localhost\xampp\htdocs\nakodujto/app/config.php) [function.include]: failed to open stream: No such file or directory in D:\localhost\xampp\htdocs\nakodujto\index.php on line 7
slovakCZ
Profil
aha, tak se mi to povedlo vyresit takto:
define("rootApp", dirname("D:/localhost/xampp/htdocs/nakodujto/app/"));
include rootApp."/app/config/config.php";


jen mi neni jasne, proc musim definovat slozku az do adresare app a pote includovat zase opet adresar app?? zkousel jsem si pohrat i s lomitkama a nejak to nepomohlo no =o/ ale tak hlavne ze to funguje :)
blizzboz
Profil
slovakCZ

alebo skús použiť RobotLoader a o includovanie súborov sa vôbec nemusíš starať.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0