ugrás a tartalomhoz

Kideríthető melyik fájl include -ja az adott fájl?

randomly · 2013. Jan. 25. (P), 11.44
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.
 
1

Hackerkedsz?

Hidvégi Gábor · 2013. Jan. 25. (P), 12.06
Betörtél valahova? Saját rendszerben nem olyan nehéz megtalálni azokat a fájlokat, amelyekben benne van az include parancs.
2

Nem hackerkedek

randomly · 2013. Jan. 25. (P), 12.23
Nem hackerkedek csak folyamatosan gányolok 6 éve egy rendszert. És gondoltam atom biztosra csinálom. Na ennek az lett a vége hogy config.inc.php mindig be lett include -va. Na most a szolgáltató megunta és 20 slot-ot ad a mysql-hez egy időben. Na és ezt így nem oly nehéz túl lépni. User xy has already more than 'max_user_connections' active connections

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);
?>
3

globális változó

Poetro · 2013. Jan. 25. (P), 12.48
Csinálj egy globális változót, és minden 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.
4

segíts

randomly · 2013. Jan. 25. (P), 13.18
Minden fájlba amiben szerepel a config.inc.php szúrjak be egy $i a config.inc.php -ba meg egy $i = $i + 1; -et a fájlok végére meg <?php echo $i; ?> vagy <?php if ($i>1) { mail(); } ?>

Sajnos 100-as nagyságrendű a fájlok száma. :-(

Tényleg nem létezik get_included_files szerű valami sima includes -re? :-)
5

config.inc.phpglobal

szabo.b.gabor · 2013. Jan. 25. (P), 13.32
config.inc.php
global $config_counter;
if(empty($config_counter)) $config_counter=0;
$config_counter++;

//ha nincs egységes footer.php-d akkor bónuszként
echo '<!-- config_counter value: ',$config_counter,' -->';
az empty természetesen csak egyszer.. ez a színező ilyen :D
7

Csak nem értem, vagy

randomly · 2013. Jan. 25. (P), 14.03
Vagy nem írtam le mindent. Sajnos a config.inc.php-t sok fájl hívogatja, több domain alól.

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

hát ez nem így vagyon. ez a

szabo.b.gabor · 2013. Jan. 25. (P), 14.37
hát ez nem így vagyon.

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

global

randomly · 2013. Jan. 25. (P), 16.45
Na ezt a global-t nem tudtam/értettem.

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

Nem tudom, lehet, hogy

eddig bírtam szó nélkül · 2013. Jan. 25. (P), 13.52
Nem tudom, lehet, hogy félreértem az egészet, de mondjuk egy grep nem segít? (esetleg windows-on egy findstr)
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.
8

el van igen

randomly · 2013. Jan. 25. (P), 14.11
Igen tudom hogy el van rontva az elején. De anno volt valami kavarodásom amit az include_once kiváltása include -ra meg oldotta és így maradt(am).

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

include/require

eddig bírtam szó nélkül · 2013. Jan. 25. (P), 14.18
Ezzel az a gáz, hogy ha include-ot használsz és az nem találja a szükséges fájlt, akkor simán továbbmegy és valami olyan hibát kapsz esetleg, aminek semmi köze a valódi problémádhoz. Ha require/require_once-t, akkor meg rögtön a hiba helyén fog megakadni a programod. Az include nem is tudom, mit keres a PHP-ben... Én értelmetlennek találom.
11

Az include nem is tudom, mit

Joó Ádám · 2013. Jan. 25. (P), 15.58
Az include nem is tudom, mit keres a PHP-ben... Én értelmetlennek találom.


A PHP sablonozó nyelvnek indult.
12

OK, de egy sablonnál nem gáz,

eddig bírtam szó nélkül · 2013. Jan. 25. (P), 15.59
OK, de egy sablonnál nem gáz, hogy egy betöltendő része hiányzik?
13

Nem mindig volt divat az „if

Joó Ádám · 2013. Jan. 25. (P), 16.05
Nem mindig volt divat az „if you must fail, fail loudly”. Azok a nyelvek, amik hangosan jelzik a hibát, nem lesznek olyan népszerűek, amilyen a PHP lett. Nem véletlen, hogy a HTML-t nem sikerült kiváltani az XML-lel.
14

Ehhez én már kevés vagyok...

eddig bírtam szó nélkül · 2013. Jan. 25. (P), 16.09
Ehhez én már kevés vagyok... ;-)
16

jó ez hogy lehet választani

randomly · 2013. Jan. 25. (P), 16.48
Én meg annak vagyok a híve hogy fusson a program ameddig bír. A hibáról így vagy úgy értesülök, szerencsés esetben a hibakezelésemmel email-ban. Addig is van kimenet nem 404 amiért lehet google töröl. Inkább legyen egy csonka oldal addig még megoldom pár perc vagy esetleg óra, és mire újra jön már megint azt látja amit kell.
18

Na jó, erre most inkább csak

eddig bírtam szó nélkül · 2013. Jan. 25. (P), 17.10
Na jó, erre most inkább csak magamban reagálok. ;-)

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

Stack trace-ből (vagy

tgr · 2013. Jan. 25. (P), 17.04
Stack trace-ből (vagy nehézsúlyúbb esetben inclued gráfból) ki lehet találni, de neked nem erre van szükséged, hanem tisztességes adatbáziskezelésre, illetve alapvető programozási koncepciók (pl. global/singleton) megismerésére.