[php] undefined index

Pagina: 1
Acties:

  • Speedener
  • Registratie: September 2000
  • Laatst online: 31-08 08:11
Nou ik ben maar weer eens aan de slag gegaan met php, nieuwste zooi geinstaleerd.

maar ik heb zo iets wazigs. ik heb de hele n8 hier al rond gehangen enzo lekker rond gekeken want had deze fout al hele n8 maar nu word ik een beetje moe van zoeken. WTF is hier mis mee?
PHP:
1
<?$item = $_GET['item'];if(!isset($item))    $item = "home";if(FILE_EXISTS("site/includes/$item.inc.php"))    include("site/includes/$item.inc.php");else        echo '<center><br /><b>Foutje ?!?!</b><br />Deze pagina bestaat niet.<br /><a href="javascript:history.back(-1)">Hier kan je terug naar de vorrige pagina.</a></center>';?>

ik snap niet wat mis is.. :S
jullie snappen denk ik de bedoeling wel...
gewoon een kwestie van een index.php?item=***var*** pagina

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 09:31

Crazy D

I think we should take a look.

Op zaterdag 27 juli 2002 11:13 schreef Speedener het volgende:
maar ik heb zo iets wazigs. ik heb de hele n8 hier al rond gehangen enzo lekker rond gekeken want had deze fout al hele n8 maar nu word ik een beetje moe van zoeken. WTF is hier mis mee?
Welke fout hebben we het over?

Exact expert nodig?


  • Speedener
  • Registratie: September 2000
  • Laatst online: 31-08 08:11
ow sorry
Notice: Undefined index: item in
c:\servers\apache\htdocs\s\index.php on line 73

en das de 1e regel, dus:
$item = $_GET['item'];

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 10-08 15:15
opmerking: heb je er over nagedacht dat het gebruik van een url-variable in je bestandspad mogelijk misbruikt kan worden door een bezoeker van je website?

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Speedener
  • Registratie: September 2000
  • Laatst online: 31-08 08:11
Op zaterdag 27 juli 2002 11:30 schreef Infinitive het volgende:
opmerking: heb je er over nagedacht dat het gebruik van een url-variable in je bestandspad mogelijk misbruikt kan worden door een bezoeker van je website?
op welke manier?

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 10-08 15:15
Bijvoorbeeld: stel dat de code die deze include doet, ook in een php bestand staat genaamd blabla.inc.php. Dan zou je door dat bestand als include op te nemen een eindeloze include loop krijgen.

In werkelijkheid zal het wel meevallen, maar goed. Ik zou dat $item zodanig controleren dat het geen '.' of '/' bevat (zodat het geen bestanden, behalve inc.php in alleen je includes directory kan openen).

Of ja, je fout geeft dus aan dat $item niet bestaat. Dat is op zich wel gek, want die heb je daarboven gedefinieerd...

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Speedener
  • Registratie: September 2000
  • Laatst online: 31-08 08:11
Op zaterdag 27 juli 2002 11:33 schreef Infinitive het volgende:
Bijvoorbeeld: stel dat de code die deze include doet, ook in een php bestand staat genaamd blabla.inc.php. Dan zou je door dat bestand als include op te nemen een eindeloze include loop krijgen.

In werkelijkheid zal het wel meevallen, maar goed. Ik zou dat $item zodanig controleren dat het geen '.' of '/' bevat.
mja maar die map staat toch op mijn server, dus daar kan toch niemand anders dingen neerzetten? of zie ik dat verkeerd?
en als iemand doet index.php?item=http://urlwaarhetstaat/blabal.php doet dan word er eerst gekeken of het bestand in data/includes/http://urlwaarhetstaat/blabal.php staat, en dat is dan niet zo en word dus niet include, of brabbel is verkeerd?

dat laatste zal ik doen, maar dan moet het wel eerst werkend ;)

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 10-08 15:15
wat denk je van: 'includes/../../../../blabla.inc.php'

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • Speedener
  • Registratie: September 2000
  • Laatst online: 31-08 08:11
Op zaterdag 27 juli 2002 11:37 schreef Infinitive het volgende:
wat denk je van: 'includes/../../../../blabla.inc.php'
mja, na goed, dat later eerst ff dit zien te fixxen

  • Infinitive
  • Registratie: Maart 2001
  • Laatst online: 10-08 15:15
Schakel eens de regels waar die fout optreed uit (met commentaar streepjes), zodanig dat je die fout niet meer hebt, en zet dan regeltje voor regeltje stukken code weer terug (tot het weer fout gaat). Dan weet je tenminste zeker waar het precies fout gaat. Controleer vervolgens (met een echo ofzo) wat de waarde van $item is vlak op het moment dat je die notice-melding krijgt.
Probeer vervolgens iets simpelers met $item te doen (bijvoorbeeeld: echo "$item").

putStr $ map (x -> chr $ round $ 21/2 * x^3 - 92 * x^2 + 503/2 * x - 105) [1..4]


  • TheMrH
  • Registratie: April 2000
  • Laatst online: 01-09 22:45
ipv
PHP:
1
<?$item = $_GET['item'];if(!isset($item))    $item = "home";?>


PHP:
1
<?$item = "home";if (isset($_GET['item'])    $item = $_GET['item'];?>

The box said 'requires Windows 95 or better', so I installed Linux...


  • Speedener
  • Registratie: September 2000
  • Laatst online: 31-08 08:11
Op zaterdag 27 juli 2002 11:44 schreef TheMrH het volgende:
ipv
PHP:
1
<?$item = $_GET['item'];if(!isset($item))    $item = "home";?>


PHP:
1
<?$item = "home";if (isset($_GET['item'])    $item = $_GET['item'];?>
je bent een engel :* :P
Pagina: 1