v5.dk logo
Kom ind og besøg vores Discord Chat-community
Bliv medlem her eller læs mere om Discord her
Få adgang til alt på hele v5.dk
- bliv Premium-medlem for kun 39,95 kr.

Mere info Køb nu

Premium på v5.dk
v5.dk logo  v5.dk e-learning
Log på med Facebook
  • Log ind på v5.dk
  • Opret bruger
  • Log ind
  • v5.dk Premium
  • v5.dk Premium
  • Hvad siger vores kunder?
  • E-læring for begyndere
  • icon for WordPress 4 e-learning WordPress 4
  • icon for Office 365 e-learning Office 365
  • icon for Microsoft Word e-learning Microsoft Word
  • Bloggen for alle
  • E-læring for nørder
  • icon for PHP-programmering e-learning PHP-programmering
  • icon for iOS Programmering e-learning iOS Programmering
  • icon for Linux Server e-learning Linux Server
  • Bloggen for nørder
  • Arkiverede videoer
  • Fællesskab
  • Forum
  • Idéer og ønsker
  • Markedspladsen
  • v5.dk Premium
  • Gratis webhotel
  • Cloud-servere
  • Om v5.dk
  • Søg på v5.dk
  • Om v5.dk ApS
    • Om virksomheden
    • RSS-feeds og tjenester
    • Driftsmeddelelser
    • Presse-kit
    • Ledige jobs
    • Social Netværk
      • Facebook
      • Twitter
      • Instagram
    • Alt det andet
      • Forretningsbetingelser
      • Ophavsret og Copyright
  • Kontakt kundeservice
  • FAQ og Hjælp
    • Premium og abb.
    • Videoer og Afspiller
    • Forum og Points
    • Cloud-servers
  • Partner/Virksomhed
  • Partner-kanal
v5.dk logo mobile
  • Menu
  • Opret bruger

Fra én login side til flere login sider

  • v5.dk
  • Forum
  • PHP-programmering
  • Fra én login side til flere login sider
  • Sidevisninger: 4417 har set dette indlæg
Besvar #0Spørgsmål oprettet af @Saj1980 | 865 points
15 points ude 7 indlæg 7 år siden Spørgsmålet er ikke løst
avatar
 

I PHP tutorial er der blevet lavet en guide til at login side. Men det gælder kun til én side. Hvad nu hvis jeg gerne vil have login til flere sider end kun én. Hvad skal jeg gøre i dette tilfælde?

 

Bedst hilsner Sajid

avatar
 
Besvar#1 @Thomas kommenterede for 7 år siden

Hej Sajid.

 

Hvis jeg forstår dit spørgsmål korrekt vll du gerne lave flere sider som en bruger der er logget ind kan besøge, og ikke besøge hvis man ikke er logget ind. 

Det jeg syntes der er nemmest er at lave en slags dørmand. Ham inkluderer jeg på alle de sider som jeg gerne vil have beskyttet. 

Dørmanden kigger i dette tilfælde efter om der er sat en $_SESSION. 

fil1: 
Dit loginscript

<?php
session_start();
require('db.php'); // Inkludér din databasefil
$forbindelse = new Forbindelse; // Opret nyt db-object

// Spørg din database om der findes en bruger med det indtastede
$Login = $forbindelse->DatabasePrepareQueryReturnFirstField("SELECT noget FROM tabel WHERE noget = ?",array($_POST['noget'])); 

// Vurder det returnerede fra $Login-variablen.
if ($Login['email'] == $_POST['email'] && $Login['kodeord'] == $_POST['kode'] && $Login['id'] == 1) {
	$_SESSION['loginID'] = $Login['id'];
	header("Location: beskyttetside1.php");
} else {
	echo "Du har IKKE angivet korrekte oplysninger";
}

?>

 

fil2:
Din dørmand

<?php

Class Bouncer{
	

public function access() {
	if ($_SESSION['loginID']) {
	// $_SESSION er sat, så gør ikke noget
	} else {
        // $_SESSION er IKKE sat, så send brugeren videre til logind.php og sluk  for resten af koden
		header('Location: logind.php');
		die();
	}
}

}


?>

fil3: 

beskyttetside1.php

<?php

require('bouncer.php');
adgang();

echo "Du er nu på en beskyttet side";
echo "Dit bruger-id er ".$_SESSION['loginID'];

?><!DOCTYPE html>
<html>
<head>
</head>
<body>

<a href="beskyttetside2.php">Klik her for side 2</a>

</body>
</html>

adgang() skal hedde access() i linie 4.

 

beskyttetside2.php kan du så lave på samme måde som beskyttetside1.php

 

Håber du kan bruge det og komme videre med dit projekt =) 

avatar
 
Besvar#2 @db Admin kommenterede for 7 år siden

Hej  Saj1980 @Saj1980   

Thomas @Thomas   beskriver det meget godt, men hvis det er noget du gerne vil have uddybet i en trin-for-trin videoguide kan du ønske det lige her: https://v5.dk/wish/opret.php i serien "PHP Programmering". Så vil jeg gennemgå dette emne i den kommende video.


Med venlige hilsner

Daniel Bahls Signatur   Daniel Bahl (@db)
   CEO – v5.dk ApS

avatar
 
Besvar#3 @simonpedersen Premium kommenterede for 7 år siden

 #1  , Du kalder funktionen "Access" i fil2, men kalder den via "adgang()" i beskyttetside1.php. Eller har jeg overset noget? 

Jeg ved ikke hvad Best Practice er på området, men jeg ville nok foretrække at få at vide, at jeg ikke var logget ind, og så selv havde muligheden for at hoppe til login-siden, end automatisk at blive smidt derhen. Men det er småting og en smagssag. 

avatar
 
Besvar#4 @Saj1980 kommenterede for 7 år siden

 #1  Det er en rigtig fin beskrivelse du har lavet. Og dog lidt avanceret for mig, da jeg ikke har prøvet at arbejde med databaser. Dette kræves i din eksempel :( 

 

Men jeg takker alligevel for denne meget udførelig beskrivelse :) 

avatar
 
Besvar#5 @Saj1980 kommenterede for 7 år siden

 #2  Det skal jeg gøre :)

avatar
 
Besvar#6 @Thomas kommenterede for 7 år siden

Det er helt rigtigt set at den bliver kaldt ved 2 forskellige navne. 

(Har tilføjet rettelsen under billedet). Har nu fundet ud af hvordan man gør inden man opretter kommentaren xD

 

Her kommer en løsning uden databaser. 

 

formular.php

<!DOCTYPE html>
<html>
<head></head>
<body>

<h3>Log ind nedenfor</h3>
<form action="login.php" method="POST">
     <input type="text" id="brugernavn" name="brugernavn" />
     <input type="password" id="kode" name="kode" />

     <input type="submit" value="Log ind" />
</form>

</body>
</html>

 

login.php

<?php
session_start();

$brugernavn = "saj";
$kode = "password";

// Vurder det returnerede fra $Login-variablen.
if ($POST['brugernavn'] == $brugernavn && $_POST['kode'] == $kode) {
	$_SESSION['sessionNavn'] = "godkendt";
	header("Location: beskyttetside1.php");
} else {
	echo "Du har IKKE angivet korrekte oplysninger";
}

?>

 

beskyttetside1.php

 

<?php
require('bouncer.php'); // Tilkald dørmanden
adgang(); // Bed ham kontrollerer om der er sat en session

?><!DOCTYPE html>
<html>
<head></head>
<body>

<h1>Velkommen indenfor!</h1>
<br />
<a href="beskyttetside2.php">Side2</a>
</body>
</html>

 

bouncer.php

<?php
session_start();
Class Bouncer {

public function adgang() {
   if($_SESSION['sessionNavn'] == "godkendt") {
      // Gør ikke noget da sessionen er sat og er korrekt.
   } else {
      // Der er ikke sat en korrekt session og vi sender brugeren tilbage.
      header('Location: formular.php');
      die();
      }

   } // Lukker funktionen adgang
} // Lukker Class

?>

 

beskyttetside2.php

 

<?php
require('bouncer.php'); // Tilkald dørmanden
adgang(); // Bed ham kontrollerer om der er sat en session

?><!DOCTYPE html>
<html>
<head></head>
<body>

<h1>Dette er side 2!</h1>
<br />
<a href="beskyttetside1.php">Side1</a>
</body>
</html>

 

 

Håber det hjalp =)

avatar
 
Besvar#7 @Thomas kommenterede for 7 år siden

Arrrrrh Crap! 
Havde lige overset en vigtig detalje (undskyld har siddet med mange forskellige koder). 

 

I beskyttetside1.php skal du skrive: 

 

require('bouncer.php');

$bouncer = new Bouncer;

$bouncer->adgang();

avatar
 

Du er ikke logget ind

Du skal være logget ind på v5.dk før du kan benytte vores forum. Det er ganske gratis at oprette en bruger.

Opret en ny gratis bruger Log ind

Følger med i denne tråd

Saj1980 Thomas

Forum kategorier

  • Generelt
  • Guides & Howto85
  • Offtopic / Andet160
  • Microsoft Office
  • Microsoft Word13
  • Microsoft Excel4
  • Microsoft PowerPoint0
  • Web og hjemmesider
  • Wordpress17
  • Operativsystemer
  • Apple Mac OS X14
  • Apple iOS28
  • Microsoft Windows4
  • Linux16
  • Teknologier
  • Netværk og WiFi3
  • Internet-tjenester9
  • Programmering
  • PHP-programmering125
  • iPhone-/Xcode-programmering9

Aktive forum-tråde lige nu

pentobarbital kaufen ohne rezept
gras kaufen online - grasthc.com
online marketing
Køb juridiske dokumenter såsom kørekort, pas, visum, opholdstilladelse og andre dokumenter
Køb juridiske dokumenter såsom kørekort, pas, visum, opholdstilladelse og andre dokumenter
Weed online kaufen
Er det værd at have en "portfolio"-hjemmeside!?
Fejlkode i form af bip-lyde ved opstart af gammel stationær PC
Bygget med af v5.dk
© Copyright 2006-2023 • Forretningsbetingelser • Copyright • Persondata- og Cookiepolitik
v5.dk ApS - Åbogade 15 - 8200 Aarhus N - CVR: 36902833
v5.dk logo
Hej, vi hedder v5.dk og vi laver e-learning på dansk

v5.dk er sat i verden for at gøre teknologi tilgængeligt og anvendeligt for både professionelle og almindelige brugere på alle niveauer.

93 200 555
  Skriv til os
v5.dk bruger cookies til at huske dine indstillinger, livechat samt til statistik
 

Alle vores priser er inkl. moms Sikker SSL-beskyttet forbindelse

Dankort og Visa-Dankort  Visa  Mastercard og Mastercard Junior  Maestro

  • Produkter
  • v5.dk Premium
  • Cloud-servers
  • v5.dk
  • Om v5.dk
  • Kunderne siger
  • Kontakt os
  • Presse
  • Stay updated
  • RSS & tjenester
  • Søg på v5.dk
  • Sitemap