/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
PHP4
Fra : Christian P


Dato : 25-06-01 09:57

Jeg har installeret php4 på min webserver hvor jeg normalt kørte php3

Er der nogen der kan forklare mig hvorfor dette ikke virker mere, og hvordan
jeg kan undgå fejlen (OBS det skal lige siges at $navn ikke har nogen
værdi):
<?
if ($navn == "Thomas")
{ echo"Thomas"; }
elseif ($navn == "Knud")
{ echo"Knud"; }
else
{ echo"Intet Navn"; }
?>
den kommer med denne fejl:
Warning: Undefined variable: navn in D:\webs\www.wegeliustv.com\test.php on
line 10

Ellers fungerer scriptet fint nok...

Mvh Christian




 
 
Johan (25-06-2001)
Kommentar
Fra : Johan


Dato : 25-06-01 10:00

> Er der nogen der kan forklare mig hvorfor dette ikke virker mere, og
hvordan
> jeg kan undgå fejlen (OBS det skal lige siges at $navn ikke har nogen
> værdi):
> <?
> if ($navn == "Thomas")
> { echo"Thomas"; }
> elseif ($navn == "Knud")
> { echo"Knud"; }
> else
> { echo"Intet Navn"; }
> ?>
> den kommer med denne fejl:
> Warning: Undefined variable: navn in D:\webs\www.wegeliustv.com\test.php
on
> line 10

Sæt en
if(isset($navn)) {
/* den kode du har skrevet */
}
else {
echo "Intet navn";
}

mvh

Johan



Christian P (25-06-2001)
Kommentar
Fra : Christian P


Dato : 25-06-01 10:02

OBS de linjer den brokker sig over er disse:
if ($navn == "Thomas")
og
elseif ($navn == "Knud")





Niels Andersen (25-06-2001)
Kommentar
Fra : Niels Andersen


Dato : 25-06-01 10:08

"Christian P" <grafix@image.dk> wrote in message
news:9h6ucj$e11$1@news.inet.tele.dk...

> den kommer med denne fejl:
> Warning: Undefined variable: navn in D:\webs\www.wegeliustv.com\test.php
on
> line 10

Der er forskel på "Error" og "Warning". Grunden til at du får advarslen nu,
men ikke gjorde før, er, at før blev den blot ignoreret. Det er noget du kan
ændre i opsætningen.
Personligt synes jeg det er godt at få disse advarsler på en
udviklingsmaskine og en testmaskine, men ikke på en produktionsmaskine.

> (OBS det skal lige siges at $navn ikke har nogen
> værdi):

Det er her kæden knækker. Du kan fx. gøre sådan:

<?
if (isset($navn) {
if ($navn == "Thomas") {
echo "Thomas";
} elseif ($navn == "Knud") {
echo "Knud";
}
} else {
echo "Intet navn";
}
?>

Eller måske starte med:
if (!isset($navn) {
$navn = '';
}

--
Mvh.

Niels Andersen



Christian P (25-06-2001)
Kommentar
Fra : Christian P


Dato : 25-06-01 12:02

Okay - det vil sige at det ikke ligger i forskellen på php3 og php4
Men simpelt hen er fordi jeg har programmeret forkert?

Mvh Christian



"Niels Andersen" <niels-usenet@myplace.dk> skrev i en meddelelse
news:DcDZ6.2051$lf5.392277@news010.worldonline.dk...
> "Christian P" <grafix@image.dk> wrote in message
> news:9h6ucj$e11$1@news.inet.tele.dk...
>
> > den kommer med denne fejl:
> > Warning: Undefined variable: navn in D:\webs\www.wegeliustv.com\test.php
> on
> > line 10
>
> Der er forskel på "Error" og "Warning". Grunden til at du får advarslen
nu,
> men ikke gjorde før, er, at før blev den blot ignoreret. Det er noget du
kan
> ændre i opsætningen.
> Personligt synes jeg det er godt at få disse advarsler på en
> udviklingsmaskine og en testmaskine, men ikke på en produktionsmaskine.
>
> > (OBS det skal lige siges at $navn ikke har nogen
> > værdi):
>
> Det er her kæden knækker. Du kan fx. gøre sådan:
>
> <?
> if (isset($navn) {
> if ($navn == "Thomas") {
> echo "Thomas";
> } elseif ($navn == "Knud") {
> echo "Knud";
> }
> } else {
> echo "Intet navn";
> }
> ?>
>
> Eller måske starte med:
> if (!isset($navn) {
> $navn = '';
> }
>
> --
> Mvh.
>
> Niels Andersen
>
>



Stefan Bruhn (25-06-2001)
Kommentar
Fra : Stefan Bruhn


Dato : 25-06-01 12:09

On Mon, 25 Jun 2001 13:02:27 +0200, "Christian P" <grafix@image.dk>
wrote:

>Okay - det vil sige at det ikke ligger i forskellen på php3 og php4
>Men simpelt hen er fordi jeg har programmeret forkert?

Nej.
Det vil sige det kommer an på niveauet af advarsler sat i php.ini
Der er intet galt i det du gør men det KAN gå galt hvis man ikke tænker
sig om. Derfor advarer den.

Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>

Christian P (25-06-2001)
Kommentar
Fra : Christian P


Dato : 25-06-01 12:23

OK - tak for hjælpen

Men det er vel bedst at lave PHP så den slet ikke kommer med nogle
advarsler?
eller skal det bare ses som en kommentar til min PHP kode?

Mvh Christian

"Stefan Bruhn" <news003@3x7.dk> skrev i en meddelelse
news:0u6ejt4cdk8fft52jk2j2s7qvn3r9o02gv@ghashul.dk...
> On Mon, 25 Jun 2001 13:02:27 +0200, "Christian P" <grafix@image.dk>
> wrote:
>
> >Okay - det vil sige at det ikke ligger i forskellen på php3 og php4
> >Men simpelt hen er fordi jeg har programmeret forkert?
>
> Nej.
> Det vil sige det kommer an på niveauet af advarsler sat i php.ini
> Der er intet galt i det du gør men det KAN gå galt hvis man ikke tænker
> sig om. Derfor advarer den.
>
> Mvh. / Regards Stefan Bruhn
> --
> <?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
> ;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
> ;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
> for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>



Stefan Bruhn (25-06-2001)
Kommentar
Fra : Stefan Bruhn


Dato : 25-06-01 12:26

On Mon, 25 Jun 2001 13:22:49 +0200, "Christian P" <grafix@image.dk>
wrote:

>Men det er vel bedst at lave PHP så den slet ikke kommer med nogle
>advarsler?
>eller skal det bare ses som en kommentar til min PHP kode?

På din testserver kan det muligvis være rart med et højt niveau af
advarsler.
På serveren hvor folk skal se siden er det at foretrække at den holder
sin kæft ;)

Mvh. / Regards Stefan Bruhn
--
<?$email = unserialize("a:15:{i:0;i:115;i:1;i:116;i:2;i:101;i:3;i:102
;i:4;i:97;i:5;i:110;i:6;i:64;i:7;i:98;i:8;i:114;i:9;i:117;i:10;i:104
;i:11;i:110;i:12;i:46;i:13;i:116;i:14;i:111;}");
for ($i=0;$i<=15;$i++) {echo chr($email[$i]);}?>

Nezar Nielsen (25-06-2001)
Kommentar
Fra : Nezar Nielsen


Dato : 25-06-01 18:18

"Stefan Bruhn" <news003@3x7.dk> wrote in message
news:8t7ejtgplfvkvrags7a6crn4j09fef8mc1@ghashul.dk...
>
> På din testserver kan det muligvis være rart med et højt niveau af
> advarsler.
> På serveren hvor folk skal se siden er det at foretrække at den holder
> sin kæft ;)

Hvis man har et højt niveau af advarsler, opfordrer det til at skrive
"renere" kode, så det vil jeg da ikke synes man skal slå fra på sin
offentlige server, i stedet bør man bare skrive god kode :)

--
Mvh. Nezar Nielsen
http://fez.dk/




Mickey (25-06-2001)
Kommentar
Fra : Mickey


Dato : 25-06-01 18:21

"Nezar Nielsen" <tumpen@fez.dk> skrev:

> Hvis man har et højt niveau af advarsler, opfordrer det til at skrive
> "renere" kode, så det vil jeg da ikke synes man skal slå fra på sin
> offentlige server, i stedet bør man bare skrive god kode :)

jeg ved ik så meget om hvad haxorer bruger, men jeg har hørt at
fejlmeddelelser kan vise uheldige oplysninger frem - f.eks. kan den vise SQL
password og lign... (er det ik rigtig ?)


--
|-|$235-|)k - Mickey
Ekstra Bladet om humor:
"Det havde Jesus. (Forvandler man vand til vin, så har man humor)."
http://ekstrabladet.dk/VisArtikel.iasp?PageID=129465



Jonas Delfs (25-06-2001)
Kommentar
Fra : Jonas Delfs


Dato : 25-06-01 18:32

"Mickey" <news002@susie.dk> skrev i en meddelelse
news:9h7s0d$kfj$1@egon.worldonline.dk...

> jeg ved ik så meget om hvad haxorer bruger, men jeg har hørt at
> fejlmeddelelser kan vise uheldige oplysninger frem - f.eks. kan den vise
SQL
> password og lign... (er det ik rigtig ?)

Det tror jeg sq næppe.
Hvorfor skulle PHP dog vise det? -hvis en conntion til en database fejler,
skriver den bare en fejlmeddelelse om det og om der blev brugt password
eller ej...

--
Mvh. Jonas Delfs, http://delfs.dk
e72bd3e51a7937c87d28b85d677a97b2



Mickey (25-06-2001)
Kommentar
Fra : Mickey


Dato : 25-06-01 18:56

"Jonas Delfs" <jonas@nospam.delfs.dk> skrev:

> > password og lign... (er det ik rigtig ?)
>
> Det tror jeg sq næppe.
> Hvorfor skulle PHP dog vise det? -hvis en conntion til en database fejler,
> skriver den bare en fejlmeddelelse om det og om der blev brugt password
> eller ej...

hmmm, har heller aldrig set andet end filstier i fejlmeddelelserne, men det
var bare hvad jeg læste et eller andet sted...


--
|-|$235-|)k - Mickey
Ekstra Bladet om humor:
"Det havde Jesus. (Forvandler man vand til vin, så har man humor)."
http://ekstrabladet.dk/VisArtikel.iasp?PageID=129465



Niels Andersen (25-06-2001)
Kommentar
Fra : Niels Andersen


Dato : 25-06-01 17:06

"Christian P" <grafix@image.dk> wrote in message
news:9h75nc$fik$1@news.inet.tele.dk...
> Okay - det vil sige at det ikke ligger i forskellen på php3 og php4
> Men simpelt hen er fordi jeg har programmeret forkert?

Heller ikke... :)
Forskellen ligger i opsætningen.

Jeg vil anbefale at rette i din kode, i stedet for at ændre opsætningen. Jeg
er vist helt enig med Stefan, som vil have advarsler og hele molevitten på
udviklingsmaskiner og testmaskiner, men ikke på produktionsmaskiner.

--
Mvh.

Niels Andersen



Anders Johannsen (25-06-2001)
Kommentar
Fra : Anders Johannsen


Dato : 25-06-01 10:10

In article <9h6ucj$e11$1@news.inet.tele.dk>, "Christian P"
<grafix@image.dk> wrote:

> <?
> if ($navn == "Thomas")
> { echo"Thomas"; }
> elseif ($navn == "Knud")
> { echo"Knud"; }
> else
> { echo"Intet Navn"; }
> ?>

if (empty($navn))
   echo "Intet navn"
else if ($navn == "Thomas")
   echo "Thomas"
else if ($navn == "Knud")
   echo "Knud"

Omend det ikke virker helt optimalt at hardcode navne på den måde

/A
--
Nu med transport til Midtfynsfestival -- www.midtfyn.com

Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408952
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste