Gå til innhold

logout og login


Anbefalte innlegg

jeg bruker et innloggingsscript som funker sånn delvis. og lurer på om jeg kan få litt hjelp til å få det til å fungere optimalt.

her er koden som sjekker om infoen fra skjemaet er riktig:

<?php 

session_start(); 
header("Cache-control: private"); 

$passord = md5($_POST['passord']); 
$brukernavn = 'brukernavn'; 
$md5_passord = 'dfa7b4911dea450657bf517eae50513b'; 
 header("Location: http://cms.predicted.net/index.php");
if($_POST['navn'] == $brukernavn && $passord == $md5_passord) 
{ 
   $_SESSION['navn'] = $_POST['navn']; // regner ikke med det finnes noen annen $navn variabel 
   $_SESSION['passord'] = $passord; 

   echo "Du er nå logget inn."; 

}  // end if 

else 
{ 
   echo "Feil brukernavn eller passord"; 
} // end else 

?>

om innloggingen er riktig sendes du til en ny side som er spesifisert i header

 

der sjekkes det om du er logget inn før siden vises, følgende kode ligger altså over header, html og body taggene.

<?php 
session_start();
$author=$_SESSION['navn'];
if(isset($_SESSION['navn']) && isset($_SESSION['passord'])) 
{ 

} 
else 
{ 
   echo "Du må være logget inn for å nå disse sidene!";
exit; 
} 

?>

så langt funker det bra, men jeg vil gjerne legge til en legge til en header location som gjør at om sjekken finner at du ikke er logget inn blir du sendt til skjemaet.

edit: jeg legger sjekken i index.php som inkluderer resten av filene på siden, når jeg inkluderer en annen fil får jeg opp at jeg må være logget inn. har jeg lagt sjekken feil sted?

 

det hadde også vært supert om noen kan hjelpe meg med en liten logout snutt. :)

Endret av Smidt
Lenke til kommentar
Videoannonse
Annonse

Mitt logoutscript jeg har på en av sidene jeg lager:

 

           case 'loggut':
               $_SESSION = array();
               session_destroy();
               echo '<h2>Logg ut.</h2>'
                   .'<p>Trykk <a href="../?side=nyheter">her</a> for å logge ut.</p>';
               include './includes/footer.html';
               die();
           break;

 

Litt feil å si "trykk her for å logge ut" siden sessionen allerede er dø, men :p

Har helt sikkert sterkt forbedringspotensiale :roll:

 

Kan også si at jeg bruker denne koden for å skjekke om man er logget inn:

session_start();
if (isset($_SESSION['brukernavn'])) {
// masse rart
} else {
   echo 'Du har ikke tilgang til denne siden.'
       .'Trykk <a href="../?side=nyheter">her</a> for å gå tilbake.';
}

 

merk at jeg har en egen admin mappe som man blir reconnecta til om man har rett brukernavn og passord som ligger i en db.

Endret av smoothie
Lenke til kommentar

jeg skulle aller helst hatt en sak som kan ligge som en sjekk helt øverst på siden. noe ala den jeg har postet over, men som må virke.

blir litt tungvint å enten måtte require en fil om innloggingen har skjedd, eller sende til innloggingsskjemaet om det ikke stemmer.

det som hadde vært best ville vært en sjekk som bare stopper opp om det ikke er logget inn, og om det er logget inn vises bare siden.

Lenke til kommentar
<?php 

session_start(); 
header("Cache-control: private"); 

$passord = md5($_POST['passord']); 
$brukernavn = 'brukernavn'; 
$md5_passord = 'dfa7b4911dea450657bf517eae50513b'; 
 header("Location: http://cms.predicted.net/index.php");
if($_POST['navn'] == $brukernavn && $passord == $md5_passord) 
{ 
   $_SESSION['navn'] = $_POST['navn']; // regner ikke med det finnes noen annen $navn variabel 
   $_SESSION['passord'] = $passord; 

   echo "Du er nå logget inn."; 

}  // end if 

else 
{ 
   echo "Feil brukernavn eller passord"; 
} // end else 

?>

 

kan bli til

 

<?php 

session_start(); 
header("Cache-control: private"); 

$passord = md5($_POST['passord']); 
$brukernavn = 'brukernavn'; 
$md5_passord = 'dfa7b4911dea450657bf517eae50513b'; 
 header("Location: http://cms.predicted.net/index.php");
if($_POST['navn'] == $brukernavn && $passord == $md5_passord) 
{ 
   $_SESSION['navn'] = $_POST['navn']; 
   $_SESSION['passord'] = $passord; 

   header("Location: http://cms.predicted.net/index.php");

}  // end if 

else 
{ 
  header("Location: http://cms.predicted.net/feilpassordprøvigjen.php");
} // end else 

?>

Endret av jorgis
Lenke til kommentar

jeg har egentlig ikke noe behov for å lagre noe annet enn brukernavnet,

men det jeg sliter med nå er sjekken om du er logget inn eller ikke. om jeg legger til koden til jorgis over helt øverst i index.php (som inkluderer resten av sidene) blir jeg sendt tilbake til innloggingssiden.

Lenke til kommentar

jeg har prøvd meg litt frem og tilbake og nå har jeg fått innloggingen til å funke i IE, men ikke i opera.

 

koden som henter info fra skjema og sjekker om brukernavn og passord er riktig:

?php 

session_start(); 
header("Cache-control: private"); 

$passord = md5($_POST['passord']); 
$brukernavn = 'Roald Jespersen'; 
$md5_passord = 'dfa7b4911dea450657bf517eae50513b'; 
header("Location: http://cms.predicted.net/index.php");
if($_POST['navn'] == $brukernavn && $passord == $md5_passord) 
{ 
  $_SESSION['navn'] = $_POST['navn']; 

  header("Location: http://cms.predicted.net/index.php");

}  // end if 

else 
{ 
 header("Location: http://cms.predicted.net/login/");
} // end else 

?>

 

og så koden som ligger øverst i index.php som inkluderer diverse sider:

<?php

session_start();
header("Cache-control: private"); 
if(isset($_SESSION['navn'])) 
{ 
$author=$_SESSION['navn'];
} 
else 
{ 
 header("Location: http://cms.predicted.net/login/");
 echo"Du må logge inn får å nå disse sidene"; 
} 

er veldig takknemlig om noen kan ta en titt på koden og se over om det er noen feil. jeg har lest i manualen uten å bli så veldig mye klokere, har googlet en del og uten hell.

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å
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...