Login check

  • Hallo cp'ers


    Ik wil van de function van check_login af bij vendetta.


    Ik heb er nou zelf een gemaakt.


    De check_login function was.


    En dan om te kijken of je bent ingelogt zo.

    PHP
    if(! check_login()) {
        header('Location: login.php');
        exit;
      }


    Ik heb het nou zo gemaakt.


    In de config.php

    PHP
    $dbres 			= mysql_query("SELECT * FROM `Users` WHERE `login`='{$_SESSION['login']}'");
    $checklogin 	= mysql_num_rows($dbres);


    En dan om te kijken of je bent ingelogt.


    PHP
    if ($checklogin == 0) {
    	header ("Location: login.php");
    	exit;
    }


    Komt dit op hetzelfde neer of moet ik er nog wat aan veranderen?

  • Waarom niet meteen een functie?
    Dit is de mijne:



    Vrij makkelijk, indien het ge?ncrypte wachtwoord plus een andere string niet gelijk is aan de $_SESSION['c_hash'] - die is gedefineerd bij het inloggen - word de rest van de pagina simpelweg niet meer uitgevoerd. Easy as hell. Ik raad je aan om ook zoiets te gebruiken, dus boven elke pagina $inloggencheck(); te zetten.

  • PHP
    $controlehash = $assoc['pass']+$assoc['randomveld']


    stel...
    $assoc['pass'] = '0123456789abcdef0123456789abcdef'; (lijkt me heel grappig om te weten wat zo'n md5 hash levert)
    $assoc['randomveld'] = '9876543210Iamrandom';


    PHP
    $controlehash = $assoc['pass']+$assoc['randomveld'];
        var_dump($controlehash); // output: float(9999999999)


    Ik gok dat jij eigenlijk een lange string had verwacht? (controlehash = '0123456789abcdef0123456789abcdef9876543210Iamrandom';)
    dan gebruik je toch echt een "." en geen "+"...


    YVMdesign
    Het nadeel van jouw manier is dat je de variabele $checklogin niet meer mag overschrijven...
    Stel dat iemand anders dat niet weet? dan krijg je problemen...
    Werk je met een functie zal PHP een fout geven en hoef je niet eers te zoeken naar wat er ooit fout gaat daar ergens in het script...
    Natuurlijk zou je een constante aan kunnen maken...
    Constantes zijn net als superglobals overal aanroepbaar... (ze hebben de zelfde variable scope)
    Binnen welke functie of classe je ook zit...
    Voor variabele kun je het zelfde niet zeggen...

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!