Avatar billede atheist Nybegynder
17. juli 2004 - 14:02 Der er 7 kommentarer og
1 løsning

problemer med tomme variabler i apache

Jeg har fået installeret apache, men der er opstået et mindre problem:
På min alm servr (hos b-one) har serveren ingen problemer med tomme variable. Så en sætning som

if ($month !="")

giver ingen problemer, den returnerer bare true hvis der er noget i $var og false hvis der ikke er noget, men når jeg prøver samme trick med apache:

Notice: Undefined index: month in c:\documents and settings\gregers\dokumenter\internet\gregersboye\kalender.php on line 44

Det er vel noget opsætning jeg skal pille i, men hvor?
Avatar billede erikjacobsen Ekspert
17. juli 2004 - 14:11 #1
Du skal ikke pille ved noget, men gøre det rigtigt:

$month=$_GET['month'];

eller $_POST hvis du bruger method="post". Så vil det altid virke.
Og det er ikke Apache, men PHP, der har dette "problem" ;)
Avatar billede atheist Nybegynder
17. juli 2004 - 14:41 #2
ja, ok, jeg varl ige lidt for hurtig, mit eksempel skulle have været:
$month = $_REQUEST["month"];
if ($month!="")
osv...

problemet er nemlig jeg har formular og behandling på samme side, så hvis $month=="" skal formularen vises, og hvis ikke skal data behandles... Det virker fint på www.gregersboye.dk/kalender.php... men ikke når jeg kører den samme side på serveren på min egen computer..
Avatar billede erikjacobsen Ekspert
17. juli 2004 - 15:08 #3
Med mindre din PHP er fra stenalderen sadan ca. så skal det virke. Kunne
det tænkes fejlen opstod et andet sted?
Avatar billede Slettet bruger
18. juli 2004 - 00:45 #4
PHP kommer ganske rigtigt med den notice, hvis man forsøger at bruge et udefineret element i et array. (Hvis den altså er sat til ikke at ignorere notices.) Løsningen er at bruge isset() således:

$month = isset($_REQUEST["month"]) ? $_REQUEST["month"] : '';

Man kan også gøre det på denne måde:

if ( isset($_REQUEST["month"]) ) {
  $month=$_REQUEST["month"];
} else {
  $month='';
}

De to eksempler gør nøjagtig det samme.
Avatar billede atheist Nybegynder
18. juli 2004 - 11:25 #5
jeg tror næsten det er nemmere at pille i opsætningen til apache, end at ændre alle de sider jeg har lavet hvor jeg laver det nummer, hvordan sætter jeg apache/php rigtigt op`? Jeg bruger jo min egen computer til at teste siderne inden de kommer online, så jeg skulle gerne have opsætningen til at matche b-one's mest muligt...
Avatar billede Slettet bruger
18. juli 2004 - 11:40 #6
Det er ellers en meget god ide at få de notices på en udviklingsmaskine. De letter fejlsøgning ganske meget.

Og det er staig ikke Apache, der gør det, men php.
Avatar billede atheist Nybegynder
18. juli 2004 - 11:52 #7
ok, jeg prøver at oprette et spm i php-delen
*Lukker*
Avatar billede atheist Nybegynder
18. juli 2004 - 11:59 #8
spørgsmålet er flyttet til:
http://www.eksperten.dk/spm/520841

-Atheist
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
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

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