/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
sessions og header()
Fra : Kim Emax


Dato : 07-01-05 18:13

Hey

Jeg har et problem, som jeg ikke lige kan se, hvordan jeg omgåes. Måske
har andre oplevet det samme og lavet en workaround?

Jeg åbner et link i et nyt vindue, her skal tjekkes om man har
rettigheder, men har jeg en session_start() først i scriptet, så udføres
header() ikke korrekt:

<?
session_start();
if($_SESSION['level'] >= 10) {
header("Content-Type: application/pdf");
// osv
}
?>

fjerner jeg session_start() så spiller det. What to do?

mvh
Kim Emax

 
 
Morten Toft (07-01-2005)
Kommentar
Fra : Morten Toft


Dato : 07-01-05 18:43

Har haft selv samme oplevelse. Også med andre content-types end
application/pdf. Synes efterhånden jeg er stødt på det hver eneste gang min
content-type har været noget andet end alm. html

Har tæsket nok samtlige PHP versioner i 4 rækken igennem, men alle med samme
resultat. Men ikke destomindre har jeg lavet et par workarounds, for at
bibeholde en evt. login-beskyttelse.

Når jeg kalder et script smider jeg en krypteringsnøgle med, som hentes fra
en include, som jeg anvender i begge filer: både hvor linket kommer fra +
pdf'en. Fx anvender jeg en md5(streng som skifter hver time), og tjekker på
om den kaldte nøgle evt. skulle matche den fra timen før, nuværende time
eller næste time, i tilfælde af at man ikke lige ramme præcist klokkeslæt,
hvis siden nu har været åbnet et længere stykke tid.

Men hvorfor, en i h........ at det ikke virker med en session_start (),
bliver jeg desværre et svar skyldigt på. Rammer du den selv, så må du meget
gerne smide den i gruppen

Mvh.
Morten


"Kim Emax" <newsgroups@emax.dk> wrote in message
news:iqzDd.80862$Vf.3688355@news000.worldonline.dk...
> Hey
>
> Jeg har et problem, som jeg ikke lige kan se, hvordan jeg omgåes. Måske
> har andre oplevet det samme og lavet en workaround?
>
> Jeg åbner et link i et nyt vindue, her skal tjekkes om man har
> rettigheder, men har jeg en session_start() først i scriptet, så udføres
> header() ikke korrekt:
>
> <?
> session_start();
> if($_SESSION['level'] >= 10) {
> header("Content-Type: application/pdf");
> // osv
> }
> ?>
>
> fjerner jeg session_start() så spiller det. What to do?
>
> mvh
> Kim Emax



Kim Emax (08-01-2005)
Kommentar
Fra : Kim Emax


Dato : 08-01-05 14:38

Morten Toft wrote:

> Har tæsket nok samtlige PHP versioner i 4 rækken igennem, men alle med samme
> resultat. Men ikke destomindre har jeg lavet et par workarounds, for at
> bibeholde en evt. login-beskyttelse.

Det er det samme jeg ønsker

> Når jeg kalder et script smider jeg en krypteringsnøgle med, som hentes fra
> en include, som jeg anvender i begge filer: både hvor linket kommer fra +
> pdf'en. Fx anvender jeg en md5(streng som skifter hver time), og tjekker på
> om den kaldte nøgle evt. skulle matche den fra timen før, nuværende time
> eller næste time, i tilfælde af at man ikke lige ramme præcist klokkeslæt,
> hvis siden nu har været åbnet et længere stykke tid.

Sjovt, det er samme tanke jeg har siddet med. Hver bruger kan kun hente
filen en gang, så min tanke var at lave en md5 checksum, hvor brugernavn
eller id også indgår, så jeg sikrer at man ikke kan tilgå siden igen
senere eller angive et andet brugernavn/id.

> Men hvorfor, en i h........ at det ikke virker med en session_start (),
> bliver jeg desværre et svar skyldigt på. Rammer du den selv, så må du meget
> gerne smide den i gruppen

Tjaee, man er vel ude i at spørge på den officielle PHP mailliste. Den
har jeg dog ikke været på siden ´99. Er du på den? Ellers kunne jeg jo
lige oprette mig for en kort bemærkning.

mvh
Kim Emax

Kim Emax (28-01-2005)
Kommentar
Fra : Kim Emax


Dato : 28-01-05 07:19

On the 07-01-2005 18:42 Morten Toft wrote:

> Men hvorfor, en i h........ at det ikke virker med en session_start (),
> bliver jeg desværre et svar skyldigt på. Rammer du den selv, så må du meget
> gerne smide den i gruppen

Mens jeg ledte efter løsningen på et helt andet problem, så fandt jeg
sgu løsningen på dette...

<?
session_cache_limiter("must-revalidate");
session_start();
// så spiller klaveret...
header(<whatever>);

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
Konsulentbistand, programmering, design & hosting.
http://www.masterminds.dk

Tommy Ipsen (08-01-2005)
Kommentar
Fra : Tommy Ipsen


Dato : 08-01-05 21:52

Kim Emax wrote:

> Jeg har et problem, som jeg ikke lige kan se, hvordan jeg omgåes. Måske
> har andre oplevet det samme og lavet en workaround?
>
> Jeg åbner et link i et nyt vindue, her skal tjekkes om man har
> rettigheder, men har jeg en session_start() først i scriptet, så udføres
> header() ikke korrekt:
>
> <?
> session_start();
> if($_SESSION['level'] >= 10) {
> header("Content-Type: application/pdf");
> // osv
> }
> ?>
>
> fjerner jeg session_start() så spiller det. What to do?

Hvilke fejl får du - eller hvilke problemer giver det?

Har du testet i flere browsere - dvs. det skyldes ikke noget
IE-specifikt - jeg har selv haft mange problemer med den browsere og
caching af headere!

Mvh Tommy

Anders (15-01-2005)
Kommentar
Fra : Anders


Dato : 15-01-05 11:58

Kim Emax wrote:
> Hey
>
> Jeg har et problem, som jeg ikke lige kan se, hvordan jeg omgåes. Måske
> har andre oplevet det samme og lavet en workaround?
>
> Jeg åbner et link i et nyt vindue, her skal tjekkes om man har
> rettigheder, men har jeg en session_start() først i scriptet, så udføres
> header() ikke korrekt:
>
> <?
> session_start();
> if($_SESSION['level'] >= 10) {
> header("Content-Type: application/pdf");
> // osv
> }
> ?>
>
> fjerner jeg session_start() så spiller det. What to do?
>
> mvh
> Kim Emax
Jeg har haft et tilsvarende problem. Via nettet fandt jeg ud af, at hvis
header delen SKAL stå før noget af det andet. Hvis det ikke er muligt,
så kig på nedenstående, det virkede for mig. Der er OB_START() og
OB_END_FLUSH() der er interessante.

<?
ob_start();
if ($usr == "a" and $pass == "b"){
header("Location: gb/index.php");
session_start();
$_SESSION["real"]= "1";   
exit;
} else {
echo "<center><h3>Kender dig ikke</h3></center>";
require ('index.php');
exit;
}
Ob_end_flush();   
?>

Anders (15-01-2005)
Kommentar
Fra : Anders


Dato : 15-01-05 12:04

Kim Emax wrote:
> Hey
>
> Jeg har et problem, som jeg ikke lige kan se, hvordan jeg omgåes. Måske
> har andre oplevet det samme og lavet en workaround?
>
> Jeg åbner et link i et nyt vindue, her skal tjekkes om man har
> rettigheder, men har jeg en session_start() først i scriptet, så udføres
> header() ikke korrekt:
>
> <?
> session_start();
> if($_SESSION['level'] >= 10) {
> header("Content-Type: application/pdf");
> // osv
> }
> ?>
>
> fjerner jeg session_start() så spiller det. What to do?
>
> mvh
> Kim Emax
Glemte at skrive, at du kan læse lidt mere om det her!
http://webmaster.hephey.dk/guide/40/

Kim Emax (15-01-2005)
Kommentar
Fra : Kim Emax


Dato : 15-01-05 23:49

Anders wrote:

> Glemte at skrive, at du kan læse lidt mere om det her!
> http://webmaster.hephey.dk/guide/40/

Super, det kigger jeg på...tak

--
Take Care
Kim Emax - master|minds - Vi tænker IT for dig...
Konsulentbistand, programmering, design & hosting.
http://www.masterminds.dk

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste