PHP Environment Variables doorgeven aan .htaccess

Pagina: 1
Acties:
  • 102 views sinds 30-01-2008
  • Reageer

  • kalizec
  • Registratie: September 2000
  • Laatst online: 25-08 18:47
Ik heb het volgende probleem. Ik draai Apache 1.3.19 onder FreeBSD 4.4 met PHP4.0 en heb allereerst oa op www.apache.org en www.php.net naar een oplossing gezocht maar heb niet kunnen vinden dat zo'n mogelijk probleem beschreef. Ook op GoT heb ik met "PHP .htaccess" niets kunnen vinden hoewel ik wel alle topics doorgelezen heb.

Behalve onderstaande .htaccess staan er geen andere .htaccess in hogere dir's en ook staat er AllowOverride All in httpd.conf. In /www/data/view/img/.htaccess staat hetvolgende:

SetEnvIfNoCase KLANT KLANT1 let_me_in
<Files *>
Order Deny,Allow
Deny from All
Allow from env=let_me_in
</Files>

Dit zou, mits de opgevrager als Env KLANT=KLANT1 heeft staan moeten werken, dat doet het echter niet.

En dat de PutEnv van het PHP-script nooit bij de link aankomt. Hieronder staat een deel het PHP-script dat naar de file linkt.

$correct = true
$login = KLANT1
if ($correct == true) {
putenv ("KLANT=$login");
echo ("[img]\"img/img-van-$login.jpg\"[/img]"); }

De ge-echode link zou mijnsinziens is toch toegang tot de file moeten verschaffen. Toch vertelt Apache steevast 403 Forbidden.

Als ik bovenaan .htaccess toevoeg
SetEnv KLANT KLANT1
krijgt iedereen gewoon toegang dus daaruit valt te concluderen dat de rest van .htaccess gewoon ok is en het probleem in het php gedeelte moet liggen.

Kan iemand mij helpen door uit te leggen wat ik verkeerd doe of wat ik over het hoofd heb gezien? Alvast bedankt.

Core i5-3570K/ASRock Z75 Pro3/Gigabyte Radeon HD7850/Corsair XMS3 2x4GB/OCZ Vertex2 64GB/3x640GB WD Black/24" B2403WS Iiyama x2/Nec 7200S


  • kalizec
  • Registratie: September 2000
  • Laatst online: 25-08 18:47
Oh ja even vergeten te vermelden, de bedoeling van het script is dus dat mensen die niet via de door PHP gegeneerde pagina ingelogd zijn ook geen toegang krijgen in die specifieke dir /www/data/view/img/ en dan zonder dat ze een pop-up van IE krijgen om aldaar hun login en ww in te vullen.

Core i5-3570K/ASRock Z75 Pro3/Gigabyte Radeon HD7850/Corsair XMS3 2x4GB/OCZ Vertex2 64GB/3x640GB WD Black/24" B2403WS Iiyama x2/Nec 7200S


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Het idee is leuk....

Maar dit zal niet werken!
Zodra het script sterft (klaar is) dan haalt hij als het goed is ook de env variabelen weg. Al zou dat niet gebeuren dan kan er maar 1 klant tergelijk in loggen ook niet de bedoeling denk ik.

Misschien kan je het faken?
Maak een PHP file waarmee je alle plaatjes laat zien?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
//
// Check hier je Authentication
//

// $file = referentie naar het plaatje
$fp=fopen($file,"r");
// Laat zien op het scherm
fpassthru($file);
// Tja.. Paranoia(?)
die();
?>

Of wat je ook kan doen is.
1. voor die dir alle Plaatjes laten parsen.
2. bovenstaande script prependen voor die directory.
3. $file==$SCRIPT_NAME
4. NIET GETEST! :) maar het zou ongeveer moeten werken

Programmer - an organism that turns coffee into software.


  • kalizec
  • Registratie: September 2000
  • Laatst online: 25-08 18:47
Hey

Het werkt. Heb een php geschreven die idd met fpassthru werkt en die doet het. :)

Bedankt

Core i5-3570K/ASRock Z75 Pro3/Gigabyte Radeon HD7850/Corsair XMS3 2x4GB/OCZ Vertex2 64GB/3x640GB WD Black/24" B2403WS Iiyama x2/Nec 7200S