Avatar billede ²×³ Nybegynder
20. februar 2015 - 11:18 Der er 7 kommentarer og
1 løsning

Log ind script

Hejsa

Jeg er ved at lave et privat log ind script ..

Jeg kan bare ikke lige lure. Når en bruger er logget ind og skal rette i en html form med hentet data fra en Mysql db

Jeg bruger SESSION og COOKIE ved log ind

Brugeren sendes vider til HTML formen med denne url http://url.dk?BrugerID=1&BrugerNavn=Navn

Problemet er at jeg ikke kan bruge koden herunder da alle bruger kan ændre BrugerID i URLen så de får de andre brugeres data i formen

if(!isset($_GET['BrugerNavn']) && $_GET['BrugerID'])
        header("Location: logind.php");
        exit;
}else{
HTML Form som henter bruger data ind i formen
}

Håber i kan hjælpe ?

mvh.
Lars
Avatar billede Slater Ekspert
20. februar 2015 - 11:26 #1
Hvis du bruger session ved login, hvorfor henter du så ikke bare bruger-id'et fra sessionen?
Avatar billede ²×³ Nybegynder
20. februar 2015 - 11:38 #2
Det kan man ikke det giver samme problem med at ændre Id i URLen
Avatar billede Slater Ekspert
20. februar 2015 - 11:43 #3
Nej det gør ikke. Man kan ikke ændre i sin session, da den lagres på serveren.
Avatar billede ²×³ Nybegynder
20. februar 2015 - 12:25 #4
Ja det er vi enige om. Brugeren er logget ind med $_SESSION['ID'] og $_SESSION['BrugerNavn'] det virker.

Problemet er når en bruger er logget ind med Brugernavn og ID og klikker på linket http://url.dk?BrugerID=1&BrugerNavn=Navn så hentes HTML formen med data det virker også.

jeg kan også rette data jeg kan bare ikke få if(!isset($_SESSION['BrugerNavn'] && $_SESSION['ID'] til at virke. data skifter når jeg ændre ID i URLen.. alle SESSIONs sættes på html form siden

Den her kode ville jeg gerne have i toppen af html form siden men den virker ikke

if(!isset($_SESSION['Bruger_Navn']) && $_SESSION['ID'])
        header("Location: logind.php");
        exit;
}else{
HTML Form som henter bruger data ind i formen
}

Håber at du forstår det det er lidt svært at forklare
Avatar billede Slater Ekspert
20. februar 2015 - 12:46 #5
>>"data skifter når jeg ændre ID i URLen"

Så må du jo stadig bruge $_GET variablen et sted. Ellers er det umuligt. Det skal du lade være med - GET er, som du netop ved, enormt usikkert.

Jeg forstår dog ikke helt formålet med din if-sætning:
if(!isset($_SESSION['Bruger_Navn']) && $_SESSION['ID'])

- Hvis brugernavnet IKKE er sat, men id'et er? Hvorfor det? Hvorfor må kun det ene eksistere?


Normalt vil du jo bare sætte et ID ved login. Altså i det en person logger ind med korrekt password, sætter du $_SESSION['id']

f.eks.
$userid = UserModel::login($_POST['username'], $_POST['password']);
if ($userid)
  $_SESSION['id'] = $userid;

Så er det sat i sessionen.

Derefter kan du hente data om den bruger ved at bruge det id.
F.eks.
DataModel::getByUserId($_SESSION['id']);


(Nu bruger jeg bare models for eksemplets skyld, for ikke at skrive SQL, det skal naturligvis ændres til din kode).
Avatar billede ²×³ Nybegynder
20. februar 2015 - 12:50 #6
Jeg har løst problemet tak for hjælpen smider du et svar
Avatar billede Slater Ekspert
20. februar 2015 - 12:55 #7
Gerne. Var der en hurtig løsning, du kunne dele med andre, der evt. finder spørgsmålet i fremtiden?
Avatar billede ²×³ Nybegynder
20. februar 2015 - 14:39 #8
Det mig der er ved at lære $_SESSION jeg rodet lid rundt i det
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