lördag 19 november 2011

Skapa en Logga In funktion i PHP

Det jag ska presentera i detta inlägg är ett sätt att skapa en "logga in" funktion på en sida!

Det kommer vi göra genom att först skapa en "user" tabell i vår databas, med användarnamn och lösenord, och sen ett PHP script för att hämta och validera data.

Då kör vi igång!

Mysql

Gå in i din databas och lägg in följande SQL:
_______________________________________________________________________
--
-- Struktur för tabell `user`
--

CREATE TABLE IF NOT EXISTS `user` (
  `id` int(11) NOT NULL,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `level` int(11) NOT NULL,
  `extra` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

--
-- Data i tabell `user`
--

INSERT INTO `user` (`id`, `username`, `password`, `email`, `level`, `extra`) VALUES
(0, 'admin', 'admin', '', 0, '');

_______________________________________________________________________
Nu har vi skapat ett tabel "user", som har satt username till admin och lösenord till admin.
Som du kan se har jag några fler alternativ, men det är inget vi kommer gå igenom i detta avsnitt.



Vårt inloggningsformulärNu ska vi skapa ett inloggningsformulär, du kan skapa en login.php fil och skriva in följande mellan body:
_______________________________________________________________________

<div style="margin-left:auto; margin-right:auto;">
<div id="login-box">
<H2>Logga in</H2>
Logga in till Kundvårdsystemet<br />
<br />
<div id="login-box-name" style="margin-top:20px;">Email:</div><div id="login-box-field" style="margin-top:20px;">
<form name="form1" method="post" action="process_login.php">
<input name="myusername" class="form-login" title="Username" id="myusername" size="30" maxlength="2048" /></div>
<div id="login-box-name">Lösenord:</div><div id="login-box-field">
<input name="mypassword" type="password" class="form-login" title="Password" id="mypassword" size="30" maxlength="2048" /></div>
<br />
<br />
<br />
<input type="submit" />
</form>
</div>
</div>

_______________________________________________________________________

Så! Nu har vi skapat ett inloggningsformulär, allt som saknas nu är det viktigaste, vår validering.

Validering
Skapa en fil med namnet process_login.php - eller det ni vill
(se då bara till att vårt inloggningsformulär skickar datan till rätt fil)


Skriv in följande:
_______________________________________________________________________
<?php
// db värdnamn.    
$db_host = "localhost";
//användarnamn för MySQL databas
$db_username = ""; 
//Lösenord för MySQL databas
$db_pass = ""; 
//namn för MySQL databas 
$db_name = "";
//Anslutning 
$myConnection = mysqli_connect("$db_host","$db_username","$db_pass", "$db_name") or die ("could not connect to mysql"); 


ob_start();


// Användarnamn och lösenord skickat från vårt formulär
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword'];

// För att förhindra Mysql Injection
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);


$query = mysqli_query($myConnection,
"SELECT username,password FROM user WHERE username='$myusername' and password='$mypassword'") or die (mysqli_error($myConnection));

// Mysql_num_row räknar ROW
$count=mysqli_num_rows($query);
// Om resultatet $myusername och $mypassword finns, så måste det måste vara en rad som hittats

if($count==1){
// Registrerar $myusername, $mypassword och skickar vidare till index.php, det kan du ändra som du vill
session_register("myusername");
session_register("mypassword"); 
header("location:index.php");
}
else {
echo "Fel användarnamn eller lösenord";
}
ob_end_flush();
?>
_______________________________________________________________________

Spara och testa kör ditt inloggningsformulär!




Inga kommentarer:

Skicka en kommentar