Ik heb onderstaande code geschreven maar als ik probeer in te loggen gebeurt er niks, maar als ik iets fout invoer krijg ik wel de melding: "Gebruikersnaam of wachtwoord incorrect.".
Wat doe ik fout?
              <?php

              session_start();

              $con = mysql_connect("*****", "*****", "*****") or die('Kan niet verbinden met de server.' );
              mysql_select_db("*****", $con) or die('Kan de database niet selecteren.' );

              $fetchusers = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'");
              $fetchusers = mysql_fetch_assoc($fetchusers);

              if ($_POST['submit'])
              {
                  $username = $_POST['username'];
                  $password = $_POST['password'];
                  $sha1_password = (sha1($password));

                  $check_aantal = mysql_query("Select Count(username) From users Where username = '".mysql_escape_string($username)."' AND sha1_password = '".$sha1_password."'") or die(mysql_error());

                  if (mysql_result($check_aantal, 0))
                  {
                      $_SESSION['id'] = $fetchusers['id'];
                  }
                  else
                  {
                      echo "<br>Gebruikersnaam of wachtwoord incorrect.";
                  }
              }

              if (!isset($_SESSION['ip']))
              {
                  $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
              }
              if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
              {
                  trigger_error("<br>Session Hijacking gedetecteerd!", E_USER_WARNING);
              }

              if (isset($_SESSION['id']))
              {
                  $fetchusers = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'");
                  $fetchusers = mysql_fetch_assoc($fetchusers);

                  echo "<br>Ingelogd als: ".$fetchusers['username'].". | <a href='http://www.robinvandervliet.hostoi.com/myaccount.php?url=".$_SERVER['PHP_SELF']."'>Mijn account</a>. | <a href='http://www.robinvandervliet.hostoi.com/logout.php?url=".$_SERVER['PHP_SELF']."'>Uitloggen</a>.";
              }
              else
              {
                  echo '<form method="post">';
                  echo 'Gebruikersnaam: <input type="text" name="username" size="15"> ';
                  echo 'Wachtwoord: <input type="password" name="password" size="15"> ';
                  echo '<input name="submit" type="submit" value="Inloggen">';
                  echo '</form>';
              }
              ?>
Raad de fout:

Je hebt in je DB het wachtwoord niet geëncrypteerd naar SHA1?
Bram Boos op 10/06/2010 18:07:53

Raad de fout:

Je hebt in je DB het wachtwoord niet geëncrypteerd naar SHA1?


De wachtwoorden staan wel geëncrypteerd in de database.
Bouw nette foutafhandeling in.
Het licht niet aan MYSQL want als ik voordat hij de sessie aanmaakt een echo zet echo't hij het wel, maar hij maakt de variable niet.

              <?php

              session_start();

              $con = mysql_connect("*****", "*****", "*****") or die('Kan niet verbinden met de server.' );
              mysql_select_db("*****", $con) or die('Kan de database niet selecteren.' );

              $fetchusers = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'");
              $fetchusers = mysql_fetch_assoc($fetchusers);

              if ($_POST['submit'])
              {
                  $username = $_POST['username'];
                  $password = $_POST['password'];
                  $sha1_password = (sha1($password));

                  $check_aantal = mysql_query("Select Count(username) From users Where username = '".mysql_escape_string($username)."' AND sha1_password = '".$sha1_password."'") or die(mysql_error());

                  if (mysql_result($check_aantal, 0))
                  {
                      echo "Je bent ingelogd"; // Dit bericht word wel zichtbaar.
                      $_SESSION['id'] = $fetchusers['id']; // Maar dit word denk ik niet goed in de sessie gezet.
                  }
                  else
                  {
                      echo "<br>Gebruikersnaam of wachtwoord incorrect.";
                  }
              }

              if (!isset($_SESSION['ip']))
              {
                  $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
              }
              if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
              {
                  trigger_error("<br>Session Hijacking gedetecteerd!", E_USER_WARNING);
              }

              if (isset($_SESSION['id']))
              {
                  $fetchusers = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'");
                  $fetchusers = mysql_fetch_assoc($fetchusers);

                  echo "<br>Ingelogd als: ".$fetchusers['username'].". | <a href='http://www.robinvandervliet.hostoi.com/myaccount.php?url=".$_SERVER['PHP_SELF']."'>Mijn account</a>. | <a href='http://www.robinvandervliet.hostoi.com/logout.php?url=".$_SERVER['PHP_SELF']."'>Uitloggen</a>.";
              }
              else
              {
                  echo '<form method="post">';
                  echo 'Gebruikersnaam: <input type="text" name="username" size="15"> ';
                  echo 'Wachtwoord: <input type="password" name="password" size="15"> ';
                  echo '<input name="submit" type="submit" value="Inloggen">';
                  echo '</form>';
              }
              ?>
dit werkt heel mischien...

echo "Je bent ingelogd"; // Dit bericht word wel zichtbaar.
session_start();
$_SESSION['id'] = $fetchusers['id'];


en dan mischien je sessie bovenaan weghalen...

denk niet dat maarja :P
proberen kan nooit kwaad toch?
Waarom is jou code een eind ingesprongen? Ik zie voor de

< ? php

heel veel spaties staan. Staat die er in de echte code ook? Zo jah, die moeten weg. Voor de session_start() mag er niets naar de cliënt gestuurd worden, ook deze spaties niet.

En wat doet die bovenste

SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'

Daar? Je controleert heel niet of $_SESSION['id'] wel bestaat. De hele constructie klopt zoiezo al geen moer van. Het zou zoiets moet zijn:

$check = mysql_query("Select id From users Where username = '".mysql_escape_string($username)."' AND sha1_password = '".$sha1_password."'") or die(mysql_error());
if (mysql_num_rows($check))
{
    $result = mysql_fetch_row($check);
    $_SESSION['id'] = $result[0];
}
else
Zet dit bovenin je script.
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
YOYOYO

salemander in the house :P

ik heb het opgelost

enjoy :)

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>
<?php
require("config.php");
session_start();
?>
<?



if (isset($_POST['submit']))
{
$username = $_POST['username'];
$password = sha1($_POST['password']);


$check_aantal = mysql_query("Select id,username,password From users Where username= '".mysql_escape_string($username)."' AND password = '".$password."'") or die(mysql_error());

if (mysql_num_rows($check_aantal) > 0) {
$row = mysql_fetch_assoc($check_aantal);
if(!strcmp($password, $row['password'])) {

} else {


echo'er ging iets fout';
}
}
}


if (!isset($_SESSION['ip']))
{
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
{
trigger_error("<br>Session Hijacking gedetecteerd!", E_USER_WARNING);
}

if (isset($_SESSION['id']))
{
$fetchusers = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'");
$fetchusers = mysql_fetch_assoc($fetchusers);

echo "<br>Ingelogd als: ".$fetchusers['username'].". | <a href='myaccount.php?url=".$_SERVER['PHP_SELF']."'>Mijn account</a>. | <a href='http://www.robinvandervliet.hostoi.com/logout.php?url=".$_SERVER['PHP_SELF']."'>Uitloggen</a>.";;
}
else
{
echo '<form method="post">';
echo 'Gebruikersnaam: <input type="text" name="gebruikersnaam" size="15"> ';
echo 'Wachtwoord: <input type="password" name="wachtwoord" size="15"> ';
echo '<input name="submit" type="submit" value="Inloggen">';
echo '</form>';

}
?>
Sander salemander op 11/06/2010 00:40:36

YOYOYO

salemander in the house :P

ik heb het opgelost

enjoy :)

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

require("config.php");
session_start();


if (isset($_POST['submit']))
{
$username = $_POST['username'];
$password = sha1($_POST['password']);


$check_aantal = mysql_query("Select id,username,password From users Where username= '".mysql_escape_string($username)."' AND password = '".$password."'") or die(mysql_error());

if (mysql_num_rows($check_aantal) > 0) {
$row = mysql_fetch_assoc($check_aantal);
if(!strcmp($password, $row['password'])) {

} else {


echo'er ging iets fout';
}
}
}


if (!isset($_SESSION['ip']))
{
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
}
if ($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
{
trigger_error("<br>Session Hijacking gedetecteerd!", E_USER_WARNING);
}

if (isset($_SESSION['id']))
{
$fetchusers = mysql_query("SELECT * FROM users WHERE id = '" . $_SESSION['id'] . "'");
$fetchusers = mysql_fetch_assoc($fetchusers);

echo "<br>Ingelogd als: ".$fetchusers['username'].". | <a href='myaccount.php?url=".$_SERVER['PHP_SELF']."'>Mijn account</a>. | <a href='http://www.robinvandervliet.hostoi.com/logout.php?url=".$_SERVER['PHP_SELF']."'>Uitloggen</a>.";;
}
else
{
echo '<form method="post">';
echo 'Gebruikersnaam: <input type="text" name="gebruikersnaam" size="15"> ';
echo 'Wachtwoord: <input type="password" name="wachtwoord" size="15"> ';
echo '<input name="submit" type="submit" value="Inloggen">';
echo '</form>';

}
?>


Reageren