Gå til innhold

Php-login med session


Anbefalte innlegg

Hei!

 

Har et script som bruker session for å finne ut om bruker er innlogget. Det fungerer supert, foruten når jeg bruker web-forwarding. Har et domene (fra joker.com) som skal peke mot webserveren (ntnu) der hjemmesiden ligger. For å beholde domenet som adresse brukes det en 100% frame. Men når jeg skal logge inn via adminsiden virker ikke sessions. Noen som vet hvordan jeg kan løse dette problemet, evt. en annen måte å finne ut om en bruker er innlogget?

Lenke til kommentar
Videoannonse
Annonse

når du bruker php script i frames tror jeg ikke klienten mottar headers fra php. dette gjør i så fall at klienten ikke mottar session id. i stedet for frames lag heller en side som følger:

 

<?php

$url ='http://oya.ntnu.no/'; // må være en fulstendig url

header( 'Location: '.$url );

?>

 

edit: hvis det er viktig for deg å beholde domenenavnet synlig i adressefeltet kan du gjøre noe likende:

 

<?php

$url ='http://oya.ntnu.no/'; // må være en fulstendig url
$tmp_filename = 'tmp.php'; // må ende med .php


$tmp = file_get_contents( $url );
file_put_contents( $tmp_filename, $tmp );

include( $tmp_filename );
unlink( $tmp_filename ); // denne vil slette filen

?>

 

edit: mulig man kan bruke include($url); direkte.

Endret av grimjoey
Lenke til kommentar

Tenker du i den filen som er frame, som ligger på serveren på joker.com?

 

Prøvde dette i en testfil på serveren til ntnu, men fikk opp følgende feilmelding:

 

Warning: Cannot modify header information - headers already sent by (output started at /web/folk/oyvinne/tfweb01/test.php:9) in /web/folk/oyvinne/tfweb01/test.php on line 13

 

andre koden:

 

Warning: file_get_contents() [function.file-get-contents]: URL file-access is disabled in the server configuration in /web/folk/oyvinne/tfweb01/test.php on line 15

 

Warning: file_get_contents(http://oya.ntnu.no/) [function.file-get-contents]: failed to open stream: no suitable wrapper could be found in /web/folk/oyvinne/tfweb01/test.php on line 15

 

Fatal error: Call to undefined function: file_put_contents() in /web/folk/oyvinne/tfweb01/test.php on line 16

Endret av oya
Lenke til kommentar

koden jeg skrev med header() er nødt til å ligge helt øverst i filen. (du kan ikke bruke header() dersom output har startet)

 

 

dette går ikke:

<html>
<head>
<?php
header('test');
?>
...

 

dette går bortsett fra at test ikke er en gyldig header:

 

<?php
header('test');
?>
<html>
<head>
...

Endret av grimjoey
Lenke til kommentar

Skal dette være i filen som ligger på servern til joker.com (frames) eller i siden på serveren til ntnu (innholdet)? Fikk det nemlig til å fungere dårlig på filen på ntnu sin server. Har derimot ikke tilgang til å skrive inn noe over <head> i den filen på joker.com

Lenke til kommentar

det skulle vært på joker siden. hmm får du skrevet før </head>? i så fall kan du bruke

 

<head>

<meta http-equiv="refresh" content="0; http://oya.ntnu.no" />

</head>

 

eller java script:

 

<body onload="location.href = 'http://oya.ntnu.no'">

 

får du kun skrevet i <body>...</body> tror jeg det skal fungere med:

 

<script type="text/javascript">

location.href = 'http://oya.ntnu.no';

</script>

 

 

Alternativ måte å sjekke om bruker er innlogget kan være at du benytter deg av javascript til å sette og lese cookies (session id). Ganske tungvint. Du må i så fall lage eller finne funksjoner for setting og lesing av cookies. Så må du ha en onclick="addcookie()" på alle linker som fører til beskyttede sider.

 

funksjonen addcookie() må legge til en get eller post variabel med session id i requesten som utføres. session id leses fra cookien du setter.

 

ved nermere ettertanke burde php selv sørge for å legge session id som GET i hver link. forstår ikke hvorfor php ikke gjør det i ditt tilfelle.

Endret av grimjoey
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...