hjælp til php/login
hey.jeg er igang med at lave en database i php/mysql, men har dog fået et problem med at få login-delen til at virke.
Jeg har lavet databasen og kan oprette en brugere, men har en del problemer med at få login til at virke, blandt andet kan jeg se de sider der ellers kunm skulle kunne se af brugere der er logget ind, hvis jeg bare skriver url'en til den gældende side, hvilket man netop ikke skulle kunne se.
her er min kode til login:
<?
ob_start();
require_once($_SERVER['DOCUMENT_ROOT'].'/db_connect.php');
if(isset($_SESSION['username']) && isset($_SESSION['password'])) {
//REDIRECT TO USERS PROFILE...
header("Location: haps.php");
} //end if logged in
//IF SUBMIT BUTTON PRESSED
if(isset($_POST['submit'])) {
if(!$_POST['username']) die("Error: You must enter your username before logging in.");
if(!$_POST['password']) die("Error: You must enter your password before logging in.");
//set cookie if checked
if(!empty($_POST['stay_in'])) {
$joined =''.$_POST['username'].'[]'.md5($_POST['password']).'';
setcookie('login_cookie', $joined, 2147483647, '/', 'haps.php');
} //end if
//verify user...
$get_user = mysql_query("SELECT * FROM `members` WHERE username = '".$_POST['username']."' AND
user_password = '".md5($_POST['password'])."'");
$q = mysql_fetch_object($get_user);
if(!$q) die("Login Failure: An error occured, please verify your username and password are correct.");
$_SESSION['user_id'] = $q->id;
//set session variables
$_SESSION['logged_in'] = 1;
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
session_write_close();
header("Location: haps.php");
} else {
//show login form
?>
<form name="login" method="post" action="<? $_SERVER['PHP_SELF']; ?>">
<table width="150" height="143">
<tr>
<td>Username:<input type="text" id="username" name="username"></td>
</tr>
<tr>
<td>Password:<input type="password" id="password" name="password"></td>
</tr>
<tr>
<td><input type="submit" value="Submit" name="submit" id="submit"></td>
</tr>
<tr>
<td>Remember? <input type="checkbox" name="stay_in[]" checked="yes"></td>
</tr>
</table>
</form>
<?
}//end else
?>
<table width="168" height="65" border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="12"> </td>
<td width="363" align="center" valign="middle"><a href="register.php">Ny Bruger? Registrer nu</a></td>
<td width="11"> </td>
</tr>
</table>
</body>
</html>
og her er så koden til den side der kun skulle kunne se af brugere der er logget på ....
<?
ob_start();
session_start();
require_once($_SERVER['DOCUMENT_ROOT'].'/db_connect.php');
//check cookie
if ($_SESSION['logged_in'] != 1 && isset($_COOKIE['login_cookie'])) {
list($user, $pass) = explode('[]', $_COOKIE['login_cookie']);
$qu = mysql_query("SELECT `user_password` FROM `members` WHERE `username` = '".addslashes($user)."'");
if (mysql_num_rows($qu) == 1) {
$passw = mysql_fetch_object($qu);
if ($passw->user_password == $pass) {
$_SESSION['logged_in'] = 1;
$_SESSION['username'] = $user;
$_SESSION['password'] = $pass;
}
}
}
if(!isset($_SESSION['username']) && !isset($_SESSION['password'])) {
$_SESSION['logged_in'] = 0;
$user = "Guest";
}
?>
<style type="text/css">
<!--
body,td,th {
color: #FFFFFF;
}
body {
background-color: #000000;
}
-->
</style><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="middle"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="800" height="600">
<param name="movie" value="preloader_2.swf">
<param name="quality" value="high">
<embed src="preloader_2.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="800" height="600"></embed>
</object></td>
</tr>
</table>
<p><a href="profil.php"> Vis Profil</a> </p>
<p><a href="logout.php">Log ud</a></p>
<p> </p>
håber der er en der kan hjælpe...
mange tak ...
