Gå til innhold

$_REQUEST[]


Anbefalte innlegg

Jeg støtte nylig på et nytt problem. På serveren jeg skal hoste hjemmesiden min på fungerer ikke $_REQUEST['variabel'], erroren er "Undifined index".

 

Det ser heller ikke ut som om jeg kan lage URLer med ?variabel=innhold, da får jeg feilmelding om at filen ikke eksisterer.

 

Hvordan kan jeg fikse på dette? Hvilken innstilling er det som må ordnes?

 

Og hvorfor får jeg feilmelding om at "Your script possibly relies on a session side-effect which existed until PHP 4.2.3. " når scriptet fungerer flott her hjemme, med PHP 4.2.3, og når jeg har ingen kodinger som ikke stemmer overens med det på php.net?

 

$_REQUEST[], den skal jo fungere selv om register_globals står OFF skal den ikke? Det er jo nettopp derfor den eksisterer, slik at vi kan skru av dette og slippe sikkerhetshullet..

Lenke til kommentar
Videoannonse
Annonse

Request variables: $_REQUEST

 

Note: Introduced in 4.1.0. There is no equivalent array in earlier versions.

 

An associative array consisting of the contents of $_GET, $_POST, and $_COOKIE.

 

Note: Prior to PHP 4.3.0, $_FILES information was also included into $_REQUEST.

 

This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. You don't need to do a global $_REQUEST; to access it within functions or methods.

 

If the register_globals directive is set, then these variables will also be made available in the global scope of the script; i.e., separate from the $_REQUEST array. For related information, see the security chapter titled Using Register Globals. These individual globals are not autoglobals.

 

prøv å bruk enten $_GET eller $_POST eller $_COCKIE (avhengig avb hva du trenger selvfølgelig),

Lenke til kommentar
hvis du feks har addressen:

http://www.server.com/?page=hei

 

så finner du $page

 

ved å skrive

 

$page = $_GET['page'];

 

eller hvis du ahr en form så kan du skrive

 

<form action="" method="get">

ELLER, du kan skru på register_globals, da vil $page = $_GET['page']; skje automatisk, men det er jo en liten sikkerhetsrisiko..

 

I skjemaer bør man som oftest bruke method="post", ettersom det er litt upraktisk å ha passord, lange meldinger fulle av spesialtegn osv. i URL'en.. Da henter man data med $_POST['variabel'] eller $HTTP_POST_VARS['variabel']; i eldre versjoner.

Lenke til kommentar
Prøv $HTTP_GET_VARS[]

 

ELLER

 

Prøv import_request_variables()

 

Hmm, HTTP_GET_VARS fungerte heller ikke og ved bruk av import_request_variables fikk jeg følgende error:

 

Notice: Undefined variable:

 

Saken er altså den at jeg skal inkludere en viss side i index.php. Denne variabelen (sidenavnet) skal den hente ut ifra URL. Hvis den ikke finner noen ?side=sidenavn.php i URLen skal den inkludere forside.php som er standard filen jeg vil ha vist frem. Fungerer knirkefritt her! :shrug:

 

<?php

import_request_variables("g", "r_");

$side = $r_side;



if ($side) {

include ($side);

} else {

include("storsider/forsiden.php");

}

?>

Lenke til kommentar
det virker som den serveren er veldig rar, jeg tror problemet ligger der...

 

Serverenn er en IIS 4.0 på Win 2003 Server med PHP 4.3.2 (Nyeste verisjon) installert. Standard oppsett på alt as far as I know...

 

nå har jeg aldri vært bort i annet enn Apache på forskjellige *nix platformer med forskjellige php versioner, så win servere har jeg nok ingen peiling på...

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...