Inlog script
http://www.phphulp.nl/php/tutorials/10/547/1426/
alles gaat prima, behalve het inloggen.. volgens dit script word er een session_id aangemaakt in de database, maar als ik mn db open dan zie ik dat helemaal niet. tevens krijg ik de foutmelding dat de gebruikersnaam/w8woord niet klopt. ik heb sha1.js in mn server gegooid, kheb ook ff een register.php pagina aangemaakt om wat waardes in mn db te gooien. mijn db:
user_id : 1
username : test
password : test
session_id : (leeg)
weet iemand hoe dit probleem is op te lossen ??? alvast bedankt!
login form :
<script type="text/javascript" src="sha1.js"></script>
<script type="text/javascript">
function _submit() {
document.getElementById('password_encrypted').value = hex_sha1(document.getElementById('password').value);
document.getElementById('password').value = '';
}
</script>
<form action="login.php" method="post" onsubmit="return _submit();">
Gebruikersnaam:<input type="text" name="username" />
Wachtwoord:<input type="password" id="password" />
<input type="hidden" name="password_encrypted" value="" />
<input type="submit" value="Login" />
</form>
hallo, ik heb de tutorial gevolgd, en daar wil ik het volgende script van gebruiken : Code (php)
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
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
<?php
session_start();
// maak verbinding met database
include ('connection.php');
// functie voor random key
function make_rand($length) {
$chars = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1234567890";
$rand = '';
for ($i = 1; $i <= $length; $i++) {
$num = rand(0, strlen($chars));
$rand .= substr($chars, $num, 1);
}
return $rand;
}
// kijk of formulier is verzonden
if ($_SERVER['REQUEST_METHOD'] == "POST") { // indien verzonden
$query= mysql_query("SELECT * FROM users WHERE username = '" . addslashes($_POST['username']) . "'");
if (mysql_num_rows($query) > 0) { // als er een gebruiker is gevonden
$user = mysql_fetch_object($query);
if ($user->pass == sha1($_POST['password'])) { // als het wachtwoord klopt
$_SESSION['user_id'] = $user->user_id;
$rand_key = make_rand(50); // maak een random string voor sessie session_id mbv van functie
$_SESSION['session_id'] = $rand_key;
// zet de sessie id in de db zodat we hem later kunnen controleren
mysql_query("UPDATE users SET session_id = '" . $rand_key . "' WHERE user_id = '" . $_SESSION['user_id'] . "'");
$_SESSION['user_ip'] = $_SERVER['REMOTE_ADRESS'];
echo 'Inloggen is gelukt!';
} else { // ongeldig wachtwoord
echo 'Ongeldig wachtwoord';
}
} else { // ongeldige gebruikersnaam
echo 'Ongeldige gebruikersnaam!';
}
} /* else { hier zou je het formulier kunnen zetten } */
?>
session_start();
// maak verbinding met database
include ('connection.php');
// functie voor random key
function make_rand($length) {
$chars = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ1234567890";
$rand = '';
for ($i = 1; $i <= $length; $i++) {
$num = rand(0, strlen($chars));
$rand .= substr($chars, $num, 1);
}
return $rand;
}
// kijk of formulier is verzonden
if ($_SERVER['REQUEST_METHOD'] == "POST") { // indien verzonden
$query= mysql_query("SELECT * FROM users WHERE username = '" . addslashes($_POST['username']) . "'");
if (mysql_num_rows($query) > 0) { // als er een gebruiker is gevonden
$user = mysql_fetch_object($query);
if ($user->pass == sha1($_POST['password'])) { // als het wachtwoord klopt
$_SESSION['user_id'] = $user->user_id;
$rand_key = make_rand(50); // maak een random string voor sessie session_id mbv van functie
$_SESSION['session_id'] = $rand_key;
// zet de sessie id in de db zodat we hem later kunnen controleren
mysql_query("UPDATE users SET session_id = '" . $rand_key . "' WHERE user_id = '" . $_SESSION['user_id'] . "'");
$_SESSION['user_ip'] = $_SERVER['REMOTE_ADRESS'];
echo 'Inloggen is gelukt!';
} else { // ongeldig wachtwoord
echo 'Ongeldig wachtwoord';
}
} else { // ongeldige gebruikersnaam
echo 'Ongeldige gebruikersnaam!';
}
} /* else { hier zou je het formulier kunnen zetten } */
?>
alles gaat prima, behalve het inloggen.. volgens dit script word er een session_id aangemaakt in de database, maar als ik mn db open dan zie ik dat helemaal niet. tevens krijg ik de foutmelding dat de gebruikersnaam/w8woord niet klopt. ik heb sha1.js in mn server gegooid, kheb ook ff een register.php pagina aangemaakt om wat waardes in mn db te gooien. mijn db:
user_id : 1
username : test
password : test
session_id : (leeg)
weet iemand hoe dit probleem is op te lossen ??? alvast bedankt!
login form :
<script type="text/javascript" src="sha1.js"></script>
<script type="text/javascript">
function _submit() {
document.getElementById('password_encrypted').value = hex_sha1(document.getElementById('password').value);
document.getElementById('password').value = '';
}
</script>
<form action="login.php" method="post" onsubmit="return _submit();">
Gebruikersnaam:<input type="text" name="username" />
Wachtwoord:<input type="password" id="password" />
<input type="hidden" name="password_encrypted" value="" />
<input type="submit" value="Login" />
</form>
Gewijzigd op 01/01/1970 01:00:00 door Raoul vd rijt
ik weet dat de fout is dat ie niet de session update, maar hoe fix ik dat ?