Indeling van login script
Sommigen van jullie hebben mijn vorige vraag vast gelezen
over dat mijn cookies het niet in elke map deden. Nu heb
ik dankzij een aantal mensen de oplossing gevonden. Dit was
simpelweg de cookie aan laten maken boven de <html> tags.
Echter loop ik een beetje vast hoe ik dan het hele script moet indelen.
Wat ik nu heb is de index.php waarin login.php word geinclude.
In login.php staat het formulier:
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
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
<div class="user_content">
<div class="user_content_header"></div>
<div class="user_content_mid">
<?php
if(loggedIn()) {
echo"Welkom!";
} else {
if(isset($_POST['login'])) {
if(!empty($_POST['gebruikersnaam'])) {
if(!empty($_POST['password'])) {
$leden->login($_POST['gebruikersnaam'], $_POST['password'], $_POST['onthouden']);
} else {
melding_negatief_klein("Vul een wachtwoord in.");
}
} else {
melding_negatief_klein("Vul een gebruikersnaam in.");
}
} else {
melding_centraal_klein("Geen habbowachtwoord");
}
echo"
<form method=\"post\" autocomplete=\"off\" action=\"".$_SERVER['PHP_SELF']."\">
<div id=\"login_container\"><input class=\"loginfield\" type=\"text\" value=\"Gebruikersnaam\" name=\"gebruikersnaam\" onFocus=\"clearText(this)\" onBlur=\"clearText(this)\" /><br>
<input class=\"loginfield\" type=\"password\" value=\"wachtwoord\" name=\"password\" onFocus=\"clearText(this)\" onBlur=\"clearText(this)\" />
<table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\">
<tr>
<td height=\"16\"><input type=\"checkbox\" checked=\"checked\" name=\"onthouden\" id=\"onthouden\" value=\"ja\" /></td>
<td><label for=\"onthouden\">Onthouden?</label></td>
</tr>
<tr>
<td><img src=\"images/icons/icon_myhabbo.gif\" width=\"13\" height=\"13\" /></td>
<td><a href=\"#\">Registreren</a></td>
</tr>
<tr>
<td><img src=\"images/icons/new_16.gif\" width=\"16\" height=\"12\" /></td>
<td><a href=\"#\">Wachtwoord vergeten</a></td>
</tr>
</table>
<input type=\"submit\" name=\"login\" class=\"submitbut1\" value=\"Inloggen\" /></div>
</form>";
}
?>
</div>
<div class="user_content_footer"></div>
</div>
<div class="user_content_header"></div>
<div class="user_content_mid">
<?php
if(loggedIn()) {
echo"Welkom!";
} else {
if(isset($_POST['login'])) {
if(!empty($_POST['gebruikersnaam'])) {
if(!empty($_POST['password'])) {
$leden->login($_POST['gebruikersnaam'], $_POST['password'], $_POST['onthouden']);
} else {
melding_negatief_klein("Vul een wachtwoord in.");
}
} else {
melding_negatief_klein("Vul een gebruikersnaam in.");
}
} else {
melding_centraal_klein("Geen habbowachtwoord");
}
echo"
<form method=\"post\" autocomplete=\"off\" action=\"".$_SERVER['PHP_SELF']."\">
<div id=\"login_container\"><input class=\"loginfield\" type=\"text\" value=\"Gebruikersnaam\" name=\"gebruikersnaam\" onFocus=\"clearText(this)\" onBlur=\"clearText(this)\" /><br>
<input class=\"loginfield\" type=\"password\" value=\"wachtwoord\" name=\"password\" onFocus=\"clearText(this)\" onBlur=\"clearText(this)\" />
<table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\">
<tr>
<td height=\"16\"><input type=\"checkbox\" checked=\"checked\" name=\"onthouden\" id=\"onthouden\" value=\"ja\" /></td>
<td><label for=\"onthouden\">Onthouden?</label></td>
</tr>
<tr>
<td><img src=\"images/icons/icon_myhabbo.gif\" width=\"13\" height=\"13\" /></td>
<td><a href=\"#\">Registreren</a></td>
</tr>
<tr>
<td><img src=\"images/icons/new_16.gif\" width=\"16\" height=\"12\" /></td>
<td><a href=\"#\">Wachtwoord vergeten</a></td>
</tr>
</table>
<input type=\"submit\" name=\"login\" class=\"submitbut1\" value=\"Inloggen\" /></div>
</form>";
}
?>
</div>
<div class="user_content_footer"></div>
</div>
Zoals je ziet word er als alle velden ingevuld zijn de functie login aangeroepen. Echter word
dus dus binnen de html tags gedaan en worden de cookies dus ook binnen de html tags
aangemaakt. Alleen als ik die boven de html tags zou laten doen heb ik geen idee hoe ik dan
in het zelfde veld waar het formulier staat een tekst kan laten verschijnen zoals: Je bent ingelogd, je word doorgestuurd, het wachtwoord klopt niet. Zoiets.
Wie kan mij een beetje een beeld geven van hoe ik dit het beste kan inrichten?
Ik ben je erg dankbaar, want ik loop een beetje vast zo.
Groetjes,
Mik
je gaat zeker een retrohotel maken tjonge niet de eerste op phphulp
inloggen.php
Code (php)
En dan login.php
Code (php)
Zon ongeveer even snel getypt
Toevoeging op 04/02/2011 18:15:41:
PHPer PHPer op 04/02/2011 18:00:52:
je gaat zeker een retrohotel maken tjonge niet de eerste op phphulp
Nee.. Ik maak geen retro hotel. Ik ben zelf vroeg begonnen met habbofansites
maken enzo, maar webdesign en interactive media is nu mijn opleiding/werk.
Ik ben bezig met een admin paneel die in eerste instantie voor habbofansites was,
maar ik bouw hem langzamerhand om voor gebruik op non-habbo sites.
En oja, bedankt voor het vooroordeel he! Staat je goed.
Gewijzigd op 04/02/2011 18:16:54 door Mik PHP
m.a.w. wat je nu bedacht hebt gaat dus niet werken.
En je moet 1 echo gebruiken voor 1 html blok(je).
Toevoeging op 04/02/2011 18:29:54:
Nee, zo bedoel ik het dus niet. Want je behoort toch wel te weten dat php variabelen niet meegenomen worden door de redirect.
m.a.w. wat je nu bedacht hebt gaat dus niet werken.
En je moet 1 echo gebruiken voor 1 html blok(je).
Gewijzigd op 04/02/2011 19:06:50 door Mik PHP
Noppes Homeland op 04/02/2011 18:29:53:
En je moet 1 echo gebruiken voor 1 html blok(je).
Dat is gewoon je eigen stijl he noppes.
PHP Jasper op 04/02/2011 19:35:24:
Dat is gewoon je eigen stijl he noppes.
Noppes Homeland op 04/02/2011 18:29:53:
En je moet 1 echo gebruiken voor 1 html blok(je).
Dat is gewoon je eigen stijl he noppes.
idd, normaalgesproken doe ik het ook, maar moest even snel een voorbeeld verzinnen ;)
Maar even on-topic aub!
Wat is er nu dan nog niet duidelijk?
Alles, hoe ik dit kan oplossen..
Ik heb een klein stukje code geschreven, je zult verder nog wel query's en andere zaken moeten maken...
Voorbeeld:
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
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
<?php
# Sessies starten
session_start();
# DB connectie maken
include('config.php');
# Arrays decladeren
$errors = array();
$conent = array();
# Als er gepost is
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Geen username
if( !isset( $_POST['username'] ) )
{
$errors[] = 'U bent vergeten een gebruikersnaam in te vullen.';
}
# Geen password
if( !isset( $_POST['password'] ) )
{
$errors[] = 'U bent vergeten een wachtwoord in te vullen.';
}
# Geen errors
if( empty( $errors ) )
{
/*
Hier moet je dan nog:
- SQL uitvoeren
- SQL Afhandelen
- Header doorsturen, met een refresh zodat je eerst nog tekst in het $content var kan lezen
- $content[] vullen met succesvol ingelogt / $error vullen met fout bij inloggen e.d.
*/
}
else
{
# Errors weergeven
foreach( $errors as $error )
{
echo $error.'<br />';
}
}
}
else
{
$content[] = '
<form action="" method="post">
<label></label>
<input name="username" type="text" />
<label></label>
<input name="password" type="password" />
<input type="submit" value="Inloggen" />
';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>
<body>
<?php
if( empty( $errors ) )
{
# Content weergeven
foreach( $content as $line )
{
echo $line;
}
}
else
{
# Errirs weergeven
foreach( $errors as $error )
{
echo $error;
}
}
?>
</body>
</html>
# Sessies starten
session_start();
# DB connectie maken
include('config.php');
# Arrays decladeren
$errors = array();
$conent = array();
# Als er gepost is
if( $_SERVER['REQUEST_METHOD'] == 'POST' )
{
# Geen username
if( !isset( $_POST['username'] ) )
{
$errors[] = 'U bent vergeten een gebruikersnaam in te vullen.';
}
# Geen password
if( !isset( $_POST['password'] ) )
{
$errors[] = 'U bent vergeten een wachtwoord in te vullen.';
}
# Geen errors
if( empty( $errors ) )
{
/*
Hier moet je dan nog:
- SQL uitvoeren
- SQL Afhandelen
- Header doorsturen, met een refresh zodat je eerst nog tekst in het $content var kan lezen
- $content[] vullen met succesvol ingelogt / $error vullen met fout bij inloggen e.d.
*/
}
else
{
# Errors weergeven
foreach( $errors as $error )
{
echo $error.'<br />';
}
}
}
else
{
$content[] = '
<form action="" method="post">
<label></label>
<input name="username" type="text" />
<label></label>
<input name="password" type="password" />
<input type="submit" value="Inloggen" />
';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Naamloos document</title>
</head>
<body>
<?php
if( empty( $errors ) )
{
# Content weergeven
foreach( $content as $line )
{
echo $line;
}
}
else
{
# Errirs weergeven
foreach( $errors as $error )
{
echo $error;
}
}
?>
</body>
</html>
Gewijzigd op 05/02/2011 08:56:17 door Milo S
Oke, kijk is aan dit zal me zeker verder helpen! Bedankt Milo!