---
title: "PHP inloggning"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/134427-php-inloggning"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "nummersju"
published: "2005-09-17T08:01:16.000Z"
updated: "2005-09-20T09:40:44.000Z"
replies: 17
views: 909
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/134427-php-inloggning"
---

# PHP inloggning

## #1 — nummersju, 2005-09-17T08:01Z

Jag har ett inloggnings script här som jag fått tag på, men logga ut, som är ganska viktig, kommer inte fram :S

```
<?php
/*
Kollar om sessionen inloggad finns om den gör
det visas informationen mellan måsvingarna
*/
if(isset($_SESSION['inloggad'])) {
    echo "Du är nu inloggad!";
    echo "kanske är någon länk här?";
    echo "En till ?";
}
 
else {
    echo "<br />Du måste logga in via inloggningssidan.<br /><br />
         <a href='login.php'>Logga in</a>";
}
 
//Om man trycker på länken logga ut händer detta
if(isset($_GET['logout'])) {
    session_destroy();
    echo "<script language='JavaScript'>
         location.href=('index.php');
         </script>";
    exit();
    }
?>
```

Permalänk: https://www.webforum.nu/p/134427

## #2 — pettsson, 2005-09-17T08:19Z

Vad händer då? Ligger 'logout' med i länkadressen som "logga ut"-länken pekar på?

Permalänk: https://www.webforum.nu/p/1672740

## #3 — nummersju, 2005-09-17T08:46Z

Alltså det finns ingenting under det som skrivs ut av detta:
    echo "Du är nu inloggad!";
    echo "kanske är någon länk här?";
    echo "En till ?";

Vad jag förstår så ska det bli en "ligga ut"-länk där?

Permalänk: https://www.webforum.nu/p/1672746

## #4 — Matte, 2005-09-17T09:08Z

Om du ändrar "En till" till

```php
echo "<a href='{$_SERVER['PHP_SELF']}?logout='>Logga ut</a>";
```

Vad händer då när du klickar på länken ?

För övrigt anser jag att du ska flytta upp din logout-kod till innan du har någon output på sidan, och använda en header() för din redirect.

Permalänk: https://www.webforum.nu/p/1672747

## #5 — nummersju, 2005-09-17T09:16Z

jag förstår inte, det funkar inte även om jag byter till den där koden... då kommer man till  admin_inloggad.php?logout= och samma sida visas igen :(

Permalänk: https://www.webforum.nu/p/1672750

## #6 — Matte, 2005-09-17T09:22Z

Har du session_start() överst i skriptet ?

Permalänk: https://www.webforum.nu/p/1672751

## #7 — nummersju, 2005-09-17T11:06Z

Mjo det har jag....

Permalänk: https://www.webforum.nu/p/1672799

## #8 — pettsson, 2005-09-17T16:36Z

Gör så här:

```php
<?php
session_start();
if(isset($_GET['logout'])) {
print "Du är nu utloggad.<br>";
session_destroy();
die();
}

if(isset($_SESSION['inloggad'])) {
print "Du är inloggad.<br>";
print "<a href=\"$PHP_SELF?logout\">Logga ut</a><br>";
}
else {
print "<br />Du måste logga in via inloggningssidan.<br /><br />" .
       "<a href='login.php'>Logga in</a>";
       die();
}
?>
```

Permalänk: https://www.webforum.nu/p/1672926

## #9 — nummersju, 2005-09-17T21:13Z

Nu ser min kod ut såhär:

```php
<?
session_start();
 
$anv = 'test'; // Välj användarnamn
$pass = 'test'; // Välj lösenord
?>
<html>
<link href="style.css" rel="stylesheet" type="text/css">
<body>
<head>
<TITLE>Vanligt Session inloggs script</TITLE>
</head>
 
<div id="content">
<div id="form">
<form method="post">

<input type="text" name="anv" value="Användarnamn" />

<input type="password" name="pass" value="Lösenord" />

<input type="submit" name="login" value="Enter the Matrix" />
</form>
 </div>
<?php 
session_start(); 
if(isset($_GET['logout'])) { 
print "Du är nu utloggad.<br>"; 
session_destroy(); 
die(); 
} 

if(isset($_SESSION['inloggad'])) { 
print "Du är inloggad.<br>"; 
print "<a href=\"$PHP_SELF?logout\">Logga ut</a><br>"; 
} 
else { 
print "<br />Du måste logga in via inloggningssidan.<br /><br />" . 
       "<a href='login.php'>Logga in</a>"; 
       die(); 
} 
?>  </div> 
 
 
</body>
</html>
```

 

Ni kan kolla själva hur det ser ut, jag fattar ingenting ;)
<http://nummersju.net/php/news/login.php>

Permalänk: https://www.webforum.nu/p/1672974

## #10 — Matte, 2005-09-17T22:18Z

Börja din sida med att lägga följande allra överst på sidan:

```php
<?php // <-- Allra översta raden längst till vänster

error_reporting(E_ALL);
ini_set("display_errors", "1");

session_start();

if(isset($_GET['logout'])) {
   session_unset();
   $_SESSION = array(); 
   session_destroy(); 
   header("Location: login.php");
   exit;
}
```

Får du några felmeddelande ?
Fungerar det ?

Permalänk: https://www.webforum.nu/p/1672980

## #11 — nummersju, 2005-09-18T09:02Z

Har lagt till det och tagit bort det gamla, men nu som jag ser det verkar det ju inte finnas någon sida som man ska komma till efter att man loggat in... Sen verkar det ju vara konstigt att redan innnan man har provat att logga  in så finns det en sida som säger att man inte är inloggad och att man ska klicka för att logga in :S

```php
<?php // <-- Allra översta raden längst till vänster 

error_reporting(E_ALL); 
ini_set("display_errors", "1"); 

session_start(); 

if(isset($_GET['logout'])) { 
   session_unset(); 
   $_SESSION = array(); 
   session_destroy(); 
   header("Location: login.php"); 
   exit; 
} 
 
$anv = 'test'; // Välj användarnamn
$pass = 'test'; // Välj lösenord
?>
<html>
<link href="style.css" rel="stylesheet" type="text/css">
<body>
<head>
<TITLE>Vanligt Session inloggs script</TITLE>
</head>
<body> 
<div id="content">
<div id="form">
<form method="post">

<input type="text" name="anv" value="Användarnamn" />

<input type="password" name="pass" value="Lösenord" />

<input type="submit" name="login" value="Enter the Matrix" />
</form>
 </div>
<?php 

if(isset($_SESSION['inloggad'])) { 
print "Du är inloggad.<br>"; 
print "<a href=\"$PHP_SELF?logout\">Logga ut</a><br>"; 
} 
else { 
print "<br />Du måste logga in via inloggningssidan.<br /><br />" . 
       "<a href='login.php'>Logga in</a>"; 
       die(); 
} 
?>  </div> 
 
 
</body>
</html>
```

Permalänk: https://www.webforum.nu/p/1673036

## #12 — Matte, 2005-09-18T09:45Z

Du har ingen kod som tar emot ditt postade inloggningsformulär.

Om du inte har någon sida att redirekta till efter inloggning får du väl skapa en sådan.

Tala om hur du vill ha strukturen på din webbplats. Vi har inte en aning om hur du tänkt använda dig av din inloggning.

Permalänk: https://www.webforum.nu/p/1673050

## #13 — nummersju, 2005-09-18T09:48Z

Jo, så här är det. Jag vill ha en loginsida, därifrån ska man komma till admin.php. Där ska man kunna, just nu, lägga till en nyhet, redigera andra nyheter och tabort andra nyheter. När man är klar ska man kunna logga ut.
Tack för hjälpen föresten ;)

Permalänk: https://www.webforum.nu/p/1673052

## #14 — pettsson, 2005-09-18T10:02Z

För att komma till admin.php kan du lägga till action="admin.php" i din form-tagg, alt. action="inloggning.php" för att där hantera vad man gör vid fel lösenord etc. och sedan skicka vidare till lämlig sida.

Permalänk: https://www.webforum.nu/p/1673057

## #15 — Matte, 2005-09-18T10:34Z

Ett exempel på hur du kan göra.

Du har din inloggning liggande i login.php:

```php
<?php  /* login.php */

session_start(); // Alltid överst på sidan 

// Inloggning
if (isset($_POST['login'])){

   $username = 'hej';
   $password = 'hopp';

   /* 
      Testa om användarnamn/lösenord är rätt
      Annars skicka tillbaka till formulär
      med felmeddelande 
   */
   if ($_POST['user'] != $username || $_POST['passwd'] != $password) {
      header("Location: login.php?badlogin");
      exit;
   }

   // Sätt sessionsvariabel som visar att man är inloggad
   $_SESSION['admin_login'] = true;
   header("Location: admin.php");
   exit; 

}

// Utloggning
if (isset($_GET['logout'])){

  $_SESSION = array();
  session_destroy();
  header("Location: index.php");
  exit;

}

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
 "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" 
  content="text/html; charset=iso-8859-1">
<title>Login adminsidor</title>
</head>
<body>
<?php

// Om inte inloggad visa formulär, annars logga ut-länk 
if (!isset($_SESSION['admin_login'])){

  echo "<h2>Logga in</h2>\n";
  
// Visa felmeddelande vid felaktig inloggning
  if (isset($_GET['badlogin'])){
    echo "Fel användarnamn eller lösenord!<br>\n";
    echo "Försök igen!\n";
  }
  
?>
<form action="login.php" method="post">
<table>

  <tr>
  <td>Användarnamn:</td>
  <td><input type="text" name="user" /></td>
  </tr>

  <tr>
  <td>Lösenord:</td>
  <td><input type="passwordd" name="passwd" /></td>
  </tr>

  <tr>
  <td colspan="2" style="padding:10px 30px">
  <input type="submit" name="login" value="Logga in" style="width:100px" />
  </td>
  </tr>

  </table>
</form>
<?php

} else {

  echo '
    <p>Du är redan inloggad</p>
    <p>
      <a href="login.php?logout=">Logga ut</a><br />
      <a href="admin.php">Till adminsidan</a>
    </p>
  ';

}

?>

<p><a href="index.php">Startsidan</a></p>

</body>
</html>
```

Sedan på de sidor du vill skydda med din inloggning lägger du följande överst:

```php
<?php

session_start();

if (!isset($_SESSION['admin_login'])) {
   header("Location: login.php");
   exit;
}
```

Nu är det inte så extremt säkert att ha dina användarnamn/lösenord i klartext i skriptet. Ett enkelt sätt att göra det lite bättre är att du kör följande skript:

```php
echo md5('hopp'); // Ersätt med "hopp" ditt eget lösenord
```

Sedan lägger du in det som värde i ditt $password och ändrar till:

```php
   $username = 'hej';
   $password = 'aa471e80ed10cac36bc2dd549c94b9b9';

   /* 
      Testa om användarnamn/lösenord är rätt
      Annars skicka tillbaka till formulär
      med felmeddelande 
   */
   if ($_POST['user'] != $username || md5($_POST['passwd']) != $password) {
      header("Location: login.php?badlogin");
      exit;
   }
```

Åtminstone kan inte då någon få ditt lösenord i klartext om de skulle råka se skriptet, av t.ex. fel på servern.
\*

Permalänk: https://www.webforum.nu/p/1673062

## #16 — nummersju, 2005-09-18T13:36Z

Okej! Tack så hemskt mkt! Detta ska jag prova!

Permalänk: https://www.webforum.nu/p/1673105

## #17 — nummersju, 2005-09-18T14:02Z

Förstår inte det där sista med md5 och det :S Men innan det kommer in i bilden funkar det jättebra! :D

Permalänk: https://www.webforum.nu/p/1673115

## #18 — jeliasson, 2005-09-20T09:40Z

md5 är en envängskryptering, tekniken bygger på att man jämnför två strängar.
Den md5 strängen som är i databasen och den strängen som skickas i ett forumulär.

Permalänk: https://www.webforum.nu/p/1673554

---

Tråden på webben: https://www.webforum.nu/amne/php/134427-php-inloggning
