Avatar billede limes_planum Praktikant
06. oktober 2007 - 13:16 Der er 15 kommentarer og
1 løsning

Opret flere var i en session (v start) og undervejs i en session?

Når jeg starter ud med:

<?ob_start();
session_start();?>
...
<?
...
$_SESSION[$ci_sess] = 19988;
$_SESSION[$br_sess] = $r[3]*78109; // (hvor $r[3] er taget fra noget MySQL)
...
?>

- i et php-dok og senere viderenavigerer til et andet php-dok (med <?session_start();?> i toppen) kan jeg kun læse en af variablerne. Hvad skal der til for at læse dem begge, hvis man kan? - og kan jeg ved videre-navigation til et helt tredje dok oprette en 3. var under samme objekt?
Avatar billede erikjacobsen Ekspert
06. oktober 2007 - 13:29 #1
Hvis $br_sess og $ci_sess indholder forskellige værdier, så har du to sessions-variabler. Hvor kommer $br_sess og $ci_sess fra ?
Avatar billede showsource Seniormester
06. oktober 2007 - 13:33 #2
Der burde ikke være noget problem i at lave/læse flere  forskellige sessions.

Du kan prøve med
print_r($_SESSION);
for at se hvad session indeholder.

Et problem kan dog være, ( hvis serveren kører med register_globals On ), at du bruger et navn til en session, som også er defineret som f.eks. en var,

$_SESSION[$noget] = "Et eller andet";

$noget = "Noget helt andet";
Avatar billede limes_planum Praktikant
06. oktober 2007 - 16:47 #3
I henhold til de to sidste linjer i Showsource's kommentar kan jeg se hvad du mener erikjacobsen - ellers ikke... da det er så simpelt at de to session-værdier kun bliver tildelt deres to integerværdier (hvilket gør at det ik ka ha noet med globals_on at gøre).

Når jeg echoer de to sessionværdier ud (og desuden sletter den $r[]-værdi)...

$_SESSION[$ci_sess] = 19988;
$_SESSION[$br_sess] = 78109;

- får jeg dette:

78109
78109

Ved brug af 'print_r($_SESSION);' :

<?
session_start();
print_r($_SESSION);
?> // øverst i dok 2

- får jeg dette:

Array ( [] => 78109 )
Avatar billede erikjacobsen Ekspert
06. oktober 2007 - 16:53 #4
Men forklar: Hvor kommer $br_sess og $ci_sess fra ?

Det er variabler som tilsyneladende ikke indeholder noget.
Avatar billede erikjacobsen Ekspert
06. oktober 2007 - 16:54 #5
Og hvis de ikke indeholder noget, svarer dine to linier

$_SESSION[$ci_sess] = 19988;
$_SESSION[$br_sess] = 78109;

stort set til

$_SESSION[""] = 19988;
$_SESSION[""] = 78109;
Avatar billede limes_planum Praktikant
06. oktober 2007 - 18:01 #6
Klart - er langt tid siden jeg har brugt sessions, men sku altså bruge det nu - der gik lidt unødvendig dobbelt-$ i den.

Flg.:

$_SESSION[ci_sess] = 19988;
$_SESSION[br_sess] = 78109;

- virker, så læg et svar e.j. :-)
Avatar billede olebole Juniormester
06. oktober 2007 - 18:06 #7
<ole>

Brug altid gåseøjne i array-kald, der ikke i forvejen er escaped - uagtet, det også virker uden:

$_SESSION["ci_sess"] = 19988;
$_SESSION["br_sess"] = 78109;

/mvh
</bole>
Avatar billede showsource Seniormester
06. oktober 2007 - 18:28 #8
mjahh, men hvis de er sat med define() skal der jo ikke bruges gåseøjne ;I(

Men det er jo meget lidt vi ved om hvad og hvordan ............
Avatar billede showsource Seniormester
06. oktober 2007 - 18:28 #9
$$
Avatar billede limes_planum Praktikant
06. oktober 2007 - 19:12 #10
Gruble - gruble... 'Hvorfor gøre det sværere end det er?' - Hvis du havde fanget at jeg bare skulle have overført to simple variabler og ikke den array-opbygning som jeg fejlagtigt startede ud med, havde din første kommentar hjulpet mig noget bedre Showsource.
Men ok det skal ikke handle reaktionstid det hele, så hvis du gerne vil ha 30 af pointene kan du også lægge et svar Showsource :-)

Har desuden prøvet med dette i modtager-dok'et:
echo"&_SESSION[ci_sess] = $_SESSION["$ci_sess"]<br>";
echo"&_SESSION[br_sess] = $_SESSION["$br_sess"]<br>";
- der fejlmeddeler.. og derefter:
echo"&_SESSION[ci_sess] = $_SESSION[\"$ci_sess\"]<br>";
echo"&_SESSION[br_sess] = $_SESSION[\"$br_sess\"]<br>";
- der også fejler.... :-S
Avatar billede limes_planum Praktikant
06. oktober 2007 - 19:13 #11
Undskyld:

[[ Har desuden prøvet med dette i modtager-dok'et:
echo"&_SESSION[ci_sess] = $_SESSION["ci_sess"]<br>";
echo"&_SESSION[br_sess] = $_SESSION["br_sess"]<br>";
- der fejlmeddeler.. og derefter:
echo"&_SESSION[ci_sess] = $_SESSION[\"ci_sess\"]<br>";
echo"&_SESSION[br_sess] = $_SESSION[\"br_sess\"]<br>";
- der også fejler.... :-S ]]

- selvfølgelig
Avatar billede erikjacobsen Ekspert
06. oktober 2007 - 19:18 #12
echo "\$_SESSION[ci_sess] = ".$_SESSION["ci_sess"]."<br>";
echo "\$_SESSION[br_sess] = ".$_SESSION["br_sess"]."<br>";
Avatar billede limes_planum Praktikant
06. oktober 2007 - 20:18 #13
okey-dokey - men var der nogen der sku ha point så?
Avatar billede erikjacobsen Ekspert
06. oktober 2007 - 20:18 #14
Ikke til mig, tak.
Avatar billede showsource Seniormester
07. oktober 2007 - 08:09 #15
heller ikke mig, tak
Avatar billede limes_planum Praktikant
07. oktober 2007 - 10:46 #16
Ok - lukker
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