---
title: "Felaktigt användarnamn eller lösenord."
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/47115-felaktigt-användarnamn-eller-lösenord"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "Zir Tiger"
published: "2002-07-03T11:04:47.000Z"
updated: "2002-07-04T09:54:21.000Z"
replies: 6
views: 429
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/47115-felaktigt-användarnamn-eller-lösenord"
---

# Felaktigt användarnamn eller lösenord.

## #1 — Zir Tiger, 2002-07-03T11:04Z

Om jag har ett inloggningsscript som ser ut på följande sätt:

```php
<?php
	
	if(isset($mail) && isset($pass)){
		$sql="SELECT mail, pass, id, active FROM register";
	$result=mysql_query($sql);
		while($row = mysql_fetch_array($result)){
		$tom = $row["mail"];
		$ma = $row["pass"];
			if(strtolower($mail) == strtolower($tom) && strtolower($pass) == strtolower($ma)){
			if($row["active"] == "ja"){
			$komin = $row["id"];
session_register("komin");
			echo "<meta http-equiv=refresh content=\"0; url=login.php\">";
			
			}
			else {echo "Din användare finns men är inte aktiv än.";}
			}
		else{echo"<br> Du har angivit felaktig mail eller lösenord.";}
		}
		}?>
```

(Denna kod ser inte ut exakt som den jag använder för jag har gjort några små ändringar.) 

I alla fall så blir det såhär: Om någon skriver in felaktigt så skriver sidan ut ett felmeddelande för VARJE användare som den kollar upp. Jag vill att den ska skriva ut ett om den inte hittar rätt person i basen. Samt så skriver den ut (om den hittar rätt) felmeddelanden för alla som är framför den personen i registret. Så även om man loggas in så hinner man se 4-5 "Du har angivit felaktigt..." Vilket är mäkta irriterande.

Ni får hemskt gärna optimera min kod också eftersom jag inte brukar var så bra på det. =)

Tack tack.

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

## #2 — UrMe, 2002-07-03T11:24Z

Skippa while loopen och skriv endast:

```
$row = mysql_fetch_array($result);
```

eftersom jag antar att det bara kan vara en användare som har samma lösen/login. Och så kollar du om han hittade 1 användare eller 0 användare med 

```
$num_rows = mysql_num_rows($result);
```

om det är en 0:a så fanns det ingen sådan användare.. om det är en 1:a så fanns det ju en. då är det bara göra en if-sats för att kolla det.

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

## #3 — Zir Tiger, 2002-07-03T15:14Z

Thank you. It worked fine. Är det här ett relativt säkert login system? 

```php
<?php
	
	if(isset($mail) && isset($pass)){
		$sql="SELECT mail, pass, id, active FROM register WHERE mail=\"$mail\"";
	$result=mysql_query($sql);
		$row = mysql_fetch_array($result);
		$num_rows = mysql_num_rows($result);
			if($num_rows == 1 && $row["active"] !== "nej" && $pass == $row["pass"]){
			$komin = $row["id"];
session_register("komin");
			echo "<meta http-equiv=refresh content=\"0; url=login.php\">";
			}
			elseif($num_rows == 1 && $row["active"] == "nej"){echo "Din användare finns men är inte aktiv än.";}
					else{echo"Du har angivit felaktig mail eller lösenord.";}
				}?>
```

 

Det funkar iaf precis som det ska.
Än så länge. Men om någon hittar en säkerhetsbrist så kan ni ju säga till. =)

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

## #4 — Patrik81, 2002-07-03T19:41Z

Det där med sql-injections och att ändra ' till " tycker jag mig inte se här någonstans... borde det inte kunna bli ett potentiellt säkerhetshål?

Fast jag är ju inte så jättebra på php än jag heller... men kanske någon kunnigare kan rycka in å antingen klappa mig på huvet eller slå mig på fingrarna ;)

MVH Patrik

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

## #5 — Zir Tiger, 2002-07-03T21:07Z

Jo.. Jag har ingen aning så jag hoppas väl på att nån annan kan rycka in och antingen säga om du har rätt eller fel.. =) Det MÅSTE nämligen vara säkert..

Någon?

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

## #6 — nkrantz, 2002-07-04T08:59Z

Jag tycker att det ser ok ut, har iofs aldrig arbetat med PHP sessions.. en sak jag tänkte på var bara att det att 

```php
if(isset($mail) && isset($pass))
```

kanske borde vara så här iställer:

```php
if(isset($_POST['mail']) && isset($_POST['pass']))
```

För att göra det stabilare i framtida versioner av PHP...

// Nippe

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

## #7 — Mungo, 2002-07-04T09:54Z

Säkert och säkert... Riktigt säkert blir det ju aldrig. Men rätt säkert lär det bli om du dessutom kollar ordentligt på varje sida efter sessionen. Sessionen i sig är ju cookie-baserad så det är ju inte världens svåraste att gå runt om man \_verkligen\_ vill, men det är väl inte intranätet för CIA du kodar hoppas jag? :)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/47115-felaktigt-användarnamn-eller-lösenord
