ugrás a tartalomhoz

.htaccess + php_flag register_globals off

Anonymous · 2005. Aug. 10. (Sze), 19.53
Helló!

Van egy .htaccess fájlom a következő tartalommal:

php_flag register_globals off

Csak ez található benne semmi más. Localhoston nincs is vele gond, viszont ha a (fizetős) tárhelyemre is felrakom, akkor nem jönnek be az oldalak (404). Sajnos a register_globals a tárhelyen alapból "on", ezért kellene ez a megoldás. (Tudomásom szerint az ini_set-tel nem lehet megváltoztatni az értékét.) Szóval, van valami ötletetek, hogy mi az oka a 404-nek?
 
1

500, nemde?

Hojtsy Gábor · 2005. Aug. 10. (Sze), 20.36
500-as hibáról beszélünk, nemde? Ha CGI-ként fut a PHP, akkor nincs php_flag direktíva bejegyezve az Apache-ban, mert a CGI módú PHP-vel ez nem lehetséges, és akkor hibát kapsz az oldalak elérésére. Lásd a phpinfo() kimenetét vagy a php_sapi_name() által adott választ.
2

Hát, nekem 404-et ír ki

Anonymous · 2005. Aug. 10. (Sze), 20.49

[404] ERROR A keresett file nem található


A phpinfo() kimenete (részlet):

PHP Version 4.3.11

System Linux server_x 2.6.12 #1 SMP Wed Jun 22 21:30:39 CEST 2005 i686
Build Date Aug 2 2005 16:57:24
Configure Command './configure' '--prefix=/servers/php' '--with-apxs2=/servers/httpd/bin/apxs' '--with-mysql=/servers/mysql' '--with-zlib' '--with-gd=/usr/lib' '--with-jpeg-dir' '--with-png-dir' '--with-dom' '--with-db4' '--enable-exif' '--with-mm' '--with-zip' '--with-gettext' '--with-imap' '--with-imap-ssl' '--with-kerberos' '--with-iconv' '--with-curl' '--enable-mbstring' '--with-ttf=/user/lib' '--with-freetype-dir=/user/lib' '--enable-gd-native-ttf'

Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /servers/zendoptimizer/etc/php.ini
PHP API 20020918
PHP Extension 20020429
Zend Extension 20021010
Debug Build no
Thread Safety disabled
Registered PHP Streams

Loaded Modules core mod_access mod_auth mod_deflate mod_log_config mod_logio mod_env mod_mime_magic mod_usertrack mod_setenvif mod_ssl prefork http_core mod_mime mod_status mod_asis mod_info mod_cgi mod_vhost_alias mod_negotiation mod_dir mod_imap mod_actions mod_speling mod_alias mod_rewrite mod_so sapi_apache2

GATEWAY_INTERFACE CGI/1.1

_SERVER["GATEWAY_INTERFACE"] CGI/1.1


Bocs, hogy így bevágtam ide, de sajnos nem tudom, hogy mit keressek, ezért amiről úgy gondoltam, hogy fontos lehet betettem ide.
3

milyen beállításokkal?

Hojtsy Gábor · 2005. Aug. 11. (Cs), 21.21
Ez a phpinfo()-t tartalmazó fájl a fenti .htaccess állomány mellett végrehajtható volt? Lásd a PHP beállítások táblázatot is a phpinfo() kimenetében.
4

Ha van .htaccess, akkor lehal minden

Anonymous · 2005. Aug. 11. (Cs), 21.52
Nem, a phpinfo()-t a .htaccess fájl nélkül próbáltam. Ha beteszem a .htaccess-t akkor semmilyen oldal nem jön be (404). Sőt, még így sem:

valami.hu/phpinfo/phpinfo.php

és a .htaccess elérése valami.hu/.htaccess! Tehát nincs is egy mappában a phpinfos fájllal.
5

öröklődik

Hojtsy Gábor · 2005. Aug. 11. (Cs), 22.15
A .htaccess öröklődik az alkönyvtárakra. Különben lehet, hogy php_admin_flag-gel meg van adva a register_globals a httpd.conf-ban, és azért nem tudod átállítani. Az, hogy ebből miért lesz 404, az valami érdekes szerver specifikus beállítást jelez, amiatt hogy Apache 2 modulként fut a PHP, értenie kellene a php_flag direktívát... Én kipróbálnék valami ártatlanabb beállítást, mondjuk:

php_value docref_root "http://hu.php.net/manual/"
php_value docref_ext ".php"


És egy ilyen tartalmú .htaccess mellett figyelném meg a phpinfo() kimenetét.
6

Sehogy sem jó

Anonymous · 2005. Aug. 12. (P), 11.07
Sajnos "ártatlanabb beállítás" mellett is 404...Sőt nekem úgy tűnik, hogy bármit írok bele (leszámítva a kommenteket), mindig 404.
7

apache doksi tanácsa

Hojtsy Gábor · 2005. Aug. 12. (P), 11.18
http://httpd.apache.org/docs/2.0/howto/htaccess.html#troubleshoot Igen, a valódi hiba okot az error log mondja meg, amit egy fizetős tárhelyen kell kapnod.
8

Egyszerü buta megoldás

Anonymous · 2005. Aug. 12. (P), 12.12
Van egy nagyon egyszerü és nagyon buta megoldás.

foreach ($_REQUEST as $key => $value)
{
 eval("unset(\$" . $key . ");");
}


Lehet, hogy kicsit lassú, de müködik. Egyébként meg ha mindig inicializálod a változóidat, akkor nem lehet gond. Érdemes az E_NOTICE szintü hibák jelzéstét bekapcsolni teszteléskor, akkor kiböki a szemedet, ha valahol nem inicializáltál.

ProClub
proclub##kukac##karinthy.hu
9

ovatosan!!!

T.G · 2005. Aug. 12. (P), 12.50
Egyik rés helyett egy másik? :)
Néhány napja volt arról szó, hogy mikor jó az eval, és mikor nem... szerintem ez az az eset, amikor nem!!! Magic quotes on esetén érdekes dolgok történhetnek index.php?hello%22);delete_mindent();unset(%22=1
Inkább: unset(${$key});
10

hát butának buta

Hojtsy Gábor · 2005. Aug. 12. (P), 13.13
Már az eval() hírnél is felvilágosítottak téged a fiúk, hogy ehhez bizony nem kell eval(), sőt rosszat is tesz veled, ha használod. Másrészt több dologra kellene gondolni, lásd erről szóló blogmarkunkat.
11

A változók inicializálása alap...

Anonymous · 2005. Aug. 12. (P), 16.53
A változók inicializálása alap, csak azért szerettem volna a .htaccess-t is alkalmazni és nem csak emiatt...Hát, ha nem jövök rá a megoldásra, akkor valószínű, hogy írok egy mailt a szolgáltatónak, aztán rákérdezek...

http://httpd.apache....ss.html#troubleshoot


Ennek nyomán eljutottam az AllowOverride-hoz:

When this directive is set to None, then .htaccess files are completely ignored.


Tehát akkor lehet, hogy nincs is engedélyezve a .htaccess??
12

lehet

Hojtsy Gábor · 2005. Aug. 12. (P), 20.07
Lehet, de az, hogy 404 hibát az, az abnormális, ezt a szolgáltatóval kellene most már megbeszélni.