Inlog pagina faalt: blijft leeg
Op mijn site( http://www.thetriads.be/ ) kan je niet inloggen. De inlogpagina blijft namelijk leeg. Terwijl de uitlogpagina en alle andere het gewoon doen.
Weet iemand waarom?
Stukje index.asp pagina:
Sources/login.asp
Error reporting staat op all.
Inloggen proberen kan met demo/demo.
Weet iemand waarom?
Stukje index.asp pagina:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
if ($inc = @include(ROOT.'sources/'.$this->actions[ $IN['act'] ] . PHP_EXT)) {
$this->contents = $inc->out;
$this->title = $inc->title;
$this->extra_js = isset($inc->extra_js) ? $inc->extra_js : "";
} else {
$this->contents = "Pagina '".$this->actions[ $IN['act'] ]."' is om ombekende reden niet beschikbaar (foutcode 404). Contacteer A.U.B de webmaster.";
$this->title = "Foutje";
$this->extra_js = "";
$ERR->log_error(FILE_ERROR, 'Het bestand "'.ROOT.'sources/'.$this->actions[ $IN['act'] ] . PHP_EXT.'" kon niet worden gevonden.');
}
?>
if ($inc = @include(ROOT.'sources/'.$this->actions[ $IN['act'] ] . PHP_EXT)) {
$this->contents = $inc->out;
$this->title = $inc->title;
$this->extra_js = isset($inc->extra_js) ? $inc->extra_js : "";
} else {
$this->contents = "Pagina '".$this->actions[ $IN['act'] ]."' is om ombekende reden niet beschikbaar (foutcode 404). Contacteer A.U.B de webmaster.";
$this->title = "Foutje";
$this->extra_js = "";
$ERR->log_error(FILE_ERROR, 'Het bestand "'.ROOT.'sources/'.$this->actions[ $IN['act'] ] . PHP_EXT.'" kon niet worden gevonden.');
}
?>
Sources/login.asp
Error reporting staat op all.
Inloggen proberen kan met demo/demo.
Gesponsorde koppelingen:
waarom zet je php scripts in een asp bestand..?
of kan dat?
of kan dat?
@burrug
Dat kan, je kunt btw ook asp tags gebruiken om aan je PHP script te beginnen. (<% %> volgens mij)
Dat kan, je kunt btw ook asp tags gebruiken om aan je PHP script te beginnen. (<% %> volgens mij)
ah oke wis ik niet..:)
als je bij gebrnaam en pw demo invoert, kom je op een leeg scherm...
ik denk dat je je formaction even moet nakijken opdat je geen verwijzing hebt naar een nieuwe pagina...
als je bij gebrnaam en pw demo invoert, kom je op een leeg scherm...
ik denk dat je je formaction even moet nakijken opdat je geen verwijzing hebt naar een nieuwe pagina...
Volgens mij heb je geen output omdat je nergens een output functie gebruikt. Ik zie je wel error_log gebruiken, maar die kan ik niet terugvinden in de PHP manual, dus ik neem aan dat dat een zelfgeschreven functie is.
is er geen apart <form> script dan?
error_log bestaat wel,
beetje een snelle versie van fwrite etc. met error_log kan je automatisch een bestand aanmaken met informatie, naam geven en updaten als hij al bestaat. gebruik al tijden error_log boven fwrite, tis retehandig en kort :)
beetje een snelle versie van fwrite etc. met error_log kan je automatisch een bestand aanmaken met informatie, naam geven en updaten als hij al bestaat. gebruik al tijden error_log boven fwrite, tis retehandig en kort :)
volgens mij moet je aan je form action 'login.asp' koppelen, omdat hij hem daarin probeert te verwerken. Dus een direct link naar login.asp, en niet zo iets: ?act=login&s=4b4176230...
Succes :D
- Chupskie
Succes :D
- Chupskie
waarom niet zoiets; ?act=login&s=4b4176230... ?
je kan ook er toch ook iets van;
van maken?
je kan ook er toch ook iets van;
van maken?
Gewijzigd op 24/03/2006 09:16:00 door Wout van der Burg
chup, weet je niet, de pagina kan afgevangen worden en geinclude bijv
Jah dat zou nog een veel betere oplossing zijn, burrug. Mijn oplossing was alleen bedoeld voor de test, of hij op deze manier wel kon inloggen. ;)
edit: @wes, ja dat weet ik ook, maar zoals ik hierboven al zei, om te testen was het een goede oplossing, om direct daarmee in te loggen.
Voor een vaste oplossing kun je beter de oplossing van burrug gebruiken lijkt mij.
edit: @wes, ja dat weet ik ook, maar zoals ik hierboven al zei, om te testen was het een goede oplossing, om direct daarmee in te loggen.
Voor een vaste oplossing kun je beter de oplossing van burrug gebruiken lijkt mij.
Gewijzigd op 24/03/2006 09:33:00 door Davy Jansen
post je form code eens sebastiaan.. (als je online bent :) )
Burrug, ooit van HTML broncode gehoort?
Edit
Er staat achter de action URL een & te veek, maar als ik die dmv WebDeveloper weghaal krijg ik alsnog een leeg scherm :)
Edit
Er staat achter de action URL een & te veek, maar als ik die dmv WebDeveloper weghaal krijg ik alsnog een leeg scherm :)
Gewijzigd op 24/03/2006 10:11:00 door Willem Jan Z
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
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
<?php
/*
+----------------------------------------------------------
| The Triads Website login pagina
| Gemaakt door Sebazzz
| =======================================
| Web: triads.buildtolearn.net
| Email: triadsebas@gmail.com
| Datum: 12 Maart 2006
| Versie: 1.0
+----------------------------------------------------------
|
| > Checkt of de
| > Logt dan de gebruiker in
| > Plaatst cookies
|
+----------------------------------------------------------
*/
//---------------------------------------------------------
// Token?
//---------------------------------------------------------
defined('_INC_') or exit(0);
//---------------------------------------------------------
// Testpagina class
//---------------------------------------------------------
$idx = new login_page();
class login_page {
var $out = "";
var $title = "";
function login_page() {
global $INFO, $DB, $TPL, $ERR, $IN;
//-------------------------------------------------
// Eerst checken of de gebruiker wel alles heeft ingevult
//-------------------------------------------------
if (!functions::checkfields(array('username', 'password'))) {
$this->title = 'Inloggen vroegtijdig beïndigt';
$this->out = $TPL->parse_template( 'inlog_failed' );
functions::redirect($INFO['site_url'].'act=idx&s='.session_id(), 1.5);
return;
}
//-------------------------------------------------
// Trimmen voor de nul bytes etc
//-------------------------------------------------
$IN['username'] = trim($IN['username']);
$IN['password'] = trim( md5($IN['password']) );
//-------------------------------------------------
// Query voor de authorizatie
//-------------------------------------------------
$DB->query("SELECT m.name, m.password, m.mgroup, m.id, g.g_access_cp, g.g_is_supmod
FROM ibf_members m
LEFT JOIN ibf_groups g
ON (m.mgroup=g.g_id)
WHERE m.name = '{$IN['username']}' AND m.password = '{$IN['password']}';");
//-------------------------------------------------
// Hooow! Niet geldig? Das absurt!
//-------------------------------------------------
if (!$DB->get_num_rows()) {
$IN['username'] = functions::make_htmlsafe($IN['username']);
$this->title = 'Inloggen mislukt';
$this->out = $TPL->parse_template( 'inlog_failed' );
//redirecten!
functions::redirect($INFO['site_url'].'act=idx&s='.session_id(), 1.5);
//dit incident loggen we even
$ERR->log_error( AUTH_ERROR, 'Gefaald in te loggen met gebruikersnaam "'.$IN['username'].'".' );
return;
}
//fetchen
$r = $DB->fetch_row();
//en toevoegen aan de sessie vars
$_SESSION['Username'] = $r['name'];
$_SESSION['Password'] = $r['password'];
$_SESSION['Mid'] = $r['id'];
$_SESSION['mgroup'] = $r['mgroup'];
$_SESSION['is_admin'] = $r['g_access_cp'];
$_SESSION['is_mod'] = $r['g_is_supmod'];
$_SESSION['logged_in'] = true;
$this->out = $TPL->parse_template( 'inlog_ok' , array( 'username' => functions::make_htmlsafe($IN['username']) );
functions::set_cookie('ttw_Username', $r['name']);
functions::set_cookie('ttw_Password', $r['password']);
functions::redirect($INFO['site_url'].'act=idx&s='.session_id(), 2);
}
}
return $idx;
?>
/*
+----------------------------------------------------------
| The Triads Website login pagina
| Gemaakt door Sebazzz
| =======================================
| Web: triads.buildtolearn.net
| Email: triadsebas@gmail.com
| Datum: 12 Maart 2006
| Versie: 1.0
+----------------------------------------------------------
|
| > Checkt of de
| > Logt dan de gebruiker in
| > Plaatst cookies
|
+----------------------------------------------------------
*/
//---------------------------------------------------------
// Token?
//---------------------------------------------------------
defined('_INC_') or exit(0);
//---------------------------------------------------------
// Testpagina class
//---------------------------------------------------------
$idx = new login_page();
class login_page {
var $out = "";
var $title = "";
function login_page() {
global $INFO, $DB, $TPL, $ERR, $IN;
//-------------------------------------------------
// Eerst checken of de gebruiker wel alles heeft ingevult
//-------------------------------------------------
if (!functions::checkfields(array('username', 'password'))) {
$this->title = 'Inloggen vroegtijdig beïndigt';
$this->out = $TPL->parse_template( 'inlog_failed' );
functions::redirect($INFO['site_url'].'act=idx&s='.session_id(), 1.5);
return;
}
//-------------------------------------------------
// Trimmen voor de nul bytes etc
//-------------------------------------------------
$IN['username'] = trim($IN['username']);
$IN['password'] = trim( md5($IN['password']) );
//-------------------------------------------------
// Query voor de authorizatie
//-------------------------------------------------
$DB->query("SELECT m.name, m.password, m.mgroup, m.id, g.g_access_cp, g.g_is_supmod
FROM ibf_members m
LEFT JOIN ibf_groups g
ON (m.mgroup=g.g_id)
WHERE m.name = '{$IN['username']}' AND m.password = '{$IN['password']}';");
//-------------------------------------------------
// Hooow! Niet geldig? Das absurt!
//-------------------------------------------------
if (!$DB->get_num_rows()) {
$IN['username'] = functions::make_htmlsafe($IN['username']);
$this->title = 'Inloggen mislukt';
$this->out = $TPL->parse_template( 'inlog_failed' );
//redirecten!
functions::redirect($INFO['site_url'].'act=idx&s='.session_id(), 1.5);
//dit incident loggen we even
$ERR->log_error( AUTH_ERROR, 'Gefaald in te loggen met gebruikersnaam "'.$IN['username'].'".' );
return;
}
//fetchen
$r = $DB->fetch_row();
//en toevoegen aan de sessie vars
$_SESSION['Username'] = $r['name'];
$_SESSION['Password'] = $r['password'];
$_SESSION['Mid'] = $r['id'];
$_SESSION['mgroup'] = $r['mgroup'];
$_SESSION['is_admin'] = $r['g_access_cp'];
$_SESSION['is_mod'] = $r['g_is_supmod'];
$_SESSION['logged_in'] = true;
$this->out = $TPL->parse_template( 'inlog_ok' , array( 'username' => functions::make_htmlsafe($IN['username']) );
functions::set_cookie('ttw_Username', $r['name']);
functions::set_cookie('ttw_Password', $r['password']);
functions::redirect($INFO['site_url'].'act=idx&s='.session_id(), 2);
}
}
return $idx;
?>
Ik heb tot overmaat van ramp overal echo's gezet maar die print ie ook niet. Hij komt er nooit.
Heel vreemd :S
@Burrug: Outputten gebeurt in het index.asp bestand. En je mag best in de html code kijken ;)
Oplossing gevonden. Met dankzij de 'user tools' functie van Editplus: Er zat een parse error in!
Heeft iemand een idee waarom hij dan geen error gaf?
Heeft iemand een idee waarom hij dan geen error gaf?
Omdat het een class is misschien...?
Of de @ om een include foutmelding te onderdrukken. Maar dat lijkt me sterk...
edit: Uit een user note van PHP.net:
edit: Uit een user note van PHP.net:
Quote:
Currently there is no clean way to check if a file can be included. Simply including a file which can't be opened causes a warning to be triggered. Suppressing include() with an @ (as often seen below) is not advisable, since parse errors won't be displayed, but will cause the script to die, causing a blank screen. (Happy debugging, hope you're using ZendStudio or some other debugger).
The best solution I've come up with is:
I believe the functions file_exists(), filesize(), is_readable() and is_writable() should have an use_include_path just like fopen().
If you agree with this, please PLEASE VOTE on bug #6932 (http://bugs.php.net/bug.php?id=6932). This bug has been open for over 5 years. Apparently no one is willing to add this feature.
The best solution I've come up with is:
I believe the functions file_exists(), filesize(), is_readable() and is_writable() should have an use_include_path just like fopen().
If you agree with this, please PLEASE VOTE on bug #6932 (http://bugs.php.net/bug.php?id=6932). This bug has been open for over 5 years. Apparently no one is willing to add this feature.



