webForumDet fria alternativet

Simpelt inloggnings script (MySQL)

2 svar · 281 visningar · startad av monAmour

monAmourMedlem sedan dec. 2002258 inlägg
#1

Nu är det knas med mina script igen..
Här är ett försökt till ett enkelt inloggningsscript för användare,
jag har gjort en mySQL tabell som ser ut enligt följande:

ID
username
password
fornamn
efternamn
email
telefon
forumnamn

Nu vill jag hämta användaren förrutsatt att lösenordet han skriver in stämmer med det som finns i MySQL databasen på samma rad som användarnamnet han anger.

Vad är fel

<?php

//Open connection to MySQL

	if (!($mylink = mysql_connect("192.168.0.1","ordinaryproject","xxxxx")))
	{
		print "<h3>could not connect to database</h3>\n";
		exit;
	}
	mysql_select_db("ordinaryproject");
	
	
	
?>

<html>
<body bgcolor="#ffffff">

<?

$username=$_GET['username'];
$pswd=$_GET['pswd'];

if (isset($username) AND isset($pswd)) {

  $QUERY = "SELECT * FROM users WHERE username='$username'";
  
  $mysql_result = mysql_query($QUERY, $mylink);
  
  
  if(!($mysql_result == "")) {
  
  	while ($row = mysql_fetch_row($mysql_result)) {
  	
  	
  	   $dbUsername = $row[1];
  	   $dbPassword = $row[2];
  	   $dbFornamn = $row[3];
  	   $dbEfternamn = $row[4];
  	   $dbEmail = $row[5];
  	   $dbTelefon = $row[6];
  	   $dbForumnamn = $row[7];
  	   
  	   
  	   	if ($dbPassword == $pswd) {
  	   	
  	   	
  	   		echo("Hey", $dbFornamn $dbEfternamn, "Welcome back!\n");
  	   		
  	   		
  	   	}
  	   	
  	   	
  	   	else if ($dbPassword != $pswd) {
  	   	
  	   	
  	   		echo("You were not logged in\n");
  	   		
  	   		
  	   	}
  	   	
  	   	
  	   	else {
  	   	
  	   		echo("You were not logged in\n";
  	   		
  	   		
  	   	}
  	   	
  	   	
  	  }
  	  
  	}
  	
  	
 }
 
 
 else {
 
 
 ?>
 
 LOGIN PLEASE!<br><br>

<form method="POST" ACTION="login.php">
username: <input type="text" name="username" width="30"><br>
password: <input type="password" name="pswd" width="30"><br>
<br>
<input type="submit" value="LOGIN">

</form>

	
<?

}

mysql_close($mylink);

?>

</body>
</html>
WebslaveMedlem sedan maj 2002647 inlägg
#2
$username=$_GET['username'];
$pswd=$_GET['pswd'];

Ska vara:

$username=$_POST['username'];
$pswd=$_POST['pswd'];

Och när du ska hämta användaen så kan du göra detta istället för att kolla att rätt lösen är till rätt användarnamn:

$sql = "SELECT * FROM tabell WHERE username = '".$_POST['username']."' AND password = '".$_POST['password']."'"
$result = mysql_db_query("din_db","$sql");
if(!($row = mysql_fetch_array($result))){
  // Det som ska hända om fel kombination av user och lösen angetts
}
else{
  // Det som ska hända när rätt kombination har angetts
}

Jag har inte använt din variabelnamn för jag är lat... men det fixar du själv

leifenMedlem sedan juli 200173 inlägg
#3

Du måste dock bestämma dig om användarnamn och lösenord ska vara "case-sensitive" eller inte.

Från Mysql manualen:
"By default, string comparisons are done in case-independent fashion using the current character set".

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)