Versio

Inlog pagina faalt: blijft leeg

Overzicht Reageren

23/03/2006 21:59:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.');
        }

?>


Sources/login.asp
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
...

Error reporting staat op all.

Inloggen proberen kan met demo/demo.
Gewijzigd op 25/03/2006 10:45:00 door
 
PHP hulp

PHP hulp

25/05/2012 04:27:16
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Wout van der Burg

Wout van der Burg

24/03/2006 08:25:00
Quote Anchor link
waarom zet je php scripts in een asp bestand..?
of kan dat?
 

24/03/2006 08:27:00
Quote Anchor link
@burrug
Dat kan, je kunt btw ook asp tags gebruiken om aan je PHP script te beginnen. (<% %> volgens mij)
 
Wout van der Burg

Wout van der Burg

24/03/2006 08:30:00
Quote Anchor link
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...
 

24/03/2006 08:41:00
Quote Anchor link
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.
 
Wout van der Burg

Wout van der Burg

24/03/2006 08:52:00
Quote Anchor link
is er geen apart <form> script dan?
 
Wes

wes

24/03/2006 09:12:00
Quote Anchor link
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 :)
 
Davy Jansen

Davy Jansen

24/03/2006 09:12:00
Quote Anchor link
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
 
Wout van der Burg

Wout van der Burg

24/03/2006 09:16:00
Quote Anchor link
waarom niet zoiets; ?act=login&s=4b4176230... ?

je kan ook er toch ook iets van;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
"login.asp?act=<?=urlencode($rs['loginaction']);?>"

van maken?
Gewijzigd op 24/03/2006 09:16:00 door Wout van der Burg
 
Wes

wes

24/03/2006 09:30:00
Quote Anchor link
chup, weet je niet, de pagina kan afgevangen worden en geinclude bijv
 
Davy Jansen

Davy Jansen

24/03/2006 09:32:00
Quote Anchor link
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.
Gewijzigd op 24/03/2006 09:33:00 door Davy Jansen
 
Wout van der Burg

Wout van der Burg

24/03/2006 10:00:00
Quote Anchor link
post je form code eens sebastiaan.. (als je online bent :) )
 
Willem Jan Z

Willem Jan Z

24/03/2006 10:11:00
Quote Anchor link
Burrug, ooit van HTML broncode gehoort?

Edit

Er staat achter de action URL een &amp; 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
 

24/03/2006 23:17:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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&#239;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;

?>
Dit is de herschreven code wat ook niet werkt :S
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 ;)
 

25/03/2006 10:43:00
Quote Anchor link
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?
 
Pieter van Linschoten

Pieter van Linschoten

25/03/2006 11:43:00
Quote Anchor link
Omdat het een class is misschien...?
 

25/03/2006 11:49:00
Quote Anchor link
Of de @ om een include foutmelding te onderdrukken. Maar dat lijkt me sterk...

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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
   if (($fp = @fopen($filename, 'r', 1)) and fclose($fp)) include $filename;
?>


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.
Gewijzigd op 25/03/2006 11:53:00 door
 



Overzicht Reageren

Get Adobe Flash player