Jump to content
Sign in to follow this  
arnizzz

unngå feilmelding for udefinert $_GET['test']

Recommended Posts

Hei.

 

Jeg er som dere sikkert skjønner en PHP-nybegynner, og jeg har derfor kommet over et irriterende problem.

 

la oss si at fila heter index.php

skriver jeg inn index.php?test=noeher i adresselinjen fungerer det fint.

men om jeg bare skriver index.php og prøver å ha en standardverdi så får jeg bare denne feilmeldingen:

Notice: Undefined index: test in c:\programfiler\php\www\test\index.php on line 3

standard

 


<?

if(!$_GET['test'])
$test = "standard"; 
else
$test = $_GET['test'];

echo $test; 

?>

 

Noen som gidder å hjelpe meg?

 

takk

Share this post


Link to post

Det skyled at du i php.ini filen har skrudd på error reporting også på notice. Du kan enten skru den av der, eller så må du legge til f.eks. i alle scriptene dine: error_reporting(E_ALL ^ E_NOTICE);

 

De fleste webhoteller har ikke error reporting på notice så det er best å skru den av i php.ini.

Share this post


Link to post

Takk.

 

Jeg gjorde det på denne måten og da funket det.

 

<?
extract($_GET);

   if(isset($test)) 
$navn = $test;
else
$navn ="standarn";

echo $navn; 

?>

Share this post


Link to post

Det er å gjøre det unødvendig tungvindt. Gjør heller som ??????, og skriv følgende i toppen av alle filer/scripts:

 

error_reporting(E_ALL ^ E_NOTICE);

Share this post


Link to post

1.

Det er god praksis å skru av all error_reporting på puliserte sider. Slik unngår du å offentligjoere directory strukturen på serveren din.

 

2.

Det er også god praksis å skrive feilfri kode. Kvitt deg med alle feil - også 'notice' meldinger. Jeg syntes det er behjelpelig å skru på full error_reporting mens skriptet er under utvikling, og deretter skru av error_reporting fullstendig etter publisering.

 

3.

Foelgende kode vil forhindre problemet i alle tilfeller (uten bruk av error_reporting funksjonen eller extract funksjonen)

<?php

   $test = 'standard';    // default value

   if( !empty($_GET['test']) ) {
       $test = $_GET['test'];
   }

   echo $test;

?>

Edited by sprintf

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...