Gå til innhold

[Løst] Bruk av $_SESSION på flere sider


Anbefalte innlegg

Har selv klart å låse meg fast og har ikke klart å finne frem til en løsning på problemet jeg nå har kommet over og har bestemt meg for å prøve meg her og håper dere kan hjelpe meg :blush:

 

Jeg har laget nettsiden slik at jeg har index.php som min Main side som inneholder overskrift, hovedmeny og undermeny på toppen av siden. Knappene består av bilder(<img>).

 

Under dette så har jeg designet til 2 ruter der jeg laster inn alle de andre filene jeg skal bruke. Men hovedfokuset er egentlig bare den første ruten.

 

<div id="rute1">
<?php
$page = @$_GET['page'];
 switch($page)
 {
 case "Forside": { require('Hovedside.php'); break;}
 case "Logg_inn": { require('Logg_inn.php'); break;}
 case "Logg_ut": { require('Logg_ut.php'); break;}
 case "Skriv_artikkel": { require('Skriv_artikkel.php'); break;}
 case "Registrering": { require('Registrering.php'); break;}

 case "Innlogging": { require('Innlogging.php'); break;}
 case "Nyheter": { require('Artikler.php'); break;}
 default: {require('Hovedside.php'); break; }
 }		
?>
</div>

 

Og holder nå på med innloggingen av siden. Knappen for å logge seg inn ligger på index filen. Etter at man har logget seg inn, så ønsker jeg å bruke $_SESSION som bekrefter at brukeren nå er innlogget og sørge for at den konstant er der for å bekrefte det frem til brukeren logger seg ut igjen.

 

Ønsker selv at etter at man har logget seg inn, så forandrer jeg bildet(logg inn) til bildet (logg ut) automatisk.

 

Men da kom problemet, oppdaget at jeg ikke kunne bruke "session_start()" på index.php siden den da bare krasjet med de andre filene nedenfor som brukte "session_start()". Jeg klarte ikke å bruke en variabel i index filen som skulle bekrefte at brukeren nå var logget på.

 

Håper dere forstod det jeg skrev her, og kan hjelpe meg med dette. Det er amatørmessig laget i førstningen, må bare sørge for at alt virker om det skal først ;)

 

 

Innlogging.php

<?php session_start() ?> //[u]På toppen[/u]

$Brukernavn = $_POST['F_Brukernavn'];
$Passord = $_POST['F_Passord'];

$query = "Select * FROM Bruker WHERE Brukernavn='$Brukernavn' AND Passord='$Passord'";
$result = mysql_query($query) or die("Death");
$row = mysql_fetch_array($result, MYSQL_ASSOC);
if ($row == false) 
 {
 echo "Dette brukernavnet er ikke i bruk";
 $_SESSION['Aktiv'] = "red";
 }
else
 {
echo "Du er nå innlogget, ";
echo $row['Brukernavn'];
$_SESSION['Aktiv'] = "green";
 }

Lenke til kommentar
Videoannonse
Annonse

Om alle filer inkluderes via index.php så trenger du bare å ha session_start() i index, og så fjerner du det jo bare i alle de andre filene? Du kan ha mer enn bare en variabel (eller et objekt) lagret i $_SESSION-arrayet så er ikke vits med "flere" sessions.

 

Det var det jeg også trodde først, men oppdaget at variablene ikke ble ført videre til resten av filene under. Begynte å lure på om det ikke var mulig og prøvde å finne andre muligheter, hehe...

 

Men prøvde det samme igjen siden du nevnte det og oppdaget at det fortsatt ikke fungerte før jeg faktisk oppdaget en liten feil som jeg ikke oppdaget sist gang. Jeg bruker en variabel til som er en link i dette som jeg hadde skrevet litt feil i. Linken var "?page=Logg_inn", men hadde selv skrevet "?page=Logg_in". Kan ofte være lett å blande norsk og engelsk i slikt, hehe...

 

Så jeg takker deg så utrolig mye for dette, har aldri oppdaget det uten din hjelp her :D.

 

Problemet er løst :w00t:

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...