Avatar billede supa Nybegynder
15. februar 2006 - 11:26 Der er 12 kommentarer

Notice: Use of undefined constant

Jeg har lavet en side indeholdende php, men jeg får følgende fejl:

Notice: Use of undefined constant flash - assumed 'flash' in /var/www/m2i3d.dk/BB/plantegninga/index.php on line 12

Notice: Undefined index: flash in /var/www/m2i3d.dk/BB/plantegninga/index.php on line 12

Koden er som følger:
<?php
    $flash = "false";
    if($HTTP_GET_VARS[flash] == true){
        $flash = $HTTP_GET_VARS[flash];
    }
?>

linket lyder sig: index.php
Og ved yderligere klik index.php?flash=true

Hvordan løser jeg problemet.. Jeg har lavet det offline, og testet det, og der meldte den ingen problemer, men da jeg lagde den online begyndte den at give fejl..

For mig lyder det som om at den ikke kan lige $HTTP_GET_VARS[flash] .. Hvorfor..?
Avatar billede morhan Novice
15. februar 2006 - 11:30 #1
true og flash er begge strenge, så sæt ' eller " rundt om

if($HTTP_GET_VARS['flash'] == "true"){
        $flash = $HTTP_GET_VARS['flash'];
}

i moderne php benttes normalt $_GET i stedet for $HTTP_GET_VARS
Avatar billede supa Nybegynder
15. februar 2006 - 11:39 #2
Okay.. Det hjalp lidt.. Den første sætning er væk..

Nu klager den kun over:
Notice: Undefined index: flash in /var/www/m2i3d.dk/BB/plantegninga/index.php on line 12

Den Nye kode:
10 <?php
11    $flash = "false";
12    if($_GET["flash"] == "true"){
13        $flash = $_GET["flash"];
14    }
15 ?>

Hvad er der galt..?
Avatar billede michael_stim Ekspert
15. februar 2006 - 11:42 #3
10 <?php
11    $flash = "false";
12    if(isset($_GET["flash"]) && $_GET["flash"] == "true"){
13        $flash = $_GET["flash"];
14    }
15 ?>
prøv den
Avatar billede supa Nybegynder
15. februar 2006 - 11:51 #4
Notice: Undefined variable: isset in /var/www/m2i3d.dk/BB/plantegninga/index.php on line 12

Fatal error: Call to undefined function: () in /var/www/m2i3d.dk/BB/plantegninga/index.php on line 12

Kan det være at jeg bruger en ældre version af php..? I så fald hvordan finder jeg ud af det..? Jeg har nemlig prøvet mit kode af på et andet domæne, og der virker den helt fint som den skal..
Avatar billede michael_stim Ekspert
15. februar 2006 - 12:01 #5
phpinfo();
Skriv det i en phpfil.

Kører du lokalt?
Avatar billede michael_stim Ekspert
15. februar 2006 - 12:02 #6
Det gør du ikke kan jeg se på stien.
Avatar billede supa Nybegynder
15. februar 2006 - 12:11 #7
Jeg har fikset den.. Løsning:

<?php
$flash = "false";
if(isset($_GET["flash"])){
    if($_GET["flash"] == "true"){
        $flash = $_GET["flash"];
    }
}
?>

Post svar.. :)
Tak for hjælpen..
Avatar billede michael_stim Ekspert
15. februar 2006 - 12:14 #8
Hmmm...
if(isset($_GET["flash"]) && $_GET["flash"] == "true"){
og
if(isset($_GET["flash"])){
    if($_GET["flash"] == "true"){
Er fuldstændig ens???
Avatar billede supa Nybegynder
15. februar 2006 - 12:16 #9
Hehe.. Tildels ja..

Jeg tror den læser hele sætningen og finde en fejl før end at dem udfører den..
Så ved at først spørge om den eksistere og derefter benytte den, så virker det..

Så helt ens er de ikke, men tæt på..
Avatar billede morhan Novice
15. februar 2006 - 12:19 #10
jeg må erklære mig enig med michael. Du har ikke lavet en indtastningsfejl af en art i første forsøg?
Avatar billede supa Nybegynder
15. februar 2006 - 12:30 #11
Problemet er jo at den klager over at den ikke kan finde $_GET["flash"].

Der er 2 spørgsmål i if'en, som bliver besvaret samtidig..

Sp 1: Eksistere $_GET[flash] ..?
Sp 2: Er $_GET[flash] == "true" ..?

Svar 1: Nej..
Svar 2: Jeg forstår ikke..

Alternativt svar:
Svar 1: Ja..
Svar 2a: ja..
Svar 2b: nej..

Problemet opstår ved "Svar 2", hvor den ikke forstår hvad den bliver spurgt om..

Jeg kan godt se lige som I kan se at det burde være det sammen, men computerens logik fungere ikke som vores.. :(
Avatar billede michael_stim Ekspert
15. februar 2006 - 12:34 #12
Det fungerer som sådan at hvis $_GET parameteren er sat OG den er lig med noget, skal den udføre en kommando. Hvis den ikke er sat skal den bare hoppe videre, så er det ligemeget hvad der står efter &&. Det skla fungere, det gør det på alle mine applikationer ;o)

Ingen point til mig.
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