Kideríthető melyik fájl include -ja az adott fájl?
Helló!
Szóval van egy fájl amit include -ok. És kíváncsi lennék rá hova is include -m. Tehát ha valahonnan meghívóm akkor szeretném tudni honnan történt.
Lehetséges ez?
.php kiterjesztésű tehát futtatni tudok benne, de nem jövök rá mi az függvény ami nekem ezt elárulná.
Köszönöm előre is.
■ Szóval van egy fájl amit include -ok. És kíváncsi lennék rá hova is include -m. Tehát ha valahonnan meghívóm akkor szeretném tudni honnan történt.
Lehetséges ez?
.php kiterjesztésű tehát futtatni tudok benne, de nem jövök rá mi az függvény ami nekem ezt elárulná.
Köszönöm előre is.
Hackerkedsz?
Nem hackerkedek
Na most két variáció van. Vagy lecserélem mindenütt include_once -re.
Vagy csak ott ahol szükséges, de ehhez tudnom kellene hogy hol van többször meghívva.
config.inc.php
<?php
if ($mysql_connect) {
//Mit írjak ide hogy meg tudjam honnan include -tam?
}
$mysql_connect = mysql_connect($mysql_host, $mysql_user, $mysql_password);
?>
globális változó
include
alkalmával növeld meg eggyel. Így látni fogod, hogy az oldalon hányszor hívtad be. Az oldal végén pedig kiírod ezt a számot. Aztán ráeresztesz egy crawlert, vagy lefuttatsz egy automata tesztet, és látni fogod, hogy hol lesz ez a szám nem 1.segíts
Sajnos 100-as nagyságrendű a fájlok száma. :-(
Tényleg nem létezik get_included_files szerű valami sima includes -re? :-)
config.inc.phpglobal
Csak nem értem, vagy
Nem próbáltam még de ez a számláló nem jól fog számolni ha közben másik file is include -ja még az előző le nem futott. Némelyik script 0,2 mp alatt lefut némelyik 10mp alatt.
statisztika.inc.php az van mindenütt az nem gond, a kiíratás.
hát ez nem így vagyon. ez a
ez a változó csak a kérésre vonatkozóan globális. a különböző kérések nem tudnak egymás változóiba bekavarni, még ha ugyanaz is a fájl.
amúgy a számláló móka mintájára megcsinálhatod azt is, hogy ha már van $mysql_connect változód, akkor nem kapcsolódsz újra, hanem használod, aztán jónapot.
statisztika.inc.php-ban pedig zárd le a kapcsolatot.
global
Igen sokféleképp megoldható a dolog, de azt gondoltam hogy lebuktatom kihívja duplán ott include_once -ra átíróm a többi marad sima include.
Így most mindent átírtam include_once-ra és most lesem a config.inc.php -ben hogy valaki elmaradt-e. if ($mysql_connect) { //send email alert } :-)
Még egyszer köszönöm.
Nem tudom, lehet, hogy
Legvégső esetben valami komolyabb IDE (eclipse/netbeans kategória vagy attól felfelé), amivel emlékeim szerint ilyesmit is meg lehet találni...
include_once (sőt, inkább require_once) használatával meg végképp nem értem, mi a gond. Valami (szerintem) nagyon el lehet *******, ha muszáj egyszerű include-ot használni.
el van igen
Most hogy ennyit segítettek, már lecseréltem majdnem mindent include_once -re ... require_once az már veszélyes terület nekem, inkább fusson tovább script és majd kivált egy másik hibát amit megkapok, de legalább van valami kimenet addig is. :-)
include/require
Az include nem is tudom, mit
A PHP sablonozó nyelvnek indult.
OK, de egy sablonnál nem gáz,
Nem mindig volt divat az „if
Ehhez én már kevés vagyok...
jó ez hogy lehet választani
Na jó, erre most inkább csak
Extrém hülye példa: az oldalad első sora, hogy include-dal berántod a jogosultság ellenőrzést, ami abortálja a programot, ha a felhasználónak nincs joga megjeleníteni a lapot. Csakhogy az include nem találja, tehát továbbmegy és megmutatja a jogosulatlan usernek is a védett oldalt.
Stack trace-ből (vagy