---
title: "Login"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/16326-login"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "noratx"
published: "2001-11-16T11:17:00.000Z"
updated: "2001-11-17T13:46:00.000Z"
replies: 17
views: 895
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/16326-login"
---

# Login

## #1 — noratx, 2001-11-16T11:17Z

Hejsan!
Jag har ett litet problem med ett login script..
Jag har försökt med detta på lite olika sätt.
Vid en lyckad inloggning så skall man komma till base.php (vilket lyckas utan problem).
Men om man anger fel pass och anv.namn så skall en liten javapopup titta fram och berätta vad man har gjort för fel och backa ett steg.
Den java jag använder i denna kod funkar utmärkt i en annan kod.. så javan är det inget fel på...
Jag får den helt enkelt bara inte att fungera!

Finns det någon som har något råd?
Här är koden till sidan som kollar så att anv.namn och lösen är rätt.

```
<?
$link = mysql_connect("localhost", "xxxxx", "xxxxx") or die(mysql_error());
mysql_select_db("webdb", $link) or die(mysql_error());
function error_message($mess){
        echo "<script>alert(\"".$mess."\"); history.go(-1);</script>";
}

$result = mysql_query("SELECT 1 FROM user where username ='$username' and password = '$password'", $link) or die(mysql_error());
$num_rows = mysql_num_rows($result) or die(mysql_error());
if ( $num_rows != 0 ) {
header("Location: base.php");
} else {
header(error_message("Fel användarnamn eller lösenord! Försök igen));
exit;
}
?>
```

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

## #2 — Kim, 2001-11-16T11:59Z

```
<?
$link = mysql_connect("localhost", "xxxxx", "xxxxx") or die(mysql_error());
mysql_select_db("webdb", $link) or die(mysql_error());
function error_message($mess){
echo "<script>alert(\"".$mess."\"); history.go(-1);</script>";
}
$result = mysql_query("SELECT * FROM user where username ='$username' and password = '$password'", $link) or die(mysql_error());
$num_rows = mysql_num_rows($result) or die(mysql_error());
if ( $num_rows >= 0 ) {
header("Location: base.php");
} else {
header(error_message("Fel användarnamn eller lösenord! Försök igen));
exit;
}
?>
```

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

## #3 — HDJHSKGDKJHSD, 2001-11-16T12:00Z

header(error_message("Fel användarnamn eller lösenord! Försök igen));

Saknas det inte ett ", där?

header(error_message("Fel användarnamn eller lösenord! Försök igen"));

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

## #4 — noratx, 2001-11-16T12:04Z

ajdå..

situations tecknet (eller dubbelfnutt som det åxå kallas) finns med i koden på sidan, den råkade av någon anledning falla bort i inlägget.

som sagt, det funkar inte...

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

## #5 — LarsG, 2001-11-16T12:14Z

Tag bort or die vid anropet till mysql_numrows

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

Om det inte finns någon post så returneras 0 dvs false och därmed anropas die (med en tom sträng eftersom det inte varit något fel.)

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

## #6 — noratx, 2001-11-16T12:19Z

Det vart farligt att göra det!
Gå kommer folk in på den sidan som jag skyddar med lösenordet även fast dom inte har rätt lösen och anv.namn!

Jag provade å kladda dit ett par texken i loginfälten och kom in utan problem på den skyddade sidan...

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

## #7 — noratx, 2001-11-16T12:24Z

vetefan vad jag hadde gjort för fel...
efter att jag laddat om sidan (ytterligare en gång) så funkade det som det skulle...  =)

En fråga till nu bara..
Jag vill dela upp felmeddelandet på tå raden...

är det:

```
header(error_message("Fel användarnamn eller lösenord! /n Försök igen"));
```

eller?
För det funkar nämligen inte..

R: stavfel..  ;)

\[Redigerat av noratx den 16 nov 2001\]

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

## #8 — Kim, 2001-11-16T12:30Z

```
header(error_message("Fel användarnamn eller lösenord! \n Försök igen"));
```

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

## #9 — noratx, 2001-11-16T12:52Z

det verkar vara fel...

Warning: Cannot add header information - headers already sent by (output started at /home/thepage/public_html/beta/do_login.php:5) in /home/thepage/public_html/beta/do_login.php on line 13

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

## #10 — cmk, 2001-11-16T13:20Z

Kolla så att ingen data redan har skickats över till klienten, brukar vara en radbrytning :e

/M

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

## #11 — noratx, 2001-11-16T13:25Z

inga radbrytningar eller sånt skickat..
funkar ändå inte...  :(

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

## #12 — cmk, 2001-11-16T13:37Z

Längst upp i koden som du skickade in först så ser jag något som ser ut som en radbrytning, alltså precis innan '\<?', finns det med i din vanliga kod så ta bort den =)

/M

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

## #13 — noratx, 2001-11-16T13:47Z

jo jo..
Här i forumet....
Men det finns inte med i koden i övrigt... ;)
TIlläg:
Visserligen så har jag ju även med en mailadress i fel meddelandet.. kan det har någet med saken att göra?
utan \\n funkar det perfekt med mailadressen som den är..  
är det så att jag måste lägag till någet tecken före/efter @ för att det skall funka?

\[Redigerat av noratx den 16 nov 2001\]

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

## #14 — noratx, 2001-11-17T02:33Z

Ok..  ytterligare ett problem..
borde ha kollat detta tidigare!

När jag nu frösöker logga in med RÄTT användarnamn och password, så funkar det inte...
Hur jag än gör så får jag upp felmeddelandet...
någon som kan se någet fel i koden som kan få detta att hända??

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

## #15 — spango, 2001-11-17T02:49Z

header(error_message("Fel användarnamn eller lösenord! \\n Försök igen"));

Två fel:
1) HTTP-headers får inte innehålla radbrytningar, eftersom olika headers separeras med just newline.
2) Du försöker skicka en javascript-snutt som en HTTP-header...

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

## #16 — noratx, 2001-11-17T02:56Z

Tack spango....

Det där med radbrytningen har jag tatt bort å skitit i...
Det sotora problemet nu är ju att oavsett om jag loggar in med rätt lösen å anv.namn så får jag upp felmeddelandet... är det just för att jag skickar java i http headern?
Hur fixar man då till det?
eller blir det helt enkelt så att jag MÅSTE skita i felmeddelandet??
RED:
Om det nu är så att jag måste skita i scriptet så har jag då altså en fil som heter loginerr.php där det står typ, "fel anv.namn och lösenord. Försök igen".
Men nu är det ju så... att i login formuläret så är target pekad mot \_top (som ju skriver över hela fönstret)
Om det nu visar sig vara fel lögin å pass.. hur gör jag då så att target pekar mot base\_ (som är namnet på ramen jag vill att felmeddelandet skall hamna i.)

\[Redigerat av noratx den 17 nov 2001\]

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

## #17 — Phelps, 2001-11-17T13:27Z

Så här gjorde jag mitt login (mitt första och enda hittils så det är väl inte så optimalt men det kanske hjälper dig :)

```
<?php
//kolla ifall rätt användarnamn och lösenord har skrivits in
if ($submit) 	{
		//define variables
		$membername=$name;
		$memberpass=$password;

		//connect to database
		$dbuser="dbuser";
		$dbpass="dbpass";

		$connection=mysql_connect("localhost",$dbuser,$dbpass);

		//database to use
		$db="database";

		//select database
		mysql_select_db($db,$connection);

		//formulate query
		$sql="SELECT * FROM nopmembers WHERE membername='$membername' AND memberpass='$memberpass'";

		//run query
		$result=mysql_query($sql);

		// define cookie value variable
		$value=mysql_fetch_array($result);
		
		//check if matching name and password is found
		$num=mysql_numrows($result); 

			if($num != "0") {
				setcookie("logged",$value['memberid'],time()+3600);

				//send user forward if everything is ok
				header("location:memberindex.php");
				exit;

				} else { //or display error message
				echo "<h1>Invalid username or password!</h1>";
				} // end else
		} //end if
	
?>

<html>
<head>
<title>Member log in</title>
</head>

<body>
<table align="center" width="60%">
<form method="post" action="<?php echo $PHP_SELF ?>">
	<tr valign="top" align="center">
		<td>Name</td><td>Password</td>
	</tr>
	<tr valign="top" align="center">
	<td><input type="text" name="name"></td>
	<td><input type="password" name="password">
	<input type="submit" name="submit" value="submit"></td>
	</tr>
</form>
</table>
</body>
</html>
```

De tester jag har utfört så fungerar det utmärkt, hur säkert det är ifs har jag lite dålig koll på...

\[Redigerat av Phelps den 17 nov 2001\]

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

## #18 — noratx, 2001-11-17T13:46Z

Tackar.. jag skall testa det strax så får vi se hur pass bra det funkar! =)

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

---

Tråden på webben: https://www.webforum.nu/amne/php/16326-login
