Login script werkt niet. Waarom werkt hij niet?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Robin van der Vliet

Robin van der Vliet

10/06/2010 17:59:07
Quote Anchor link
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?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
              <?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>';
              }

              ?>
 
PHP hulp

PHP hulp

27/04/2024 00:24:54
 
Bram Boos

Bram Boos

10/06/2010 18:07:53
Quote Anchor link
Raad de fout:

Je hebt in je DB het wachtwoord niet geëncrypteerd naar SHA1?
 
Robin van der Vliet

Robin van der Vliet

10/06/2010 18:10:06
Quote Anchor link
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.
 
- SanThe -

- SanThe -

10/06/2010 18:20:59
Quote Anchor link
Bouw nette foutafhandeling in.
 
Robin van der Vliet

Robin van der Vliet

10/06/2010 20:07:16
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
              <?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>';
              }

              ?>
Gewijzigd op 10/06/2010 20:07:43 door Robin van der Vliet
 
Sander salemander

sander salemander

10/06/2010 20:27:13
Quote Anchor link
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?
 
Robin van der Vliet

Robin van der Vliet

10/06/2010 20:30:15
Quote Anchor link
Nee, het werkt niet. :(
 
Piet Verhagen

Piet Verhagen

10/06/2010 23:25:32
Quote Anchor link
Waarom is jou code een eind ingesprongen? Ik zie voor de
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
< ? 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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$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
Gewijzigd op 10/06/2010 23:41:45 door Piet Verhagen
 
- SanThe -

- SanThe -

10/06/2010 23:31:50
Quote Anchor link
Zet dit bovenin je script.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

// rest
?>
 
Sander salemander

sander salemander

11/06/2010 00:40:36
Quote Anchor link
YOYOYO

salemander in the house :P

ik heb het opgelost

enjoy :)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
require("config.php");
session_start();
?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?



              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

sander salemander

11/06/2010 00:42:02
Quote Anchor link
Sander salemander op 11/06/2010 00:40:36:
YOYOYO

salemander in the house :P

ik heb het opgelost

enjoy :)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?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>';
              
}

?>
 
- SanThe -

- SanThe -

11/06/2010 00:55:39
Quote Anchor link
Nette foutafhandeling mist.
Wat is het nut van regel 19?
De $_SESSION['id'] in regel 39 wordt nergens geset.
 
Sander salemander

sander salemander

11/06/2010 01:44:10
Quote Anchor link
zo beter :P

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?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,ip 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);
    }

    $_SESSION['id'] = $row['id'];
    }

    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>';            
    }

?>
 
Robin van der Vliet

Robin van der Vliet

11/06/2010 08:27:20
Quote Anchor link
Het probleem zat gewoon in deze regel.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$fetchusers =  mysql_query("SELECT * FROM users WHERE id = '" .  $_SESSION['id'] . "'");
$fetchusers = mysql_fetch_assoc($fetchusers);


En het moest dit zijn.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$fetchusers = mysql_query("SELECT * FROM users Where username = '".mysql_escape_string($username)."' AND sha1_password = '".$sha1_password."'") or die(mysql_error());
$fetchusers = mysql_fetch_assoc($fetchusers);



*opgelost*
Gewijzigd op 11/06/2010 09:03:32 door Robin van der Vliet
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.