[PHP] Vage redirect en refresh na inloggen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RwD
  • Registratie: Oktober 2000
  • Niet online

RwD

kloonikoon

Topicstarter
Ik gebruik het onderstaande script om administratoren in te laten loggen op een website.

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
if (  isset( $_REQUEST[ 'inputLogin' ] )    
   && isset( $_REQUEST[ 'inputPassword' ] ) ) {
    # QUERY:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    #    SELECT  *                                                                     :
    #    FROM    admin                                                                 :
    #    WHERE   Login    = 'Ikke'                                                     :
    #    AND     Password = '******'                                                   :
    # .................................................................................:
    $query  = 'SELECT Active, Name '                                                   ;
    $query .= "FROM   {$tbl['admin']} "                                                ;
    $query .= "WHERE  Login     = '" .      $_REQUEST['inputLogin']      . "' "        ;
    $query .= "AND    Password  = '" . md5( $_REQUEST['inputPassword'] ) . "' "        ;
    $DB->query( $query )                                                               ;
    # ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
    //
    if ( $DB->has_rows() ) {
        $DB->next_record();
        if ( $DB->f( 'Active' ) == '1' ) {
            $_SESSION[ 'AdminLoggedIn' ] = $DB->f( 'Name' );
            //****
            //* Hier nijpt het een beetje
            header( 'Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] );
            //****
            exit;
            }
        else {
            unset( $_SESSION[ 'AdminLoggedIn' ] );
            $e_login = "Uw account heeft geen administrator rechten!";
            }
        }
    else {
        unset( $_SESSION[ 'AdminLoggedIn' ] );
        $e_login = "Uw login en wachtwoord combinatie is niet juist!";
        }
    }
else {
    //* Login zonder naam of wachtwoord
    unset( $_SESSION[ 'AdminLoggedIn' ] );
    if ( isset( $_REQUEST[ 'Login' ] ) ) {
        $e_login = "Vul zowel een login naam als een wachtwoord in!";
        }
    }

$inputLogin = $_REQUEST[ 'inputLogin' ];

//***
//* Now show the login part
$tbs->LoadTemplate( $dir['all'] . 'templates/login.htm' );
$tbs->Show();
exit;


Probleem is alleen dat bij de Redirect ik dus de pagina zelf weer open, nu alleen met die admin ingelogd. Tenminste, dat is de bedoeling, alleen laat de internet explorer na de redirect een witte pagina zien. Ververs ik die pagina (zelfde adres!!) dan krijg ik een "The page cannot be displayed". Ververs ik weer, dan gaat ie verder, ingelogd en wel 8)7

Dus gewoon op hetzelfde adres en alles. Ongeact hoe lang ik wacht voordat ik ververs druk :?

Ik heb dit nog niet eerder gezien eigenlijk, en dit forum, google en php.net ook niet :P

Misschien doe ik iets stoms. Maar doorlinken naar een bestaande pagina met deze methode (de header functie bedoel ik dan, niet de inlogprocedure) heeft tot nu toe altijd gewerkt!!

[ Voor 17% gewijzigd door RwD op 24-06-2004 19:05 ]


Acties:
  • 0 Henk 'm!

  • py.mosjuh
  • Registratie: Oktober 2002
  • Laatst online: 24-10-2022

py.mosjuh

fikkert.net

weet je in welke if statement hij uiteindelijk terecht komt? (doe eens een echo oid anders). kan je wat gerichter zoeken imo.. lijkt zo op het eerste gezicht dat hij de redirect niet uitvoert en dan vervolgens de template laad met geen inhoud oid..

Kites rise highest against the wind - not with it (Winston Churcill)


Acties:
  • 0 Henk 'm!

  • TweakBoy
  • Registratie: Augustus 2001
  • Laatst online: 14-09 22:16

TweakBoy

---

zet een exit(0);
na:
header( 'Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] );

en laat location naar een ander pagina sturen die je vervolgens redirect naar je adminpagina.. zo doe ik het altijd.. maak een standaard redirect file die alle redirects afhandelen.. IE wilt een beetje moeilijk doen met een redirect naar dezelfde pagina..

---


Acties:
  • 0 Henk 'm!

  • RwD
  • Registratie: Oktober 2000
  • Niet online

RwD

kloonikoon

Topicstarter
TweakBoy schreef op 24 juni 2004 @ 19:44:
zet een exit(0);
na:
header( 'Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] );

en laat location naar een ander pagina sturen die je vervolgens redirect naar je adminpagina.. zo doe ik het altijd.. maak een standaard redirect file die alle redirects afhandelen.. IE wilt een beetje moeilijk doen met een redirect naar dezelfde pagina..
Ik probeerder volgens mij precies wat je zei:
header( 'Location: http://localhost/minichamp/all/login.php' );

en die zegt weer:
header( 'Location: http://localhost/minichamp/admin/index.php' );

Maar dat geeft hetzelfde resultaat...

(Ik wil per se dat header gebeuren gebruiken overigens. Anders gebruikte ik een meta refresh tag...)

[ Voor 12% gewijzigd door RwD op 24-06-2004 20:08 ]