Userpage, HOE?
Ik heb een inlog systeem gekregen van een vriend, met registratie formulier,
maar heeft iemand een idee hoe ik er voor kan zorgen dat als je inlogt, je gelijk naar je eigen pagina toe gaat? Dat iedere User dus een eigen pagina heeft.
Kan iemand helpen?
b: Hoe zit dat inlogscript eruit?
Op de Userpage, een avatar en een soort van blog
Inlog: (ik weet niet of ik het zo goed doe
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
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
<?php
// Start sessies
session_start();
// MySQLi connectie hier.
$mysqli = new MySQLi ( root, usern , passw, db );
// Word er op de submit knop gedrukt?
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ):
// Zijn de juiste inputs ingevuld?
if ( isset ( $_POST['username'], $_POST['password'] ) ):
// Zijn er geen inputs leeggelaten?
if ( trim ( $_POST['username'] ) != "" && trim ( $_POST['password'] ) != "" ):
// Voer een SQL query uit.
$sql = "
SELECT
COUNT(*)
FROM
users
WHERE
user_username = '". $mysqli -> real_escape_string ( $_POST['username'] ) ."'
AND
user_password = '". sha1 ( $_POST['password'] ) ."'
";
// Lukt de query?
if ( $res = $mysqli -> query ( $sql ) ):
// Data ophalen.
$row = $res -> fetch_assoc();
// Bestaat de gebruiker?
if ( $row['COUNT(*)'] == 1 ):
// Ingelogd!
echo 'Ingelogd!';
// Maak sessie aan.
$_SESSION['logged_in'] = true;
else:
// Foutieve login
echo 'Foutieve login.';
endif;
endif;
endif;
endif;
else:
echo '<form action="" method="post">
Username: <input type="text" name="username" /> <br />
Password: <input type="password" name="password" /> <br />
<input type="submit" value="Login" />
</form>';
endif;
?>
// Start sessies
session_start();
// MySQLi connectie hier.
$mysqli = new MySQLi ( root, usern , passw, db );
// Word er op de submit knop gedrukt?
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ):
// Zijn de juiste inputs ingevuld?
if ( isset ( $_POST['username'], $_POST['password'] ) ):
// Zijn er geen inputs leeggelaten?
if ( trim ( $_POST['username'] ) != "" && trim ( $_POST['password'] ) != "" ):
// Voer een SQL query uit.
$sql = "
SELECT
COUNT(*)
FROM
users
WHERE
user_username = '". $mysqli -> real_escape_string ( $_POST['username'] ) ."'
AND
user_password = '". sha1 ( $_POST['password'] ) ."'
";
// Lukt de query?
if ( $res = $mysqli -> query ( $sql ) ):
// Data ophalen.
$row = $res -> fetch_assoc();
// Bestaat de gebruiker?
if ( $row['COUNT(*)'] == 1 ):
// Ingelogd!
echo 'Ingelogd!';
// Maak sessie aan.
$_SESSION['logged_in'] = true;
else:
// Foutieve login
echo 'Foutieve login.';
endif;
endif;
endif;
endif;
else:
echo '<form action="" method="post">
Username: <input type="text" name="username" /> <br />
Password: <input type="password" name="password" /> <br />
<input type="submit" value="Login" />
</form>';
endif;
?>
en registatie:
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
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
<?php
// Word er op het submit knopje gedrukt?
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ):
// Inputs die ingevuld moeten worden.
$inputs = array("username", "password", "password2", "email", "email2");
// Errors opslaan in een array.
$errors = array();
// Kijk of alle inputs zijn ingevuld.
foreach ( $inputs as $input ):
if ( !isset ( $_POST[$input] ) ):
$errors[] = 'Veld niet ingevuld: '. $input;
elseif ( trim ( $_POST[$input] ) == '' ):
$errors[] = 'Leeg veld: '.$input;
endif;
endforeach;
// Kijk of inputs met password en email overeen komen.
if ( isset ( $_POST['password'], $_POST['password2'] ) ):
if ( $_POST['password2'] != $_POST['password'] ):
$errors[] = 'Wachtwoorden komen niet overeen.';
endif;
endif;
if ( isset ( $_POST['email'], $_POST['email2'] ) ):
if ( $_POST['email2'] != $_POST['email2'] ):
$errors[] = 'Emails komen niet overeen.';
endif;
endif;
// Errors?
if ( count ( $errors ) > 0 ):
echo 'Je kon niet worden geregisteerd. <br />';
echo implode('<br />', $errors);
else:
// Voer gebruiker in.
$sql = "
INSERT INTO
users
(
user_id,
user_username,
user_password,
user_email
)
VALUES
(
NULL,
'". $mysqli -> real_escape_string ( $_POST['username'] ) ."',
'". sha1 ( $_POST['password'] ) ."',
'". $mysqli -> real_escape_string ( $_POST['email'] ) ."'
);
";
// Lukt de query?
if ( $res = $mysqli -> query ( $sql ) ):
echo 'Je bent nu geregistreerd! Jouw accountgegevens: <br />
<strong>Gebruikersnaam</strong>: '. $_POST['username'] .' <br />
<strong>Wachtwoord</strong>: '. $_POST['password'] .'<br />
';
else:
echo 'Je kon niet worden geregistreerd, helaas, de volgende SQL error trad op: <br />
'. $mysqli -> error;
endif;
endif;
else:
echo '<form action="" method="post">
Gebruikersnaam: <input type="text" name="username" /> <br />
Wachtwoord: <input type="password" name="password" /> <br />
Wachtwoord (x2): <input type="password" name="password2" /> <br />
Email: <input type="text" name="email" /> <br />
Email (x2): <input type="text" name="email2" /> <br />
<input type="submit" value="Registreren" />
</form>';
endif;
// Word er op het submit knopje gedrukt?
if ( $_SERVER['REQUEST_METHOD'] == 'POST' ):
// Inputs die ingevuld moeten worden.
$inputs = array("username", "password", "password2", "email", "email2");
// Errors opslaan in een array.
$errors = array();
// Kijk of alle inputs zijn ingevuld.
foreach ( $inputs as $input ):
if ( !isset ( $_POST[$input] ) ):
$errors[] = 'Veld niet ingevuld: '. $input;
elseif ( trim ( $_POST[$input] ) == '' ):
$errors[] = 'Leeg veld: '.$input;
endif;
endforeach;
// Kijk of inputs met password en email overeen komen.
if ( isset ( $_POST['password'], $_POST['password2'] ) ):
if ( $_POST['password2'] != $_POST['password'] ):
$errors[] = 'Wachtwoorden komen niet overeen.';
endif;
endif;
if ( isset ( $_POST['email'], $_POST['email2'] ) ):
if ( $_POST['email2'] != $_POST['email2'] ):
$errors[] = 'Emails komen niet overeen.';
endif;
endif;
// Errors?
if ( count ( $errors ) > 0 ):
echo 'Je kon niet worden geregisteerd. <br />';
echo implode('<br />', $errors);
else:
// Voer gebruiker in.
$sql = "
INSERT INTO
users
(
user_id,
user_username,
user_password,
user_email
)
VALUES
(
NULL,
'". $mysqli -> real_escape_string ( $_POST['username'] ) ."',
'". sha1 ( $_POST['password'] ) ."',
'". $mysqli -> real_escape_string ( $_POST['email'] ) ."'
);
";
// Lukt de query?
if ( $res = $mysqli -> query ( $sql ) ):
echo 'Je bent nu geregistreerd! Jouw accountgegevens: <br />
<strong>Gebruikersnaam</strong>: '. $_POST['username'] .' <br />
<strong>Wachtwoord</strong>: '. $_POST['password'] .'<br />
';
else:
echo 'Je kon niet worden geregistreerd, helaas, de volgende SQL error trad op: <br />
'. $mysqli -> error;
endif;
endif;
else:
echo '<form action="" method="post">
Gebruikersnaam: <input type="text" name="username" /> <br />
Wachtwoord: <input type="password" name="password" /> <br />
Wachtwoord (x2): <input type="password" name="password2" /> <br />
Email: <input type="text" name="email" /> <br />
Email (x2): <input type="text" name="email2" /> <br />
<input type="submit" value="Registreren" />
</form>';
endif;
Is die userpagina besloten voor die gebruiker, of een profiel die iedereen zou kunnen bekijken?
Iedereen zou de userpage mogen bekijken ;-)
Ik kan zo snel niet komen wat de pagina dan word.
userpage.php?id="$id" zoiets misschien. Dat moet je aan iemand anders vragen.
En dan op de userpage met GET de userid ophalen en dan alle gegevens uit de database laden.
Gewijzigd op 10/04/2011 16:45:25 door Victor Php