Fout tijdens session denk ik

Status
Niet open voor verdere reacties.

jura1993

Gebruiker
Lid geworden
5 aug 2010
Berichten
46
Hoi iedereen,
Ik zit met een probleem, ik heb een website gemaakt waar je kan inloggen. Gebruikers worden netjes uit de database opgehaald.
Als je inlogt wordt username in session opgeslagen om later laten zien "U BENT INGELOGD ALS ...", en daar loop ik tegen aan.
Als ik inlog met gebruiker a, en op een andere browser met gebruiker b, dan lukt dat wel, maar als ik naar een andere pagina op site zelf ga, verandert gebruiker a in b.

Hier mijn code<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Dit is index.php (inlog pagina)
PHP:
<?php
	session_start();
	if(isset($_POST["uitloggen"]))
	{
		header("Location:".$_SERVER["PHP_SELF"]);
	}
	require "conn.php";
	
	if(isset($_POST["inloggen"]))
	{
		$username = $_POST["username"];
		$password = $_POST["password"];
		
		$username = mysql_real_escape_string($username);
		$password = mysql_real_escape_string($password);	
	
		$sql = "SELECT password  FROM `gebruikers`
				WHERE username='$username'";	
				
		$result = mysql_query($sql, $connection) 
			or die ("niet gelukt om de query: 
			$sql uit te voeren op $connection");
		
		if ($rij = mysql_fetch_array($result))
		{
			if($rij["password"] == $password)
			{
				$_SESSION["username"] = $username;
				$_SESSION["password"] = $password;
				

				header("Location: index1.php");
				exit;
			}				
		}
		echo "<script type='text/javascript'>alert('fout wachtwoord of gebruikersnaam probeer het opnieuw')</script>";			
	}
?>
<html>
<head>
  <title>scenic_photo</title>
  <link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
  <div id="main">
    <header>
      <div id="logo">
        <div id="logo_text">
          <h1><a href="index.html">Mijn<span class="logo_colour">_Website</span></a></h1>
          <h2>Bevat nuttige informatie</h2>
        </div>
      </div>
    </header>
    <div id="site_contentmenu">
      <div id="sidebar_container">
        <div class="sidebar">
          <h2>Aanmelden</h2>
			    <form  method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
					<p><h6>Gebruiker ID<input type="text" name="username"></h6>
					<h6>Wachtwoord<input type="text" name="password"></h6></p>
					<input  style="height: 25px; width: 100px" type="submit" value="Aanmelden" name="inloggen">
				</form>
				
        </div>
        <div class="sidebar">
        <a href="registreer.php">Nog geen aacount?</a>
        </div>
      </div>
      <div class="content">
        <h1>Welkom</h1>
      </div>
    </div>
    <footer>
		<p>Copyright &copy; Mijn_Website</p>
    </footer>
  </div>
  <p>&nbsp;</p>
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/jquery.easing-sooper.js"></script>
  <script type="text/javascript" src="js/jquery.sooperfish.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
      $('ul.sf-menu').sooperfish();
    });
  </script>
</body>
</html>

EN DIT IS pagina als je ingelogd bent<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
PHP:
<?php
session_start();
	if(!isset($_SESSION["username"]))
	{
		header("Location: index.php");
	}	

	if(isset($_POST["uitloggen"]))
	{

	unset ($_POST["username"]); 

		header ("Location: index.php");
	}
	

?>
<html>
<head>
  <title>scenic_photo</title>
  <link rel="stylesheet" type="text/css" href="css/style.css" />
</head>
<body>
  <div id="main">
    <header>
       <div id="logo">
        <div id="logo_text">
          <h1><a href="index.html">Mijn<span class="logo_colour">_Website</span></a></h1>
          <h2>Bevat nuttige informatie</h2>
        </div>
      </div>
      <nav>
        <div id="menu_container">
          <ul class="sf-menu" id="nav">
            <li><a href="index1.php">Home</a></li>
            <li><a href="examples.php">Examples</a></li>
            <li><a href="chat.php">Chat</a></li>
            <li><a href="another_page.php">Another Page</a></li>
            <li><a href="#">Example Drop Down</a>
              <ul>
                <li><a href="web.php">Web</a></li>
                <li><a href="#">Drop Down Two</a>
                  <ul>
                    <li><a href="#">Sub Drop Down One</a></li>
                    <li><a href="#">Sub Drop Down Two</a></li>
                    <li><a href="#">Sub Drop Down Three</a></li>
                    <li><a href="#">Sub Drop Down Four</a></li>
                    <li><a href="#">Sub Drop Down Five</a></li>
                  </ul>
                </li>
                <li><a href="#">Drop Down Three</a></li>
                <li><a href="#">Drop Down Four</a></li>
                <li><a href="#">Drop Down Five</a></li>
              </ul>
            </li>
          </ul>
        </div>
      </nav>
    </header>
    <div id="site_content">
      <div id="sidebar_container">
	   <div class="sidebar">
	  <?php
			if(isset($_SESSION["username"]))
			{
				echo "<h2>U bent ingelogd als  </h2> ". $_SESSION["username"];	
			}
			?>
			<form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
				<input style="height: 25px; width: 100px" type="submit" name="uitloggen" value="Uitloggen" id="inloggen"/> 

			</form>
			</div>
        <div class="sidebar">
          <h3>Nieuws</h3>
          <h4>Nieuwe website opgestart</h4>
          <h5>Dinsdag 1 juli 2012</h5>
          <p>Website is in ontwikkeling<br /><a href="#">Lees meer</a></p>
        </div>
        <div class="sidebar">
          <h3>Aanbevolen links</h3>
          <ul>
            <li><a href="#">First Link</a></li>
            <li><a href="#">Another Link</a></li>
            <li><a href="#">And Another</a></li>
            <li><a href="#">One More</a></li>
            <li><a href="#">Last One</a></li>
          </ul>
        </div>
      </div>

	 <!-- class="logo_colour", allows you to change the colour of the text 
      <div class="content">
        <h1>Welkom</h1>
      </div>
	  -->
	  <div class="content">
      </div>
    </div>
    <footer>
      <p>Copyright &copy; Mijn_Website</p>
    </footer>
  </div>
  <p>&nbsp;</p>
  <script type="text/javascript" src="js/jquery.js"></script>
  <script type="text/javascript" src="js/jquery.easing-sooper.js"></script>
  <script type="text/javascript" src="js/jquery.sooperfish.js"></script>
  <script type="text/javascript">
    $(document).ready(function() {
      $('ul.sf-menu').sooperfish();
    });
  </script>
</body>
</html>
 
Dat kan wel kloppen, probeer eens met verschillende browsers die hun cache op verschillende locaties opslaan. Mogelijk worden sessie cookies overschreven. Bekijk ook de headers die worden meegestuurd.

Overigens is er geen enkele reden om "password" op te slaan in sessie en het is zeer onveilig. Ook het gebruik van leesbare passwords in je database is zeer onverstandig.
 
# Offtopic:
if(isset($_POST["uitloggen"]))
{

unset ($_POST["username"]); <==== Dit zorgt niet dat een gebruiker uitgelogd wordt

header ("Location: index.php");
}

Je moet dan de $_SESSION["username"] unset of destroy de hele session
 
dat session unset heb ik pas kort, omdat als ik session destroy doe dan worden alle users uigelogd
 
een session wordt voor een browser aan gemaakt en niet voor een tab.

Het lijkt me dat je op je site maar 1 persoon laat inloggen, dus dan is het niet erg dat de hele sessie vervalt.
Want anders maak je het inloggen niet echt veiliger.

In je Session moet je NOOIT een wachtwoord opslaan ook niet als je doe met een salt en hash hebt behandeld.
Kijk maar eens op youtube bij "men in the middle"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan