Avatar billede goddammit Nybegynder
15. december 2005 - 11:52 Der er 1 kommentar

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">&nbsp;</td>
    <td width="363" align="center" valign="middle"><a href="register.php">Ny Bruger? Registrer nu</a></td>
    <td width="11">&nbsp;</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>&nbsp;</p>



håber der er en der kan hjælpe...

mange tak ...
Avatar billede jakobdo Ekspert
15. december 2005 - 21:55 #1
Til at starte med, så er det en god ide efter en header(); at skrive: exit();
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester