Avatar billede shm1976 Nybegynder
06. maj 2003 - 07:41 Der er 11 kommentarer og
1 løsning

Problemer med værdi af variabel

Jeg har problemer med at få uskrevet det rigtige måned navn. Det er ikke noget problem så længe at der ikke er bliver sendt et månednummer med i url'en. Problemet opstår først hvis der kommer et måned nummer med.

Den gør det rigtigt i den første linje, hvor maaned($mnd_nr) kaldes, men værdien af maaned($mnd_nr+1) og maaned($mnd_nr+2) bliver den den samme og ikke de to efterfølgende måneder, som forventet.

Nogen som har de vise sten ?

  if ( $HTTP_GET_VARS["mnd"]=="")
    {
        $mnd_nr=date("n");
    }
    else {
    $mnd_nr=$HTTP_GET_VARS["mnd"];
    }

  if ($login_session==TRUE)
  {
?>

<tr colspan="4"><td>&nbsp;</td></tr>
<tr>
<td align="center" width="150"><? echo maaned($mnd_nr); ?></td>
<td align="center" width="150"><? echo maaned($mnd_nr+1); ?></td>
<td align="center" width="150"><? echo maaned($mnd_nr+2); ?></td></tr>
Avatar billede sostack Nybegynder
06. maj 2003 - 07:43 #1
Prøv lige:
<td align="center" width="150"><? echo maaned($mnd_nr); ?></td>
<td align="center" width="150"><? echo maaned($mnd_nr += 1); ?></td>
<td align="center" width="150"><? echo maaned($mnd_nr += 2); ?></td></tr>

//sostack
Avatar billede a_eriksen Nybegynder
06. maj 2003 - 07:57 #2
Jeg har prøvet at klippe din code ind i et test script med echo() istedet for maaned() og det virker fint her.
Avatar billede shm1976 Nybegynder
06. maj 2003 - 07:59 #3
Jeg har en mistanke til at den opfatter $mnd_nr som en tekststreng når den bliver hentet som en parameter fra url'en - hvordan konverterer jeg den til en integer ?
Avatar billede a_eriksen Nybegynder
06. maj 2003 - 07:59 #4
Prøv at printe $mnd_nr ud før maaned() og se om den ret faktisk indeholder det du forventer.
Avatar billede a_eriksen Nybegynder
06. maj 2003 - 08:00 #5
Konverteringen skulle gerne ske implicit
Avatar billede shm1976 Nybegynder
06. maj 2003 - 08:04 #6
Jeg ændrede linjen til følgende

<? echo $mnd_nr+1; echo maaned($mnd_nr+1); ?>

og resultatet blev

7Juni  - så den evaluerer det første udtryk rigtigt, men ikke det i funktionen..... evt. bliver jeg nødt at lave en hjælpevariabel....
Avatar billede shm1976 Nybegynder
06. maj 2003 - 08:09 #7
det mærkelige er jo at den kun gør det forkert i det øjeblik når $mnd_nr bliver hentet som en parameter fra url'en. Hvis den selv sætter $mnd_nr til nuværende datos måned, så virker det fint.
Avatar billede shm1976 Nybegynder
06. maj 2003 - 08:15 #8
Så fandt jeg forklaringen.....  $mnd, som bliver sendt via url'en havde samme navn som den variable jeg bruger i min case-sætning som bliver kaldt af funktionen maaned() - tak for hjælpen....
Avatar billede a_eriksen Nybegynder
06. maj 2003 - 08:15 #9
Underligt, check om det ikke skyldes et sammenfald i variabelnavne eller at du bruger variablen $mnd i din maaned() funktion på en gammel php version.
Avatar billede a_eriksen Nybegynder
06. maj 2003 - 08:15 #10
Hehe... Godt gættet hva?
Avatar billede shm1976 Nybegynder
06. maj 2003 - 08:18 #11
ja - meget imponerende...
Avatar billede a_eriksen Nybegynder
06. maj 2003 - 08:33 #12
Det er iøvrigt derfor man skal lade være med at bruge den gamle metode til GET variable da man med lidt snilde kan overskrive de "rigtige" variable i coden om måske omgå sikkerhedcheck.
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