fa74b4a4-8b2c Skrevet 9. mai 2008 Del Skrevet 9. mai 2008 (endret) 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 <?phpob_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 10. mai 2008 av J0nny Lenke til kommentar
Dryper Skrevet 9. mai 2008 Del Skrevet 9. mai 2008 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 <?phpob_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 Lenke til kommentar
fa74b4a4-8b2c Skrevet 9. mai 2008 Forfatter Del Skrevet 9. mai 2008 Takk for det, skal teste det ut... Er helt ny innen PHP. Hvis du synes dette var tungvindt og har en bedre løsning så er jeg mottakelig for nye forslag Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå