session ['naam'] van inlogsysteem.
Dit staat bovenaan mijn pagina die het moet weergeven:
Code (php)
1
2
3
2
3
print("Welkom <b>".$_SESSION['user_naam']."</b> je bent nu ingelogd<br>\n");
print("<a href=\"login/useropties.php?".session_name()."=".session_id()."\">Profiel wijzigen</a><br>\n");
print("<a href=\"login/uitloggen.php?".session_name()."=".session_id()."\">Uitloggen</a>");
print("<a href=\"login/useropties.php?".session_name()."=".session_id()."\">Profiel wijzigen</a><br>\n");
print("<a href=\"login/uitloggen.php?".session_name()."=".session_id()."\">Uitloggen</a>");
helaas werkt die usernaam dus niet. Dit is de loginpagina
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?
// Groot Inlogsysteem versie 2
// Copyright Jorik Berkepas
// Support by [email protected] (MSN|Email)
// Pagina: inloggen.php: Inloggen
include("config.php");
include("htmltop.php");
if(isset($_SESSION['user_id'])) {
?>
Je bent reeds ingelogd.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
if(isset($_COOKIE['user_id'])) {
// Cookie uitlezen, sessie aanmaken
$sql = "SELECT id,status,wachtwoord,actief FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$id = htmlspecialchars($rij->id);
$status = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);
$actief = htmlspecialchars($rij->actief);
if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
$_SESSION['user_id'] = $id;
$_SESSION['user_status'] = $status;
$_SESSION['user_naam'] = $naam;
?>
Er is weer een sessie aangemaakt. Je wordt doorverwezen.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />\nJe oude cookies zijn verwijderd.";
setcookie("user_id", "", time() - 3600);
setcookie("user_password", "", time() - 3600);
}
}else{
if(isset($_POST['submit'])) {
// Inloggen
$sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
$userpass = md5($_POST['pass']);
$userid = htmlspecialchars($rij->id);
$userstatus = htmlspecialchars($rij->status);
$useractief = htmlspecialchars($rij->actief);
if($dbpass == $userpass) {
if($useractief == 1) {
$_SESSION['user_id'] = $userid;
$_SESSION['user_status'] = $userstatus;
$_SESSION['user_naam'] = $usernaam;
if($_POST['cookie'] == "do") {
setcookie("user_id", $userid, time() + 365 * 86400);
setcookie("user_password", $dbpass, time() + 365 * 86400);
}
?>
Je bent succesvol ingelogd.<br />
Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Inlogform
?>
<form method="post" action="inloggen.php">
<p> </p>
<table width="200" border="0" align="center">
<tr>
<td><div align="center"><img src="logo.gif" width="117" height="103" /></div></td>
</tr>
</table>
<p> </p>
<table align="center">
<tr>
<td>Gebruikersnaam:</td><td><input type="text" name="user" /></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="pass" /></td>
</tr>
<tr>
<td align="right"><input type="checkbox" name="cookie" value="do" style="border: 0px;" /></td><td><small>Ingelogd blijven (cookie)</small></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Inloggen" /></td>
</tr>
</table>
<small><a href="forgotpass.php" title="Wachtwoord vergeten">Wachtwoord vergeten</a></small>
</form>
<?
}
}
}
include("htmlbottom.php");
?>
// Groot Inlogsysteem versie 2
// Copyright Jorik Berkepas
// Support by [email protected] (MSN|Email)
// Pagina: inloggen.php: Inloggen
include("config.php");
include("htmltop.php");
if(isset($_SESSION['user_id'])) {
?>
Je bent reeds ingelogd.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
if(isset($_COOKIE['user_id'])) {
// Cookie uitlezen, sessie aanmaken
$sql = "SELECT id,status,wachtwoord,actief FROM gebruikers WHERE id='".$_COOKIE['user_id']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$id = htmlspecialchars($rij->id);
$status = htmlspecialchars($rij->status);
$dbpass = htmlspecialchars($rij->wachtwoord);
$actief = htmlspecialchars($rij->actief);
if($dbpass == $_COOKIE['user_password'] AND $actief == 1) {
$_SESSION['user_id'] = $id;
$_SESSION['user_status'] = $status;
$_SESSION['user_naam'] = $naam;
?>
Er is weer een sessie aangemaakt. Je wordt doorverwezen.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
echo "Je cookie klopt niet met wat er in de database staat of je account is niet geactiveerd. Mogelijk heb je je wachtwoord veranderd.<br />\nJe oude cookies zijn verwijderd.";
setcookie("user_id", "", time() - 3600);
setcookie("user_password", "", time() - 3600);
}
}else{
if(isset($_POST['submit'])) {
// Inloggen
$sql = "SELECT id,naam,wachtwoord,status,actief FROM gebruikers WHERE naam='".$_POST['user']."'";
$query = mysql_query($sql);
$rij = mysql_fetch_object($query);
$dbpass = htmlspecialchars($rij->wachtwoord);
$userpass = md5($_POST['pass']);
$userid = htmlspecialchars($rij->id);
$userstatus = htmlspecialchars($rij->status);
$useractief = htmlspecialchars($rij->actief);
if($dbpass == $userpass) {
if($useractief == 1) {
$_SESSION['user_id'] = $userid;
$_SESSION['user_status'] = $userstatus;
$_SESSION['user_naam'] = $usernaam;
if($_POST['cookie'] == "do") {
setcookie("user_id", $userid, time() + 365 * 86400);
setcookie("user_password", $dbpass, time() + 365 * 86400);
}
?>
Je bent succesvol ingelogd.<br />
Je wordt doorgestuurd, indien er niets gebeurd <a href="<?= $loginpage ?>">klik dan hier</a>.
<script language="Javascript" type="text/javascript">
location.href='<?= $loginpage ?>';
</script>
<?
}else{
echo "Je account is niet geactiveerd. Activeer deze, door op de link in de verzonden e-mail te klikken.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
echo "Het door jouw ingevoerd wachtwoord klopt niet voor de gebruiker '".$_POST['user']."'.<br />\n<a href=\"javascript:history.back()\">« Ga terug</a>";
}
}else{
// Inlogform
?>
<form method="post" action="inloggen.php">
<p> </p>
<table width="200" border="0" align="center">
<tr>
<td><div align="center"><img src="logo.gif" width="117" height="103" /></div></td>
</tr>
</table>
<p> </p>
<table align="center">
<tr>
<td>Gebruikersnaam:</td><td><input type="text" name="user" /></td>
</tr>
<tr>
<td>Wachtwoord:</td><td><input type="password" name="pass" /></td>
</tr>
<tr>
<td align="right"><input type="checkbox" name="cookie" value="do" style="border: 0px;" /></td><td><small>Ingelogd blijven (cookie)</small></td>
</tr>
<tr>
<td></td><td><input type="submit" name="submit" value="Inloggen" /></td>
</tr>
</table>
<small><a href="forgotpass.php" title="Wachtwoord vergeten">Wachtwoord vergeten</a></small>
</form>
<?
}
}
}
include("htmlbottom.php");
?>
En ik heb het heel hard nodig..... Want die naam wordt later weer in een db opgeslagen
Gewijzigd op 01/01/1970 01:00:00 door Rob
Dat is niet nodig als je hem de DB in wil jassen hoor...
Je moet btw wel even session_start() bovenaan de pagina zetten en ook error_reporting(E_ALL), dan had je dit gezien in de vorm van een error.
En die session start die staat er ook. Ik krijg zonder die error reporting dus ook wel de error dat die deze session variabele niet herkent. De vraag is dus waar ik moet zijn om deze toch herkenbaar te maken. Zoals gezegtd werkt het wel met $_session [user_id]
Gewijzigd op 01/01/1970 01:00:00 door Rob
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
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
<?php
$user_id = mysql_real_escape_string ( $_SESSION [ 'user_id' ] );
$sql = "
SELECT
gebruikersnaam
FROM
gebruikers
WHERE
gebruikersid = " . $user_id . "
LIMIT
1
";
if ( !$res = mysql_query ( $sql ) )
{
# Er ging iets fout met de sql.
# Welke fout? Dat staat in mysql_error ( )
# Welk foutnummer? Dat staat in mysql_errno ( )
}
else
{
if ( mysql_num_rows ( $res ) > 0 )
{
$rij = mysql_fetch_assoc ( $res );
$naam = $rij [ 'gebruikersnaam' ];
echo 'Hallo ' . $naam . '!';
}
else
{
# Gebruikersnaam niet gevonden
}
}
?>
$user_id = mysql_real_escape_string ( $_SESSION [ 'user_id' ] );
$sql = "
SELECT
gebruikersnaam
FROM
gebruikers
WHERE
gebruikersid = " . $user_id . "
LIMIT
1
";
if ( !$res = mysql_query ( $sql ) )
{
# Er ging iets fout met de sql.
# Welke fout? Dat staat in mysql_error ( )
# Welk foutnummer? Dat staat in mysql_errno ( )
}
else
{
if ( mysql_num_rows ( $res ) > 0 )
{
$rij = mysql_fetch_assoc ( $res );
$naam = $rij [ 'gebruikersnaam' ];
echo 'Hallo ' . $naam . '!';
}
else
{
# Gebruikersnaam niet gevonden
}
}
?>
/me slaps Niek
Boris, gebruik nou eens de PEAR standaard :P
Anders krijg je zoiets van:
Welkom:
(niks erachter aan dus)
/slap Boris
/msg LoveServ ROSE Boris
/msg LoveServ ADMIRER Boris
Vinden jullie dit niet wat omslachtig. Die sessie is wel gezet in ieder geval. Maar omdat die [user_id] wel gewoon mee kan komen zou het toch maar een kleine aanpassing zijn om ook die naam daar bij te gooien of heb ik het nu helemaal fout....
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
Maar da's toch raar, aangezien je de sessie user_id wel tevoorschijn krijgt.
Probeer eens, op Boris' manier, een functie aan te maken.
Met als inhoud dan Boris' script. Gooi die functie dan over de $_SESSION['user_id'] heen, en kijk wat eruit komt.
Bijv:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?
function getName($id)
{
// boris' script, ipv $_SESSION['user_id'] gebruik je nu $id
return $username;
// je geeft de variabele $username (waar dus uiteindelijk de gebruikersnaam in moet zitten) terug als uitkomst van de functie
// door dat laatste kun je de functie dus echoën.
}
?>
function getName($id)
{
// boris' script, ipv $_SESSION['user_id'] gebruik je nu $id
return $username;
// je geeft de variabele $username (waar dus uiteindelijk de gebruikersnaam in moet zitten) terug als uitkomst van de functie
// door dat laatste kun je de functie dus echoën.
}
?>
Succes ;)
EDIT:: vreemd als ik de pagina vernieuw is die melding weg......?????
Gewijzigd op 01/01/1970 01:00:00 door Rob