Avatar billede tingholm Mester
18. september 2009 - 15:02 Der er 15 kommentarer og
1 løsning

hvorfor bliver det et array?

Hej Eksperter

NEdenstående stump kode skulle gerne tilføje værdien af 'p' til $_session['pallets'] men af en eller anden grund begynder den at lave et array i stedet for at tilføje til String som det er min mening...

Nogen idéer til hvad jeg gør galt?

session_start();
if ($_GET['p'] != "") {
    $_SESSION['pallets'] .= " ".$_GET['p'];
}
echo "Ny: ".$_SESSION['pallets'];
Avatar billede michael_stim Ekspert
18. september 2009 - 15:08 #1
session_start();
if ($_GET['p'] != "") {
    $_SESSION['pallets'] = " ".$_GET['p'];
}
echo "Ny: ".$_SESSION['pallets'];
Avatar billede tingholm Mester
18. september 2009 - 15:14 #2
Fjerner jeg så ikke den tidligere værdi fra session ?? værdien p skal ikke erstatte, men tilføjes til session...
Avatar billede michael_stim Ekspert
18. september 2009 - 15:27 #3
OK på den måde. Så er der flere forskellige måder at lave det på:

session_start();
if ($_GET['p'] != "") {
    $_SESSION['pallets'] = $_SESSION['pallets']." ".$_GET['p'];
}
echo "Ny: ".$_SESSION['pallets'];
Avatar billede tingholm Mester
18. september 2009 - 15:34 #4
Er det du skriver ikke nøjagtig det samme som det jeg allerede gør??

Det går fint med de første to værdier jeg sætter på.
Når jeg sætter den 3. på så mener den at min gamle $_SESSION['pallets'] er et array, og sætter så værdien efter den...

Første værdi (1):
gl ses.:
ny ses.: 1

anden værdi (2):
gl ses.: 1
ny ses.: 1 2

tredie værdi (3):
gl ses.: Array
ny ses.: Array 3
Avatar billede michael_stim Ekspert
18. september 2009 - 15:38 #5
Nej, da session allered er en array, så tilføjer du en værdi til arrayen.

Kan vist også bare bruge

+=

men ikke

.=
Avatar billede tingholm Mester
18. september 2009 - 15:46 #6
jojo, men $_SESSION['pallets'] er vel ikke et array?? det er en plads i array $_SESSION, men $_SESSION['pallets'] skulle gerne være en string...
Avatar billede tingholm Mester
18. september 2009 - 15:48 #7
Den opfører sig i øvrigt på nøjagtig samme måde om jeg bruger :
$_SESSION['pallets'] .= " ".$_GET['p'];
eller:
$_SESSION['pallets'] += " ".$_GET['p'];

de første to værdier tilføjes fint, men det går galt ved den 3.
Avatar billede dkfire Nybegynder
18. september 2009 - 15:49 #8
Passer ikke helt michael_stim, man kan godt bruge .= på værdier til et element i et array.

Men tingholm jeg tror du bliver nød til at lave lidt mere debug.
Det kode som du viser er rigtig nok. Men der må være noget steder hvor du bruger din session element om ligger "array" ind.
Prøv at lave en print_r før og efter din if og evt de andre steder hvor session elementet bruges.
Avatar billede tingholm Mester
18. september 2009 - 15:52 #9
aha...

når jeg kommenterer dette ud, så spiller det...
$pallets = explode(" ", $_SESSION['pallets']);

hvad kan der være galt i den??
Avatar billede tingholm Mester
18. september 2009 - 15:53 #10
i øvrigt var det noget vrøvl at += gav samme resultat... den lagde tallene sammen i stedet for at skrive dem efter hinanden...
Avatar billede tingholm Mester
18. september 2009 - 15:58 #11
hmm... det lader til at den ikke kunne lide at min $paller hed det samme som feltet i SESSION... Den hedder nu $pal og det ser ud til at have løst problemet...
Avatar billede tingholm Mester
18. september 2009 - 15:59 #12
dkfire: smider du svar til points?? Det var dig der skrev det mest rigtige svar...
Avatar billede dkfire Nybegynder
18. september 2009 - 16:02 #13
Undersøg meget hurtigt om du har register_globals til on.
Det lyder som om det er sat til, og det vil virkelig påvirke din sikkerhed. 
Dernæst hvilken version bruger du ?

Jeg smider et svar, grib.....
Avatar billede tingholm Mester
18. september 2009 - 17:57 #14
Jeg aner ikke om register_globals er sat eller ej.
Siden ligger i et udviklingsmiljø lige nu og bliver flyttet inden den bliver sat i drift, så det kan ikke betale sig at grave ret meget i det endnu...
Tak for hjælpen
Avatar billede dkfire Nybegynder
18. september 2009 - 20:04 #15
Ville nu mene det er utrolig vigtigt at vide om register_globals er slået til på ens udviklingsmiljø. Du kommer jo til at rende ind i flere problemer end hvad godt er.

Dernæst, hvad godt er en udviklingsmiljø hvis det ikke ligner dit driftsmiljø på ligepræcis det punkt?
Avatar billede olebole Juniormester
19. september 2009 - 14:30 #16
<ole>

Du kan ikke bruge et udviklingsmiljø til noget, hvis det ikke er sat op på præcis samme måde, som det kommende driftmiljø

/mvh
</bole>
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