Avatar billede tlunde Nybegynder
16. november 2008 - 19:44 Der er 6 kommentarer og
1 løsning

Problem med mit billedgalleri

Hej alle
Jeg har et billedgalleri på min hjemmeside, hvor der er koblet noget flash på, så man man multi uploade billeder, i stedet for at gøre det et billede af gangen.

Problemet jeg har med det lige nu er, at jeg gemmer det nyoprettede galleri-id i en session, som fint nok befinder sig i flash-delen af upload af billeder, men lige så snart hvert billede rammer filen der resizer og gemmer i databasen, så er mit galleri-id væk fra den session jeg har gemt det i, og i stedet for at det nye galleri-id bliver gemt, så gemmes bare et 0, fordi session er tom. Og derfor bliver mine uploadede billeder ikke gemt under det nyoprettede galleri.

Lidt lang forklaring, men hvordan kan det være at min ene fil indeholder galleri-id korrekt i session, men lige så snart det sendes over til min anden fil, så er session tom?
Avatar billede showsource Seniormester
16. november 2008 - 20:49 #1
Måske fordi du har glemt session_start i fil som laver thumb, eller har en variabel som hedder det samme, på en server hvor register_globals er On ?

( med On )

session_start();

$_SESSION["noget"] = 10;

$noget = 30;

Nu er "noget" 30, også hvis du vil hente den med $_SESSION["noget"]
Avatar billede tlunde Nybegynder
16. november 2008 - 21:22 #2
Som det er nu, så har jeg en fil, der hedder fileupload.php, hvori jeg i toppen har dette kode:
<?
ob_start();
session_start();
if ($_REQUEST['album_id'] != "") {
    $_SESSION['ses_album_id'] = $_REQUEST['album_id'];
}
?>

og i bunden har jeg et link, hvori jeg bruger min session fra toppen:
<a href='java script: void(0);' onclick='opener.location = "index.php?action=album_billeder&album_id=<?echo $_SESSION['ses_album_id'];?>";self.close();'><b>Luk vinduet</b></a>

Dette fungere fint nok, session kommer med videre, det har jeg tjekket ved at sende session i en mail til mig selv.

Den næste fil jeg så har, er uploadscript.php, hvor jeg i toppen har:
ob_start();
session_start();

og længere nede i samme fil har jeg en sql sætning til at oprette det nye album:
$sql = "INSERT INTO albums_indhold (album_id, filnavn, dato_oprettet, sort) VALUES ('".$_SESSION['ses_album_id']."', '$filename', '".time()."', '$sort')";

Og det er så her hvor "album_id" bare bliver sat til 0 i databasen, og IKKE det galleri-id der skulle komme med over fra $_SESSION['ses_album_id']

-----------------------

I det jeg har fortalt her, der skulle der vel ikke være noget fejl, er der?
Avatar billede showsource Seniormester
16. november 2008 - 21:28 #3
Kan jeg ikke lige sige,
men du kan jo prøve en
echo (int)$_SESSION["ses_album_id"];
undervejs i scriptet, så får du måske en ide om hvor det går galt.

Evt.
VALUES (".(int)$_SESSION['ses_album_id'].",.................
Avatar billede tlunde Nybegynder
16. november 2008 - 21:32 #4
Jeg tror skam ikke det er fordi at min problem er så kompliceret, jeg kan bare ikke lige gennemskue det :-)

Men et eller andet sted, handler det jo bare om at jeg har en defineret session i en fil, som af en eller anden grund, bliver nulstillet lige så snart den kommer over til næste fil. Det er det problem jeg ikke kan gennemskue, hvad det er som der sker...
Avatar billede showsource Seniormester
16. november 2008 - 21:36 #5
Du kan jo evt. ogå prøve at søge på
$ses_album_id
i din editor.

Og b.t.w., hvorfor bruge ob_start() ?
Plejer ikke at være godt!
Avatar billede tlunde Nybegynder
17. november 2008 - 08:45 #6
Bliver nødt til at kigge det igennem og se hvordan det går galt. Men tak for hjælpen alligevel, smid et svar og du får lige nogle point...
Avatar billede showsource Seniormester
17. november 2008 - 10:43 #7
Nej det er fint nok, og jeg kom jo heller ikke med en løsning!
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