welcome $userId
ik ben (nog steeds), een site aan het maken, maar ik zou het leuk vinden, dat als 1 van mijn users zijn ingelogt dat er staat ( welcome userid )
netzoals linksboven aan deze zite :)
maar ik heb geen idee hoe dat moet,
hoe zou ik dat dan moeten plaatsen
dit heb ik nu staan
maar werkt naartuurlijk niet, ik heb ook een flouw idee dat het ook niet zo moet, want hij zet nu neer wat ik tussen de 'dingen heb neergezet'
...
dank u :)
dit is de source,
secure.php
Code (php)
<html>
<center>
blablblablablaa :)
</td>
<td width=600 height=20>
<center>
</center>
</td>
<td width=170 height=20>
<center>
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$month[0]="--";
$month[1]="<b>01</b>";
$month[2]="<b>02</b>";
$month[3]="<b>03</b>";
$month[4]="<b>04</b>";
$month[5]="<b>05</b>";
$month[6]="<b>06</b>";
$month[7]="<b>07</b>";
$month[8]="<b>08</b>";
$month[9]="<b>09</b>";
$month[10]="10</b>";
$month[11]="11</b>";
$month[12]="12</b>";
$days[0]="<b>Sun</b>";
$days[1]="<b>Mon</b>";
$days[2]="<b>Tues</b>";
$days[3]="<b>Wed</b>";
$days[4]="<b>Thu</b>";
$days[5]="<b>Fri</b>";
$days[6]="<b>Sat</b>";
$dayno=(int)date("w");
$monno=(int)date("m");
echo $days[$dayno]." ".date("<b>d</b>")."/".$month[$monno]."/".date("<b>Y</b>");
?>
$month[0]="--";
$month[1]="<b>01</b>";
$month[2]="<b>02</b>";
$month[3]="<b>03</b>";
$month[4]="<b>04</b>";
$month[5]="<b>05</b>";
$month[6]="<b>06</b>";
$month[7]="<b>07</b>";
$month[8]="<b>08</b>";
$month[9]="<b>09</b>";
$month[10]="10</b>";
$month[11]="11</b>";
$month[12]="12</b>";
$days[0]="<b>Sun</b>";
$days[1]="<b>Mon</b>";
$days[2]="<b>Tues</b>";
$days[3]="<b>Wed</b>";
$days[4]="<b>Thu</b>";
$days[5]="<b>Fri</b>";
$days[6]="<b>Sat</b>";
$dayno=(int)date("w");
$monno=(int)date("m");
echo $days[$dayno]." ".date("<b>d</b>")."/".$month[$monno]."/".date("<b>Y</b>");
?>
blablablabbla :)
</body>
</html>
dit is de funtions.php:
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
108
109
110
111
112
113
114
115
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
108
109
110
111
112
113
114
115
<?php
//functions.php
function connectdb()
{
//inloggegevens van de database
$sHost='----';
$sUser='----';
$sPass='----';
$sDb='----';
if(!$rDbConn=mysql_connect($sHost,$sUser,$sPass))
{
echo 'Could not connect to database, sorry for the inconfenious';
return FALSE;
}
else
{
if(!mysql_select_db($sDb,$rDbConn))
{
echo 'Could not find the selected databse';
return FALSE;
}
}
return $rDbConn;
}
function check_login($rDbConn)
{
$bLogin=FALSE;
if(empty($_SESSION['ingelogd']))
{
//niet aangemeld volgens sessie, wel volgens db?
if(isset($_COOKIE['user_id']) && isset($_COOKIE['validate']) &&
strlen($_COOKIE['validate'])==32 && preg_match('/^[0-9]{1,8}$/',$_COOKIE['user_id']))
{
//de cookies bestaan en zijn geldig, kijken in de db
$sQuery='SELECT COUNT(*) FROM logins
WHERE user_id='.$_COOKIE['user_id'].' AND validate="'.$_COOKIE['validate'].'"
AND client_ip="'.$_SERVER['REMOTE_ADDR'].'"
AND tijdstip>DATE_SUB(NOW(),INTERVAL 7 DAY)';
if(!$rResult=mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
else
{
if(mysql_num_rows($rResult)==1)
{
//volgens db al geldig ingelogd
$bLogin=TRUE;
//de sessie gegevens schrijven
$_SESSION['ingelogd']=TRUE;
$_SESSION['client_ip']=$_SERVER['REMOTE_ADDR'];
$_SESSION['user_id']=$_COOKIE['user_id'];
//willekeurige string maken
$sValidate=md5(rand(0,99999));
//cookies setten voor 7dagen
setcookie('validate',$sValidate,time()+60*60*24*7,'/','http://johan.jo.funpic.org/');
setcookie('user_id',$_SESSION['user_id'],time()+60*60*24*7,'/','http://johan.jo.funpic.org/');
//de gegevens in de tabel zetten
$sQuery='REPLACE INTO logins (tijdstip, validate, user_id, client_ip)
VALUES (NOW(), "'.$sValidate.'", '.$_SESSION['user_id'].', "'.$_SERVER['REMOTE_ADDR'].'")';
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
//deze functie behandel ik straks
clean_up($rDbConn);
return $bLogin;
}
}
}
}
elseif(isset($_SESSION['client_ip']) && $_SESSION['client_ip']==$_SERVER['REMOTE_ADDR']
&& isset($_SESSION['user_id']) && preg_match('/^[0-9]{1,8}$/',$_SESSION['user_id'])
&& isset($_SESSION['ingelogd']) && $_SESSION['ingelogd']===TRUE)
{
return TRUE;
}
return FALSE;
}
function clean_up($rDbConn,$iUserId=0)
{
if(empty($iUserId))
{
//er werd geen userID meegegeven, dus algemene opruiming?
if(rand(1,500)==1)
{
//alle rijen ouder dan een maand wissen
$sQuery='DELETE FROM logins WHERE tijdstip<DATE_SUB(NOW(),INTERVAL 1 MONTH)';
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
}
}
elseif(preg_match('/^[0-9]{1,8}$/',$iUserId))
{
//er werd een userID meegegeven, wissen dat kreng
$sQuery='DELETE FROM logins WHERE user_id='.$iUserId;
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
}
}
?>
//functions.php
function connectdb()
{
//inloggegevens van de database
$sHost='----';
$sUser='----';
$sPass='----';
$sDb='----';
if(!$rDbConn=mysql_connect($sHost,$sUser,$sPass))
{
echo 'Could not connect to database, sorry for the inconfenious';
return FALSE;
}
else
{
if(!mysql_select_db($sDb,$rDbConn))
{
echo 'Could not find the selected databse';
return FALSE;
}
}
return $rDbConn;
}
function check_login($rDbConn)
{
$bLogin=FALSE;
if(empty($_SESSION['ingelogd']))
{
//niet aangemeld volgens sessie, wel volgens db?
if(isset($_COOKIE['user_id']) && isset($_COOKIE['validate']) &&
strlen($_COOKIE['validate'])==32 && preg_match('/^[0-9]{1,8}$/',$_COOKIE['user_id']))
{
//de cookies bestaan en zijn geldig, kijken in de db
$sQuery='SELECT COUNT(*) FROM logins
WHERE user_id='.$_COOKIE['user_id'].' AND validate="'.$_COOKIE['validate'].'"
AND client_ip="'.$_SERVER['REMOTE_ADDR'].'"
AND tijdstip>DATE_SUB(NOW(),INTERVAL 7 DAY)';
if(!$rResult=mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
else
{
if(mysql_num_rows($rResult)==1)
{
//volgens db al geldig ingelogd
$bLogin=TRUE;
//de sessie gegevens schrijven
$_SESSION['ingelogd']=TRUE;
$_SESSION['client_ip']=$_SERVER['REMOTE_ADDR'];
$_SESSION['user_id']=$_COOKIE['user_id'];
//willekeurige string maken
$sValidate=md5(rand(0,99999));
//cookies setten voor 7dagen
setcookie('validate',$sValidate,time()+60*60*24*7,'/','http://johan.jo.funpic.org/');
setcookie('user_id',$_SESSION['user_id'],time()+60*60*24*7,'/','http://johan.jo.funpic.org/');
//de gegevens in de tabel zetten
$sQuery='REPLACE INTO logins (tijdstip, validate, user_id, client_ip)
VALUES (NOW(), "'.$sValidate.'", '.$_SESSION['user_id'].', "'.$_SERVER['REMOTE_ADDR'].'")';
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
//deze functie behandel ik straks
clean_up($rDbConn);
return $bLogin;
}
}
}
}
elseif(isset($_SESSION['client_ip']) && $_SESSION['client_ip']==$_SERVER['REMOTE_ADDR']
&& isset($_SESSION['user_id']) && preg_match('/^[0-9]{1,8}$/',$_SESSION['user_id'])
&& isset($_SESSION['ingelogd']) && $_SESSION['ingelogd']===TRUE)
{
return TRUE;
}
return FALSE;
}
function clean_up($rDbConn,$iUserId=0)
{
if(empty($iUserId))
{
//er werd geen userID meegegeven, dus algemene opruiming?
if(rand(1,500)==1)
{
//alle rijen ouder dan een maand wissen
$sQuery='DELETE FROM logins WHERE tijdstip<DATE_SUB(NOW(),INTERVAL 1 MONTH)';
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
}
}
elseif(preg_match('/^[0-9]{1,8}$/',$iUserId))
{
//er werd een userID meegegeven, wissen dat kreng
$sQuery='DELETE FROM logins WHERE user_id='.$iUserId;
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
}
}
?>
Gewijzigd op 21/06/2005 15:19:00 door Johan K
reageren we niet in 30 min
ten 2de waarde opslaan in een sessie en die weer geven "/
ik kom steeds dichterbij :)
ik heb onderhand wel gehad
welcome to our site "1"
met deze code:
krijg ik ook de zelfde melding als hierboven
Gewijzigd op 21/06/2005 15:36:00 door Johan K
??
hoe ziet je inlog form eruit?
user_id is auto increcement
maar als ik username invoer, zegt ie helemaal niets
inlog form:
<form name="form1" method="post" action="">
<p>
<input name="naam" type="text" id="naam">
Username</p>
<p>
<input name="pass" type="text" id="pass">
Password
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
// register.php
require("functions.php");
connectdb();
if ($_POST['Submit'] == 'Submit') {
$naam = $_POST['naam'];
$password = $_POST['pass'];
$pw = md5($password);
$query = "insert into users (username,password)
values (
'$naam',
'$pw')";
mysql_query($query) or
die (mysql_error());
}
?>
// register.php
require("functions.php");
connectdb();
if ($_POST['Submit'] == 'Submit') {
$naam = $_POST['naam'];
$password = $_POST['pass'];
$pw = md5($password);
$query = "insert into users (username,password)
values (
'$naam',
'$pw')";
mysql_query($query) or
die (mysql_error());
}
?>
inlog form
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
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
<?php
//login.php
session_start();
require('functions.php');
if($_SERVER['REQUEST_METHOD']=='POST')
{
if(FALSE!==($rDbConn=connectdb()))
{
$sQuery='SELECT id FROM users WHERE username="'.$_POST['username'].'" AND password="'.md5($_POST['password']).'"';
if(!$rResult=mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
else
{
if(mysql_num_rows($rResult)==0)
{
echo 'Username and password are incorrect, <P> Click <A HREF="index.php"/>here</A> to try again';
}
else
{
//En dan komt hier het loginverhaal
//willekeurige string maken
$sValidate=md5(rand(0,99999));
//cookies setten voor 7dagen
$iUserId=mysql_result($rResult,0,'id');
setcookie('validate',$sValidate,time()+60*60*24*7,'/','http://127.0.0.1/index.php');
setcookie('user_id',$iUserId,time()+60*60*24*7,'/','http://127.0.0.1/index.php');
//de gegevens in de tabel zetten
$sQuery='REPLACE INTO logins (tijdstip, validate, user_id, client_ip)
VALUES (NOW(), "'.$sValidate.'", '.$iUserId.', "'.$_SERVER['REMOTE_ADDR'].'")';
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
//de sessie gegevens schrijven
$_SESSION['user_id']=$iUserId;
$_SESSION['ingelogd']=TRUE;
$_SESSION['client_ip']=$_SERVER['REMOTE_ADDR'];
//doorsturen naar de volgende pagina
header('location: secure.php');
}
}
mysql_close($rDbConn);
}
}
else
{
echo '<FORM NAME="inlogform" METHOD="post" ACTION="'.$_SERVER['PHP_SELF'].'">
<center><b>Username:</b> <br> <INPUT TYPE="text" NAME="username" SIZE="20"><BR>
<b>Password:</b> <br> <INPUT TYPE="password" NAME="password" SIZE="20"><BR>
<INPUT TYPE="submit" VALUE="Inloggen"></FORM></center>';
}
?>
//login.php
session_start();
require('functions.php');
if($_SERVER['REQUEST_METHOD']=='POST')
{
if(FALSE!==($rDbConn=connectdb()))
{
$sQuery='SELECT id FROM users WHERE username="'.$_POST['username'].'" AND password="'.md5($_POST['password']).'"';
if(!$rResult=mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
else
{
if(mysql_num_rows($rResult)==0)
{
echo 'Username and password are incorrect, <P> Click <A HREF="index.php"/>here</A> to try again';
}
else
{
//En dan komt hier het loginverhaal
//willekeurige string maken
$sValidate=md5(rand(0,99999));
//cookies setten voor 7dagen
$iUserId=mysql_result($rResult,0,'id');
setcookie('validate',$sValidate,time()+60*60*24*7,'/','http://127.0.0.1/index.php');
setcookie('user_id',$iUserId,time()+60*60*24*7,'/','http://127.0.0.1/index.php');
//de gegevens in de tabel zetten
$sQuery='REPLACE INTO logins (tijdstip, validate, user_id, client_ip)
VALUES (NOW(), "'.$sValidate.'", '.$iUserId.', "'.$_SERVER['REMOTE_ADDR'].'")';
if(!mysql_query($sQuery,$rDbConn))
{
echo 'Hey een foutmelding: '.mysql_error($rDbConn).'<BR>'.$sQuery;
}
//de sessie gegevens schrijven
$_SESSION['user_id']=$iUserId;
$_SESSION['ingelogd']=TRUE;
$_SESSION['client_ip']=$_SERVER['REMOTE_ADDR'];
//doorsturen naar de volgende pagina
header('location: secure.php');
}
}
mysql_close($rDbConn);
}
}
else
{
echo '<FORM NAME="inlogform" METHOD="post" ACTION="'.$_SERVER['PHP_SELF'].'">
<center><b>Username:</b> <br> <INPUT TYPE="text" NAME="username" SIZE="20"><BR>
<b>Password:</b> <br> <INPUT TYPE="password" NAME="password" SIZE="20"><BR>
<INPUT TYPE="submit" VALUE="Inloggen"></FORM></center>';
}
?>
Gewijzigd op 21/06/2005 15:57:00 door Johan K
Mja leuk... Maak dan tijdens het inloggen een sessie bij met de gebruikersnaam, en weergeef deze dan.... Logica...
$naam = $_POST["naam"];
$pass = $_POST["pass"];
session_register("naam");
session_register("pass");
en dan dit:
en btw in je form gebruik je "naam" en "pass" maar in je script gebruik jij "username" en "password"
Gewijzigd op 21/06/2005 16:02:00 door bruno -
nee, hij geeft telkens de zelfde naam weer,
dat komt omdat er 2 tabellen zijn, de ene voor de ip en datum registratie en de andere voor de users
Gewijzigd op 21/06/2005 16:06:00 door Johan K
np, mooi zo :P
heb je ook een logout file?
$_SESSION['naam'] = $_POST['naam'];
en dan kan je ergens anders vandaag het weer aanropen met:
echo $_SESSION['naam'];
nee ik heb nog geen logout file, moet ik nog effe zoeken op het internet, moet ook in zo'n button komen te staan, het is effe zoeken maar het lukt wel