---
title: "Problem med inloggning php/mysql!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/141873-problem-med-inloggning-php-mysql"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "hagmund"
published: "2006-02-02T10:46:48.000Z"
updated: "2006-02-03T18:00:37.000Z"
replies: 24
views: 740
page: 1
pages: 2
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/141873-problem-med-inloggning-php-mysql"
---

# Problem med inloggning php/mysql!

_Sida 1 av 2._

## #1 — hagmund, 2006-02-02T10:46Z

Hej! Detta blir mitt första inlägg här :-)
Använder följande kod för att logga in:

```
 <?
session_register(nick,losen); 

if(!strlen(trim($nick)) || !strlen(trim($losen)) ) {
echo("Du fyllde inte i login sakerna");
}
else {

$my_id=mysql_connect("localhost","jappjapp","jappjapp");

mysql_select_db("databasen");

$sql = mysql_query("SELECT * FROM users where nick = '$nick'");

if(mysql_query("SELECT * FROM users where nick = '$nick'") )  
{
  if($losen == mysql_result($sql,0,"losen")) 
  { 
//    echo "<br>"; 
//    echo "inloggad som <b>$nick</b> <br><br>"; 
//    echo "<a href='showinfo.php'>Visa Info</a>";
header("location: ../index.html"); // ladda om sidan     
  } 
  else 
  { 
//    echo "<br>"; 
//    echo("FEL.<br>\n<a href=\"login.php\">logga in</a> igen"); 

    $nick= NULL; // töm variablerna
    $losen = NULL;

    session_unregister("nick,losen"); // avregistrera 
    session_destroy(); // döda sessionen

 header("location: ../index.html"); // ladda om sidan

  } 
} 
  else 
{ 
  echo "<br>"; 
  echo("FEL.<br>\n<a href=\"login.php\">logga in</a> igen");  

} 

}

mysql_close($my_id);

?>
```

 

Men jag får följande felmeddelande när jag försöker logga in:
**Du fyllde inte i login sakerna
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/hagman2/public_html/tjockis.se/login/login.php on line 52**

Vad kan vara fel tror ni? tack som tusan på förhand :-)

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

## #2 — henke, 2006-02-02T11:05Z

Välkommen till webForum!

Fungerar anslutningen till databasen korrekt? Du kan testa det m h a följande kodsnutt som är hämtad från php-manualen:

```php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
   die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
```

Annars är det inte nödvändigt att ange en s k link identifier för mysql_close. Saknas den stängs helt enkelt den senast öppnade anslutningen.

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

## #3 — hagmund, 2006-02-02T11:20Z

Anslutningen till databsen fungerar korrekt!
Testade med kodsnutten du bifogade också!
Något annat man kan testa?
Tack för hjälpen och välkomnandet! :-)

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

## #4 — Kent.J, 2006-02-02T12:15Z

Du har glömt citat-tecknerna på  "session_register(nick,losen); "

Och att du kör mysql_close längst ner även när du inte öppnat anslutningen till databasen. Flytta upp den raden till rätt else-klasul

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

## #5 — hagmund, 2006-02-02T12:49Z

> **Kent.J skrev:**
>
> Du har glömt citat-tecknerna på  "session_register(nick,losen); "
> 
> Och att du kör mysql_close längst ner även när du inte öppnat anslutningen till databasen. Flytta upp den raden till rätt else-klasul

Hej och tack för svar. Hjälpte inte med session_register('nick','losen');
ej heller att flytta mysq_close!
Får samma felmeddelande ändå.

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

## #6 — aasah, 2006-02-02T16:01Z

Du kollar resultatet på fel sätt. Byt ut:

```php
$sql = mysql_query("SELECT * FROM users where nick = '$nick'");

if(mysql_query("SELECT * FROM users where nick = '$nick'") )  
{
  if($losen == mysql_result($sql,0,"losen")) 
  { 
//    echo "<br>"; 
//    echo "inloggad som <b>$nick</b> <br><br>"; 
//    echo "<a href='showinfo.php'>Visa Info</a>";
header("location: ../index.html"); // ladda om sidan
```

mot

```php
$sql = "SELECT * FROM users where nick = '$nick'";
$res = mysql_query($sql) or die("Felaktig fråga"); 
if ($userInfo=mysql_fetch_array($res)) {
  if($losen == $userInfo['pass']) {//Om lösenordskolumnen heter pass i db:n 
//    echo "<br>"; 
//    echo "inloggad som <b>$nick</b> <br><br>"; 
//    echo "<a href='showinfo.php'>Visa Info</a>";
header("location: ../index.html"); // ladda om sidan
```

Obs dock att du antingen kan skriva ut eller skicka vidare.

Edit: La till Måsvingen som var på utflykt... se Compusas svar längre ner...

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

## #7 — hagmund, 2006-02-02T19:11Z

aasah:
Testade att byta ut koden med den du skickade.
Då får jag ett annat felmeddelande istället:
Parse error: parse error, unexpected T_ELSE in /home/hagman2/public_html/tjockis.se/login/login.php on line 39

o line 39 är det bara en else.

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

## #8 — Compusa, 2006-02-02T19:27Z

Det saknades en måsvinge i det som aasah skrev

```php
 $sql = "SELECT * FROM users where nick = '$nick'";
$res = mysql_query($sql) or die("Felaktig fråga");
if ($userInfo=mysql_fetch_array($res)) {
  if($losen == $userInfo['pass']) { //HÄR SAKNADES EN MÅSVINGE
//    echo "<br>";
//    echo "inloggad som <b>$nick</b> <br><br>";
//    echo "<a href='showinfo.php'>Visa Info</a>";
header("location: ../index.html"); // ladda om sidan
```

Sedan underlättar det om du postar en uppdaterad revision av koden när ändringar har gjorts.

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

## #9 — aasah, 2006-02-02T19:28Z

> **hagmund skrev:**
>
> aasah:
> Testade att byta ut koden med den du skickade.
> Då får jag ett annat felmeddelande istället:
> Parse error: parse error, unexpected T_ELSE in /home/hagman2/public_html/tjockis.se/login/login.php on line 39
> 
> o line 39 är det bara en else.

Att du får ett annat fel beror på att det ursprungliga är löst. :)

Vilken rad är rad 39? Skicka med lite kod före och efter med rad 39 makerad. Och posta koden innanför php-taggar, dvs mellan \[ PHP\] och . (Fast utan mellanslag mellan \[ och p.)

Såvida inte Compusas svar ovan löste problemet! Ursäkta! Jag tappade tydligen en måsvinge på vägen... Har stoppat in den ovan.

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

## #10 — hagmund, 2006-02-02T21:04Z

Hallå hallå, ni är verkligen grymt snälla som hjälper en nybörjare som mig med detta :-)

Den uppdaterade koden jag kör med nu är:

```php
<?
session_register(nick,losen); 

if(!strlen(trim($nick)) || !strlen(trim($losen)) ) {
echo("Du fyllde inte i login sakerna");
}
else {

$my_id=mysql_connect("localhost","hemlis","hemlis");

mysql_select_db("databasen");

 $sql = "SELECT * FROM users where nick = '$nick'";
$res = mysql_query($sql) or die("Felaktig fråga");
if ($userInfo=mysql_fetch_array($res)) {
  if($losen == $userInfo['losen']) { //HÄR SAKNADES EN MÅSVINGE
//    echo "<br>";
//    echo "inloggad som <b>$nick</b> <br><br>";
//    echo "<a href='showinfo.php'>Visa Info</a>";
header("location: ../index.html"); // ladda om sidan

  } 
  else 
  { 
//    echo "<br>"; 
//    echo("FEL.<br>\n<a href=\"login.php\">logga in</a> igen"); 

    $nick= NULL; // töm variablerna
    $losen = NULL;

    session_unregister("nick,losen"); // avregistrera 
    session_destroy(); // döda sessionen

 header("location: ../index.html"); // ladda om sidan

  } 
} 
  else 
{ 
  echo "<br>"; 
  echo("FEL.<br>\n<a href=\"login.php\">logga in</a> igen");  

} 

}

mysql_close($my_id);

?>
```

 

Nu är dock det gamla felmeddelandet tillbaka:
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/hagman2/public_html/tjockis.se/login/login.php on line 50

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

## #11 — Compusa, 2006-02-02T21:40Z

Glöm det, ska kolla upp det..

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

## #12 — hagmund, 2006-02-02T21:43Z

samma felmeddelande igen :(

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

## #13 — Compusa, 2006-02-02T21:49Z

Nu har jag indenterat din kod och lagt till en koll ifall du lyckas skapa en anslutning eller inte. Ett annat fel var att din kod också försökt stänga databasen även om du aldrig anslöt mot dent. Ett tips är att läsa på lite om indentering, det blir mycket enklare att göra rätt då och hitta fel :)

Observera att det fortfarande finns en del brister i koden, du stänger inte alltid anslutningen mot databasen, kolla dina conditions så ser du nog.

Testa detta och återkom med eventuella felmeddelanden.

```php
<?
session_register(nick,losen);

if(!strlen(trim($nick)) || !strlen(trim($losen)) ) {
    echo("Du fyllde inte i login sakerna");
}
else {
    $my_id = mysql_connect ("localhost","hemlis","hemlis")
        or die ("Could not connect");
    print ("Connected successfully");
    
    mysql_select_db("databasen");
    $sql = "SELECT * FROM users where nick = '$nick'";
    $res = mysql_query($sql) or die("Felaktig fråga");
    if ($userInfo=mysql_fetch_array($res)) {
        if($losen == $userInfo['losen']) { //HÄR SAKNADES EN MÅSVINGE
            // echo "<br>";
            // echo "inloggad som <b>$nick</b> <br><br>";
            // echo "<a href='showinfo.php'>Visa Info</a>";
            header("location: ../index.html"); // ladda om sidan
        }
        else {
        	// echo "<br>";
            // echo("FEL.<br>\n<a href=\"login.php\">logga in</a> igen");
            $nick= NULL; // töm variablerna
            $losen = NULL;
            session_unregister("nick,losen"); // avregistrera
            session_destroy(); // döda sessionen
            header("location: ../index.html"); // ladda om sidan
        }
    }
    else {
        echo "<br>";
        echo("FEL.<br>\n<a href=\"login.php\">logga in</a> igen");  
    }
    mysql_close($my_id);
}
?>
```

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

## #14 — aasah, 2006-02-02T22:44Z

> **Compusa skrev:**
>
> ... Ett annat fel var att din kod också försökt stänga databasen även om du aldrig anslöt mot dent. ...
> 
> Observera att det fortfarande finns en del brister i koden, du stänger inte alltid anslutningen mot databasen, kolla dina conditions så ser du nog.

Du behöver å andra sidan inte stänga databasanslutningen överhuvudtaget. Den stängs ändå med automatik när skriptet kört klart. Så du kan ta bort mysql_close helt om du vill.

> **hagmund skrev:**
>
> Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/hagman2/public_html/tjockis.se/login/login.php on line 50

 Vilken rad är nr 50?

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

## #15 — Compusa, 2006-02-02T22:51Z

> **aasah skrev:**
>
> Du behöver å andra sidan inte stänga databasanslutningen överhuvudtaget. Den stängs ändå med automatik när skriptet kört klart. Så du kan ta bort mysql_close helt om du vill.

Visst är det så att php:s skräphanterare göra detta, men jag skulle ändå rekommendera att man alltid strukturerar sin kod så att man enkelt kan stänga anslutningen manuellt, när man inte längre behöver använda den.

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

## #16 — aasah, 2006-02-02T22:56Z

> **Compusa skrev:**
>
> Visst är det så att php:s skräphanterare göra detta, men jag skulle ändå rekommendera att man alltid strukturerar sin kod så att man stänger anslutningen manuellt, när man inte längre behöver använda den.

Varför? Det är ju ingen skillnad?   :q

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

## #17 — Compusa, 2006-02-02T23:02Z

Därför ;)

> Although this isn't strictly speaking necessary, PHP will automatically close the connection when the script ends, you should get into the habit of closing what you open. If you start developing more serious applications, or move to other, less tolerant languages, you will find the transition more difficult if you haven't learnt the basics well from the beginning.

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

## #18 — hagmund, 2006-02-03T08:38Z

> **Compusa skrev:**
>
> Nu har jag indenterat din kod och lagt till en koll ifall du lyckas skapa en anslutning eller inte. Ett annat fel var att din kod också försökt stänga databasen även om du aldrig anslöt mot dent. Ett tips är att läsa på lite om indentering, det blir mycket enklare att göra rätt då och hitta fel :)
> 
> Observera att det fortfarande finns en del brister i koden, du stänger inte alltid anslutningen mot databasen, kolla dina conditions så ser du nog.

Hallå igen!
Körde nu med koden du skrev här och nu får jag endast: **Du fyllde inte i login sakerna.** som felmeddelande.

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

## #19 — aasah, 2006-02-03T09:37Z

> **hagmund skrev:**
>
> Hallå igen!
> Körde nu med koden du skrev här och nu får jag endast: **Du fyllde inte i login sakerna.** som felmeddelande.

Det betyder att koden fungerar, för det är ju ditt valda felmeddelande. :)

Om du fyllde i saker så det borde funkat, betyder det ett strul i kopplingen mellan inloggningssidan och denna. Hur ser din formulärsida ut egentligen?   :q Lagrar du någonsin formulärdata i sessions? Vad har du för version av PHP?

**Compusa** 

> Although this isn't strictly speaking necessary, PHP will automatically close the connection when the script ends, you should get into the habit of closing what you open. If you start developing more serious applications, **or move to other, less tolerant languages,** you will find the transition more difficult if you haven't learnt the basics well from the beginning.

(Min fetstil.) Det här är ju direkt larvigt. Det är ju som att försöka allokera minne i Java därför att det behövs om man kör C...  :OO (Bortsett ifrån att Java saknar metoder för det.) Varje språk har ju sina egna begränsningar och höjdpunkter.

Om man nu håller på med en applikation med så många samtidiga anslutningar att man slår i taket och måste stänga anslutningen så snart det bara går, så är det naturligtvis en annan sak. Men för att det ska vara någon vits måste anslutningen då stängas före det sista skriptet gör. Behovet av detta borde dock inte tillhöra vanligheterna.

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

## #20 — henke, 2006-02-03T11:16Z

Håller med Compusa, man bör tveklöst stänga databasanslutning. Inte för att man måste utan för att det hör till bra och snygg programmering att göra det.

hagmund, en liten detalj att ha i åtanke. För säkerhets skull är det bra om man kör exit efter en redirect. Från php-manualen:

```php
<?php
header("Location: http://www.example.com/"); /* Redirect browser */

/* Make sure that code below does not get executed when we redirect. */
exit;
?>
```

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

---

Tråden på webben: https://www.webforum.nu/amne/php/141873-problem-med-inloggning-php-mysql  
Nästa sida: https://www.webforum.nu/amne/php/141873-problem-med-inloggning-php-mysql/page2.md
