---
title: "Användarlogin i php"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/56255-användarlogin-i-php"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "inkfish"
published: "2002-10-17T05:03:26.000Z"
updated: "2002-10-17T20:17:10.000Z"
replies: 15
views: 692
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/56255-användarlogin-i-php"
---

# Användarlogin i php

## #1 — inkfish, 2002-10-17T05:03Z

Hallå jag håller på och försöker göra en avändar login men det värkar inte funka. Det jag gjoirt just nu är:

```php
<?
session_start();
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>

<?
session_register("username");
session_register("password");

$link = mysql_connect ("localhost");
        mysql_select_db("inkfishave", $link);

$sql = mysql_query("SELECT password FROM users WHERE username = '$username'");
$fetch_em = mysql_fetch_array($sql);
$numrows = mysql_num_rows($sql);

if($numrows != "0" & $password == $fetch_em["password"]) {
	$valid_user = 1;
}
else {
	$valid_user = 0;
}

if (!($valid_user)) {
	session_unset(); 
	session_destroy(); 
	header("Location: index.php");
}
else {
	header("Location: admin.php");
}
?>
</body>
</html>
<?
exit();
?>
```

 

Om  man har rätt lösenord så ska man komma till: admin.php men om man inte har det, tillbaka till index.php.

Detta funkar inte för när jag skriver in mitt användarnamn och lösenord som jag vet finns kommer jag till index.php ändå.

Några lösningar eller förslag på hur jag ska göra istället för såhär?

Tack på förhand.

MVH.
M. Lundberg

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

## #2 — pimme, 2002-10-17T09:08Z

if($numrows != "0" & $password == $fetch_em\["password"\]) {

borde väl vara if($numrows != 0 && $password == $fetch_em\["password"\]) {

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

## #3 — inkfish, 2002-10-17T14:39Z

kommer fortfarande bara tillbaka, kollat så att mitt användarnamn och lösenord verkligen stämmer och det gör det. Ingen som kan testa scriptet själv och se om ni åker på samma problem? 

TACK! =))

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

## #4 — dectgap, 2002-10-17T14:48Z

Du försöker skicka iväg en header efter att du redan har skrivit grejen till den genererade php-filen. Det går nämligen inte.

Eftersom användaren alltid ska skickas vidare, antingen till index.php eller admin.php, är det inte lönt att skriva ut någon html-kod.

Testa med

```php
<?php
session_start();
session_register("username");
session_register("password");

$link = mysql_connect ("localhost");
        mysql_select_db("inkfishave", $link);

$sql = mysql_query("SELECT password FROM users WHERE username = '$username'");
$fetch_em = mysql_fetch_array($sql);
$numrows = mysql_num_rows($sql);

if($numrows != "0" & $password == $fetch_em["password"]) {
    $valid_user = 1;
}
else {
    $valid_user = 0;
}

if (!($valid_user)) {
    session_unset(); 
    session_destroy(); 
    header("Location: index.php");
}
else {
    header("Location: admin.php");
}
?>
```

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

## #5 — inkfish, 2002-10-17T17:17Z

Yay! =) Det fungerade, tackar vi för.

Nu på de sidorna som användarna behöver vara inlogga på, kan jag bara kolla om det finns en session vid namn username då lr? Eller måste jag göra om samma procedur som här igen?

Och när jag loggar ut, kör jag bara: session_unset(); och session_destroy(); då?

Tack!

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

## #6 — inkfish, 2002-10-17T17:30Z

Inte för att vara jobbig men nu helt plötsligt kommer dessa felmdeleanden när jag skickas till login.php

Warning: open(/tmp\\sess_3fbcda669fb6b9f48a834f27bcd97cbd, O_RDWR) failed: No such file or directory (2) in d:\\webdesign\\webroot\\inkfishave\\login.php on line 2

Warning: Session object destruction failed in d:\\webdesign\\webroot\\inkfishave\\login.php on line 22

Warning: Cannot add header information - headers already sent by (output started at d:\\webdesign\\webroot\\inkfishave\\login.php:2) in d:\\webdesign\\webroot\\inkfishave\\login.php on line 23

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

## #7 — dectgap, 2002-10-17T18:34Z

Jag har aldrig använt sessions, men för att registrera "username" som en session måste du ju även ha satt något värde på "username" (samma sak med "password"); var gör du det?

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

## #8 — inkfish, 2002-10-17T19:03Z

Dom får värden genom formuläret på en annan sida, sen skickar formuläret en till login.php.

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

## #9 — inkfish, 2002-10-17T19:25Z

Jag blir galen! Får aldrig login script att fungera! När jag försöker logga in först så skickas jag bara tillbaka till index.php fast jag skriver in rätt login och lösen, sen om jag försöker logga in igen så kommer bara de felmedelandena jag skrev innan. 

\=(

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

## #10 — Matte, 2002-10-17T19:29Z

I din php.ini bör det nu stå: **session.save_path = /tmp**

Felmeddelandet säger att denna katalog ('/tmp') inte existerar. Skapa den eller byt till en befintlig katalog.
Glöm inte att katalogen måste ha skrivrättigheter.

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

## #11 — inkfish, 2002-10-17T19:51Z

Var ska jag skapa den katalogen da?
Jag använder windows.

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

## #12 — Matte, 2002-10-17T19:57Z

På samma enhet som du har php-skriptet.

Om den ligger på c: så blir det c:\\tmp

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

## #13 — inkfish, 2002-10-17T20:08Z

varför ska jag behöva göra en sådan mapp??

Det funkade inte när jag gjort denna mapp heller. Asså när ni kollar på koden, ser ni något fel med den?
jag fattar inte.

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

## #14 — Matte, 2002-10-17T20:14Z

Ditt felmeddelande löd:

> Warning: open(/tmp\\sess_3fbcda669fb6b9f48a834f27bcd97cbd, O_RDWR) failed: No such file or directory (2) in d:\\webdesign\\webroot\\inkfishave\\login.php on line 2

 
I php.ini ställer man in vilken katalog som sessionerna ska lagras i. 
Och som jag tolkar felmeddelandet (jag kan ha fel), så försöker PHP lägga sessionen i katalogen /tmp, men hittar ingen sådan katalog.

Då ligger valet på dig om du vill ändra i php.ini till en katalog som finns på disken, eller om du istället skapar katalogen /tmp.

I vilket fall måste katalogen ha skrivrättigheter.

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

## #15 — Matte, 2002-10-17T20:17Z

Fast du kanske istället får skriva i din php.ini:

session.save_path = c:\\tmp

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

## #16 — inkfish, 2002-10-17T20:17Z

login.php ligger i ../inkfishave/login.php
om jag bara skapar en mapp: ../inkfishave/tmp/
Får den skrivarrättigheter då direkt? Eller hur ger jag den deT? =)
Jag har sidan lokalt nu alltså, inte på någon server.

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

---

Tråden på webben: https://www.webforum.nu/amne/php/56255-användarlogin-i-php
