Gå til innhold

spørsmål ang. passord/login script


Anbefalte innlegg

Hei, har funnet et login script på nettet, som jeg delvis har endret selv. Jeg har tenkt å bruke scriptet på hjemmesiden min.

Scriptet består av følgende filer:

 

main_login.php:

Klikk for å se/fjerne innholdet nedenfor
<?php

ob_start();

$host="localhost"; // Host name

$username=""; // Mysql username

$password=""; // Mysql password

$db_name=""; // Database name

$tbl_name=""; // Table name

 

// Connect to server and select databse.

mysql_connect("$host", "$username", "$password")or die("cannot connect");

mysql_select_db("$db_name")or die("cannot select DB");

 

// Define $myusername and $mypassword

$myusername=$_POST['myusername'];

$mypassword=$_POST['mypassword'];

 

// encrypt password

$encrypted_mypassword=md5($mypassword);

 

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$encrypted_mypassword'";

$result=mysql_query($sql);

 

// To protect MySQL injection (more detail about MySQL injection)

$myusername = stripslashes($myusername);

$mypassword = stripslashes($mypassword);

$myusername = mysql_real_escape_string($myusername);

$mypassword = mysql_real_escape_string($mypassword);

 

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

 

$login_error = FALSE;

$login_error = "Username and password do not match.";

if($login_error !== FALSE) {

echo $login_error;

}

 

// Mysql_num_row is counting table row

$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

 

 

if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"

session_register("myusername");

session_register("mypassword");

header("location:login_success.php");

}

 

ob_end_flush();

?>

 

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

<tr>

<form name="form1" method="post" action="">

<td>

<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">

<tr>

<td colspan="3"><strong>Member Login </strong></td>

</tr>

<tr>

<td width="78">Username</td>

<td width="6">:</td>

<td width="294"><input name="myusername" type="text" id="myusername"></td>

</tr>

<tr>

<td>Password</td>

<td>:</td>

<td><input name="mypassword" type="password" id="mypassword"></td>

</tr>

<tr>

<td> </td>

<td> </td>

<td><input type="submit" name="Submit" value="Login"></td>

</tr>

</table>

</td>

</form>

</tr>

</table>

login_success.php:

Klikk for å se/fjerne innholdet nedenfor
<?

session_start();

if(!session_is_registered(myusername)){

header("location:main_login.php");

}

 

?>

 

<html>

<body>

Login Successful <?php echo $myusername ?>

<a href="logout.php">log ut</a>

</body>

</html>

logout.php:

Klikk for å se/fjerne innholdet nedenfor
<?

session_start();

session_destroy();

?>

You are now logged out!

Det jeg lurer på er:

1) Hvordan få teksten "Username and password do not match." til kun å vise når brukernavnet/passordet er skrevet inn feil

2) Kan noen hjelpe meg å endre scriptet slik at de som logger på (5stk) ikke kommer til samme siden, men hver sin?

3) Er dette scriptet sikkert, eller er det lett å komme forbi?

 

Tusen takk for all hjelp :)

 

EDIT: Har nå klart å finne et svar på spørsmål nr 1 og 2 ;)

Endret av J0nny
Lenke til kommentar
Videoannonse
Annonse
Hei, har funnet et login script på nettet, som jeg delvis har endret selv. Jeg har tenkt å bruke scriptet på hjemmesiden min.

Scriptet består av følgende filer:

 

main_login.php:

Klikk for å se/fjerne innholdet nedenfor
<?php

ob_start();

$host="localhost"; // Host name

$username=""; // Mysql username

$password=""; // Mysql password

$db_name=""; // Database name

$tbl_name=""; // Table name

 

// Connect to server and select databse.

mysql_connect("$host", "$username", "$password")or die("cannot connect");

mysql_select_db("$db_name")or die("cannot select DB");

 

// Define $myusername and $mypassword

$myusername=$_POST['myusername'];

$mypassword=$_POST['mypassword'];

 

// encrypt password

$encrypted_mypassword=md5($mypassword);

 

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$encrypted_mypassword'";

$result=mysql_query($sql);

 

// To protect MySQL injection (more detail about MySQL injection)

$myusername = stripslashes($myusername);

$mypassword = stripslashes($mypassword);

$myusername = mysql_real_escape_string($myusername);

$mypassword = mysql_real_escape_string($mypassword);

 

$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";

$result=mysql_query($sql);

 

$login_error = FALSE;

$login_error = "Username and password do not match.";

if($login_error !== FALSE) {

echo $login_error;

}

 

// Mysql_num_row is counting table row

$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row

 

 

if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"

session_register("myusername");

session_register("mypassword");

header("location:login_success.php");

}

 

ob_end_flush();

?>

 

<table width="300" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">

<tr>

<form name="form1" method="post" action="">

<td>

<table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">

<tr>

<td colspan="3"><strong>Member Login </strong></td>

</tr>

<tr>

<td width="78">Username</td>

<td width="6">:</td>

<td width="294"><input name="myusername" type="text" id="myusername"></td>

</tr>

<tr>

<td>Password</td>

<td>:</td>

<td><input name="mypassword" type="password" id="mypassword"></td>

</tr>

<tr>

<td> </td>

<td> </td>

<td><input type="submit" name="Submit" value="Login"></td>

</tr>

</table>

</td>

</form>

</tr>

</table>

login_success.php:

Klikk for å se/fjerne innholdet nedenfor
<?

session_start();

if(!session_is_registered(myusername)){

header("location:main_login.php");

}

 

?>

 

<html>

<body>

Login Successful <?php echo $myusername ?>

<a href="logout.php">log ut</a>

</body>

</html>

logout.php:

Klikk for å se/fjerne innholdet nedenfor
<?

session_start();

session_destroy();

?>

You are now logged out!

Det jeg lurer på er:

1) Hvordan få teksten "Username and password do not match." til kun å vise når brukernavnet/passordet er skrevet inn feil

2) Kan noen hjelpe meg å endre scriptet slik at de som logger på (5stk) ikke kommer til samme siden, men hver sin?

3) Er dette scriptet sikkert, eller er det lett å komme forbi?

 

Tusen takk for all hjelp :)

 

 

sette en else etter if i login_sucsessful.php

 

 

else{

echo "Login Wrong, Please try agian";

}

 

nå må jeg si at det var en vanskelig måte å jøre det på da :) men men :p

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...