Sziasztok!
A problémám a következő:
include "dir/valami.php"; --> működik
-----------
$var = "dir/valami.php"
include $var; --> működik
----------
$var = "dir/valami.php"
include (string)$var; --> működik
------------
$var = "dir/".$var1.".php"
include $var; --> nem működik
------------
$var = "dir/".$var1.".php"
include (string)$var; --> nem működik
------------
$var = "dir/".$var1.".php"
$var2 = (string)$var;
include (string)$var2; --> nem működik
-----------
$var = "dir/".$var1.".php"
$var2 = (string)$var;
include $var2; --> nem működik
-------------
include "dir/".$var.".php"; --> nem működik
Mi lehet a probléma?
- 7344 megtekintés
Hozzászólások
És mi van a $var1-ben? Mert nálam az összes felsorolt példád működik, amennyiben a $var1-nek megfelelő értéke van.
- A hozzászóláshoz be kell jelentkezni
$_GET['page']
de a $var1 = "valami"; esetén is ez a helyzet
azt sejtettem, hogy működnie kell, csak azt nem tudom merre keressem a hibát :/
- A hozzászóláshoz be kell jelentkezni
Akkor az include elé tegyél be hibakeresési célzattal egy `echo $var'-t, és egyből látni fogod, hogy jó-e az értéke, vagy sem.
Úgy egyébként pedig, remélem csinálsz majd rendes validálást a $_GET-ben beérkező értékre...
- A hozzászóláshoz be kell jelentkezni
megtettem és jó az érték, még a echo "dir/".$var.".php"; esetén is ha a $var értéke "valami", akkor dir/valami.php iródik ki az echo val
...validálás...
ez egyértelmű ;)
- A hozzászóláshoz be kell jelentkezni
és a "nem működik" címszó alatt mi a hibaüzenet?
- A hozzászóláshoz be kell jelentkezni
hibaüzenetet nem kapok, az is_file(...) pedig false -al tér vissza
- A hozzászóláshoz be kell jelentkezni
Az echo helyett var_dump vagy var_export legyen, abbol a tipus is kiderul! (itt most mindegy, de sokszor szamit)
--
I'm not saying the new Apple Watch will only be worn by wankers but it's not vibration, shock and splash proof for nothing.
- A hozzászóláshoz be kell jelentkezni
string(12)
- A hozzászóláshoz be kell jelentkezni
és a tartalma mi?
mert elsőre a dir/valami.php > 12 a valami.php vagy a valami pedig < 12.
KoviX
- A hozzászóláshoz be kell jelentkezni
string(12) "edit_profile"
- A hozzászóláshoz be kell jelentkezni
bocs, azt hittem a valamivel tesztelsz.
írtad hogy nincs üzenet. Az include-nak egy warningot akkor is illene dobnia, ha nincs meg a fájl.
ha az elejére egy error_reporting(E_ALL); -t beraksz, nem lesz egy kicsit beszédesebb? Esetleg a display_errors nincs kikapcsolva?
KoviX
- A hozzászóláshoz be kell jelentkezni
valóban nem volt bekapcsolva :( így írja a hibát
a következőket használom magában a php fájlban:
$valami1= $_GET['page'];
$valami = "dir/".$valami1.".php";
$svalami = (string)$tartalom;
var_dump($svalami);
var_export($svalami);
echo $svalami;
include $svalami;
http://valami.hu/index.php?page=edit_profile
ami érdekes, hogy a valami1-re a megfelelő hoszt írja ki //string(12) "edit_profile"
viszint az $svalami-re már nem // string(29) "dir/edit_profile.php"
Warning: include(dir/edit_profile
- A hozzászóláshoz be kell jelentkezni
sőt még a következő is működik:
$dir = "dir/";
include $dir."valami.php";
- A hozzászóláshoz be kell jelentkezni
Szerintem sokat segítene, ha a példakódokban valami helyett konkrétan edit_profile.php-t írnál, és írnál összesen egy/két darab példát, amiben benne van együtt/külön a jó és rossz eset is, rendes logolással, és annak kimenetével együtt. Mert már annyiféle információ meg össze nem tartozó kódsor és kimenet meg valamizgetés keveredik itt, hogy nem lehet rajta eligazodni. Lásd: http://sscce.org/
- A hozzászóláshoz be kell jelentkezni
Közbe elértem, hogy betöltse, de arra még nem jöttem rá, hogy miért került be a table tag a stringbe az sajnos az előző hozzászólásomból hiányzott mivel BBCode része és így nem jelenítette meg. Ha ezt a strip_tags()-el kiveszem, akkor működik. Nélküle a következőt akarta betölteni: dir/valami[table].php
- A hozzászóláshoz be kell jelentkezni
Az include helyett ajanlom a require vagy require_once valamelyiket.
Ott van a helyen az adott file? Olvashato? Hozzafer a webserver (ha webserveren keresztul futtatod)?
--
I'm not saying the new Apple Watch will only be worn by wankers but it's not vibration, shock and splash proof for nothing.
- A hozzászóláshoz be kell jelentkezni
Ott van, elérhető és olvasható is, ugyanis ha így használom "$var = "dir/valami.php"" ahogy az elején is írtam, akkor működik.
- A hozzászóláshoz be kell jelentkezni
Legjobb módja, hogy lelopjanak mindent a szerverről.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
+1.
Ezt így nem nagyon kéne...
De hogy ne csak böfögjek, nézd meg pl. ezt: http://www.sitepoint.com/front-controller-pattern-1/
- A hozzászóláshoz be kell jelentkezni
Sajnos figyelmen kívül hagyjátok, hogy sehol nincs leírva, hogy ez valaha is éles környezetben fog működni. Valamint én arra kerestem választ, hogy miért nem működik és nem arra hogy helyes-e az út vagy sem. Végül megoldottam, ahogy azt fentebb írtam is.
- A hozzászóláshoz be kell jelentkezni
Értem. Mindig ez a kifogás. "Ez nem fog éles környezetben működni". Az más kérdés, hogy jól megcsinálni ugyanannyi időbe kerül.
Egyébként a hozzászólás elősorban nem neked szólt, hanem annak az embernek, aki beesik ide a google-ből, és az itteni kommentek alapján kódol valamit. Nem lenne jó, ha ez az oldal is azt terjesztené, hogy a felhasználótól érkezett adatokban meg lehet bízni ellenőrzés nélkül.
Márpedig az itteni scripted pont ezt teszi, vagyis lyukas.
- A hozzászóláshoz be kell jelentkezni
+1
Az csupán egy kiragadott részlet. ;)
- A hozzászóláshoz be kell jelentkezni
Mi kérünk elnézést...
- A hozzászóláshoz be kell jelentkezni
abszolut path vs relativ path
t
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
Hát igen, aki echo-val meg var_dump-al akar debug-olni, annak talán nem kéne ilyen include $var-okat használni...
- A hozzászóláshoz be kell jelentkezni
Új nap, új esélyek; légy szíves idézd be a releváns részeket, de ne csak fejből valami hasonlót, hanem a kódból kivágva a kérdéses sorokat.
pl:
$valami1= $_GET['page'];
$valami = "dir/".$valami1.".php";
$svalami = (string)$tartalom;
(természetesen a rossz változónevek csak fokozzák/elfedik a bajt.)
- A hozzászóláshoz be kell jelentkezni
A .-al összefűzés mindenképpen stringet fog eredményezni, és a string konstans is szintén, ezért a string típusra forceolás nyilván nem hozhatott volna eltérő eredményt.
- A hozzászóláshoz be kell jelentkezni
Kár, hogy a PHP gyengén típusos nyelv.
-----------
"Pontban 0:00-kor nem nagyon szoktak véletlen dolgok történni"
- A hozzászóláshoz be kell jelentkezni
Valóban az.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Ez kétségtelen. Bár azért a változónak (illetve a benne levő értéknek) minden adott pillanatban van valamilyen típusa, és ha az string, akkor egy string-gé konverzió már nem fog számottevő változást előidézni.
- A hozzászóláshoz be kell jelentkezni
Nem is ez a kár.
----------------
Lvl86 Troll, "hobbifejlesztő" - Think Wishfully™
- A hozzászóláshoz be kell jelentkezni
Az mindegy is, a lényeg, hogy mindenféle off-topik truizmussal életben tartsuk a topikot.
- A hozzászóláshoz be kell jelentkezni
Köszönöm! :D
- A hozzászóláshoz be kell jelentkezni