Avatar billede Thomsen11 Nybegynder
18. marts 2010 - 17:27 Der er 14 kommentarer og
1 løsning

Side skal kun ses af brugere

Hej eksperter.

Jeg har en almindelig side, den vil jeg gerne have at den kun kan ses af de brugere som er logget ind i mit system. 
Mine brugere logger ind i sessions. De logger ind på forsiden og fra den bliver de sendt ind på "loginsiden". Her er lidt kode fra loginsiden:

<?php
session_start();
require_once("config.php");

if(!isset($_POST['Submit'])) {
    echo "Du skal komme fra forsiden";
    }else{
        $postbruger = $_POST['Brugernavn'];
        $postpass = $_POST['Password'];
       
        $resultat = mysql_query("SELECT Id FROM `brugere` WHERE Brugernavn = '$postbruger' AND Password = '$postpass'");

        $number = mysql_num_rows($resultat);
        if($number == 1) {
        $_SESSION['loget_in'] = 1;
        $_SESSION['Brugernavn'] = $postbruger;
        $_SESSION['Password'] = $postpass;
        echo "<center>Du er nu logget ind</center>
             
";

        }else echo"De indtastede oplysninger er ikke korrekte";
        }
?>



Håber i forstår spørgsmålet, eller skal I endelig smide en kommentar så forklarer jeg det igen.

På forhånd tak!
Avatar billede jokerper Nybegynder
18. marts 2010 - 18:55 #1
if ($_SESSION['loget_in'] == 1) {
echo "<a href=\"dit.link\">Link</a>
}

evt.

else
Avatar billede jokerper Nybegynder
18. marts 2010 - 18:57 #2
<?php
session_start();
if ($_SESSION['loget_in'] == 1) {

Din side kode

} else {
hvad du så vil vise
}
Avatar billede repox Seniormester
19. marts 2010 - 09:05 #3
Jeg sad godt nok lige og undrede mig over om jeg ikke har set det script der adskillige gange herinde, nu - og sørme jo; det er jo fundet her: http://www.udvikleren.dk/PHP/Article.aspx/87/
Sjovt som den samme stavefejl gik igen hver gang, men det havde jo en forklaring. ;) Det er en vildt forældet artikel, set i forhold til den nuværende PHP version.

Never the less - det sidste kodeeksempel i artiklen fortæller dig faktisk hvordan du kan anvende de sessions til at sikre dig at det kun er brugere der er logget ind der kan se din side.
Avatar billede Thomsen11 Nybegynder
19. marts 2010 - 13:11 #4
Har jeg forstået det rigtigt?

<?php
session_start();
if ($_SESSION['loget_in'] == 1) {

Her er min kode som skal vises hvis brugerne er logget ind.

} else {
Her er min kode til svar, hvis man kommer ind på siden og ikke er logget ind.
}



Hvis jeg uploader dette til serveren viser browseren fejl i scriptet?
Avatar billede repox Seniormester
19. marts 2010 - 13:17 #5
Ja, det er klart, for det virker ikke - du har bare klippe-klistret pseudo kode... hvad med om du kiggede i den artikel du har hentet det fra, som jeg har nævnt?
Avatar billede Thomsen11 Nybegynder
22. marts 2010 - 14:53 #6
Jeg læst den artikel du linker til. Det er jo der jeg har mine koder fra.
Efter at have læst den endnu engen forstår jeg stadig ikke at det ikke virker.

Hvis jeg laver en side som ser sådan ud(Taget fra samme link):

<?php
session_start();
$_SESSION['test'] = "BlaBlaBla";
?>

og laver en anden der ser sådan ud:

<?php
session_start();
echo $_SESSION['test'];
?>


Hvorfor printes der ikke BlaBlaBla på side 2?

Det er nok det der gør at jeg heller ikke kan gemme sessions som 1 og exit hvis brugerne ikke har fået tildelt det ved login.
Avatar billede repox Seniormester
22. marts 2010 - 15:36 #7
Er du sikker på du har skriveadgang til session biblioteket; er det noget du kører på din lokale maskine?
Avatar billede Thomsen11 Nybegynder
22. marts 2010 - 18:39 #8
Jeg har mit webhotel hos one.com så jeg regnede da med at det godt kunne køre det.
Avatar billede dkfire Nybegynder
22. marts 2010 - 21:30 #9
Og du har slået fejlbeskeder til ?

Og du har som det første på dine sider
<?php
session_start();


Der må ikke være noget som helst før session_start().
Intet html eller tomme linjer!
Avatar billede Thomsen11 Nybegynder
23. marts 2010 - 08:47 #10
Jeg har intet før
<?php
session_start();


Jeg ved ikke om jeg har slået fejlbeskeder til. Hvordan gør jeg det?
Avatar billede dkfire Nybegynder
23. marts 2010 - 12:26 #11
Det gør du i dit kontrolpanel hos one.com
Avatar billede jokerper Nybegynder
23. marts 2010 - 22:34 #12
I samme fil.php:

<?php
session_start();
$_SESSION['test'] == "BlaBlaBla";

echo $_SESSION['test'];

?>


Se om det virker og gå derefter videre til at sende mellem 2 filer.
Avatar billede jokerper Nybegynder
23. marts 2010 - 22:36 #13
Du skal huske at fil endelsen skal være .php og ikke .html eller .htm
Avatar billede Thomsen11 Nybegynder
24. marts 2010 - 09:45 #14
Jeg har heletiden gemt filen som .php

Efter at have skiftet editor er problemet løst. Havde formateret min computer og havde ikke fået installeret en editor, så jeg havde lavet det i notepad.(!!!) Jeg har nu installeret Ultra Edit og nu kører det.

Tak for interessen og hjælpen!!

Jokerper. Vil du ikke smide et svar?
Avatar billede jokerper Nybegynder
24. marts 2010 - 23:18 #15
Godt du fik det løst. God nat
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

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