Avatar billede nyb Nybegynder
17. september 2003 - 20:36 Der er 8 kommentarer og
2 løsninger

Undefined variable

Får denne fejlmeddelelse:

Notice: Undefined variable: id in C:\Programmer\Apache Group\Apache2\htdocs\test\sider.php on line 2

De to første linier i sider.php ser sådan ud:

<?
  if (!$id){

Har lige installeret ny Apache 2.0.47 og php 4.3.3 på en Windows XP dåse. Kan nogen hjælpe?
Avatar billede TRoXa Novice
17. september 2003 - 20:43 #1
du skal ind i din php.ini fil og rette display_errors til off og evt sætte
Avatar billede rrm Nybegynder
17. september 2003 - 20:46 #2
Den fortæller dig at variablen ikke er blevet initialiseret før den bliver brugt. Prøv noget ligende $id = 0.
Avatar billede nyb Nybegynder
17. september 2003 - 20:58 #3
Hej!

Har prøvet at rette php.ini filen og så er fejlmeddelelsen væk.

Kan ikke læse rrm's svar. Jeg har flere fejl som måske kan have noget med et at gøre. Resten af siden sider.php er en liste over sider:

<?
  if (!$id){
    $url = "start.php";
    $header ="Forsiden";
  }

  elseif($id == 1){
    $url = "nyheder.php";
    $header ="Nyheder";
  }

  elseif($id == 2){
    $url = "team1.php";
    $header ="Om siderne";
  }

  elseif($id == 3){
    $url = "sponsors.php";
    $header ="Sponsors";

osv, men hvis jeg klikker på et link, f.eks http://localhost/test/index.php?id=110 får jeg ikke noget skift af siden i browseren men adressen står i adresselinien?
Avatar billede nomak Nybegynder
17. september 2003 - 21:00 #4
Ser ud for mig somom din register_globals er off

så du skal have fat i $_GET og $_POST variablerne nu


eksembel:

<?
  $id = $_GET[id];

  if (!$id){
    $url = "start.php";
    $header ="Forsiden";
  }

  elseif($id == 1){
    $url = "nyheder.php";
    $header ="Nyheder";
  }

  elseif($id == 2){
    $url = "team1.php";
    $header ="Om siderne";
  }

  elseif($id == 3){
    $url = "sponsors.php";
    $header ="Sponsors";
Avatar billede rrm Nybegynder
17. september 2003 - 21:01 #5
ok, du får meddelsen fordi variablen id ikke er definere, dette kan undgås ved at placere if(!isset($_GET["id"])) { $id = 0; } else { $id = $_GET["id"] } i toppen...
Avatar billede nyb Nybegynder
17. september 2003 - 21:05 #6
i toppen??
Avatar billede rrm Nybegynder
17. september 2003 - 21:08 #7
Du kan med fordel ændre scriptet til dette:

if(!isset($_GET["id"])) { $id = 0; } else { $id = $_GET["id"] }

  if($id == 1){
    $url = "nyheder.php";
    $header ="Nyheder";
  }

  elseif($id == 2){
    $url = "team1.php";
    $header ="Om siderne";
  }

  elseif($id == 3){
    $url = "sponsors.php";
    $header ="Sponsors";

  } else {

  $url = "start.php";
    $header ="Forsiden";

  }
Avatar billede nyb Nybegynder
17. september 2003 - 21:12 #8
register globals = On, er helt fint

Jeg må vel give troxa og nomak points??

Hvordan gør vi lige det?
Avatar billede nyb Nybegynder
17. september 2003 - 21:14 #9
Og rmm!!. For ændringen af scriptet!.
Tak for hjælpen allesammen!!
Avatar billede rrm Nybegynder
17. september 2003 - 21:16 #10
heh de var så lidt...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester