Lijst ene klantnummer wel, andere niet.

  • Heey allemaal,


    Ik ben een klantenpaneel aan het maken, en nou ben ik bezig met de login, nou heb ik 1 probleem ermee, mijn klantnummer leest die wel, maar van een 2, test account niet. Misschien zien jullie het probleem.


    De code voor gegevens uit de db:

    PHP
    // STANDAARD GEGEVENS BEGIN //
    $info = mysqli_query($con, "SELECT * FROM customers");
    $gegevens = mysqli_fetch_array($info);



    De code die checkt of de gegevens kloppen:


    Ik heb alles geprobeerd.. Iemand enig idee?


    Gr,

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • Guest, wil je besparen op je domeinnamen? (ad)
  • Zou je jouw hele code kunnen posten op pastebin.com en de link hier delen?
    Verder is jouw code, naar mijn mening, iets te omslachtig qua 'efficiëntie' en zou ik een inlog systeem anders aanpakken.


    Qua debuggen zou ik nu even eens var_dump uitproberen, dus:

    PHP
    var_dump($gegevens['klantnummer'], $gegevens['wachtwoord'], $klant, $wachtwoord);


    Zo kun je al kijken of de gegevens ook echt kloppen, verder snap ik niet echt waarom je het klantnummer beveiligd?

  • puur voor de veilligheid, en dit is de code die ervoor zorgt dat dit het doet, hele codes ga ik niet opzetten. Maar hij pakt maar 1 rij uit de database, en dat snap ik niet ...

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

    Bewerkt één keer, laatst door mentimjojo ().

  • PHP
    // STANDAARD GEGEVENS BEGIN //
    $info = mysqli_query($con, "SELECT * FROM customers");
    $gegevens = mysqli_fetch_array($info);


    Hier selecteer je alle rijen en alle kolommen waardoor er een array in een array is. Hou je hier wel rekening mee? Ik zie dat namelijk nergens in je script staan.


    Het is inderdaad onnodig dat je je klantnummer codeert omdat het handiger is als je je klantnummer in je klantenpaneel kan zien. Zo kan je je klantnummer meteen doorgeven en je hebt alle info. Verder als je iets codeert doe dit dan niet dubbel omdat de hash dan minder uniek wordt. Daarbij is ook het risico dat je twee verschillende klantnummers hebt maar met de dezelfde hash.

  • Je hebt tenminste een gegeven nodig om geen array in een array te krijgen dat uniek is. Bijvoorbeeld een id. Dan haal je dit op met een SQL query en dan kan je $gegevens['password'] bij wijze van spreken doen. Maar mij is nog niet helemaal duidelijk wat je precies wil bereiken.


    Mag ik trouwens vragen waarom je request gebruikt en niet post. Request zorgt ervoor dat je get en post kan gebruiken.

  • Hallo,


    Punt is dat ik niet veel snap van die mysqli... En wat ik probeer is een inlog systeem te bouwen..


    Dit is de code die ik nu heb, maar dat pakt alleen de eerste rij waardoor je alleen met de gegevens vanaf de 1ste rij in de tabel kan inloggen, hoe selecteer ik alle rijen


    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • " SELECT klantnummer,wachtwoord FROM customers WHERE klantnummer = '".$_POST['klant']." "


    Dat stukje moet natuurlijk nu wel na de isset en na het stukje dat je $_POST omzet naar variabelen. Ook zou ik de input van de user beveiligen.'

  • Nu heb ik dit en nog steeds niet werkend...


    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

  • Nogmaals als het verkeerd resultaat geeft, moet je het gaan debuggen. Zet ergens var_dump() neer(met de variabelen erin) en kijk wat eruit komt. Zo weet je of de query wel het goede resultaat ophaalt of niet...

  • Het zit hem in de controle van je wachtwoord, de laatste if die je hebt staan voordat je de session gaat zetten.
    Naar mijn mening moet je deze query gebruiken:


    PHP
    $result = mysqli_query($con,"SELECT klantnummer,wachtwoord FROM customers WHERE klantnummer = '".$_POST['klant']."' AND wachtwoord = '".sha1($_POST['pass'])."'");


    Op voorwaarde dat het database veld voor wachtwoord, wachtwoord noemt.
    Ik zou tevens ook eens kijken naar het beveiligen van je query.


    Bovenstaande query kan je gewoon een count rows op los laten om te kijken of er een match is in de database.



  • Beveilliging doe ik zodra het werkt, ik heb nu dit:




    Het zal wel aan mij liggen maar hij leest geen rows, ook al kloppen de gegevens.

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

    Bewerkt 2 keer, laatst door mentimjojo ().

  • Nu heb ik het probleem gefixed qua inloggen etc. En een nieuw topic voor dit probleem vind ik onnodig, ik krijg als je je gegevens wilt aanpassen deze error:



    PHP
    Warning: Cannot modify header information - headers already sent by (output started at /home/tnijborg/domains/developers4you.nl/public_html/customers/index.php:25) in /home/tnijborg/domains/developers4you.nl/public_html/customers/pages/account.php on line 29


    En daarbij gaat het op deze 2 stukjes code:


    Lijn 25 uit index:

    PHP
    <?php echo $menulinks; ?>


    Lijn 29 uit account.php

    PHP
    header('Refresh: 0; url=index.php?page=account&goed=1&security=' . $sessieids . '&save=' . $securityid);


    Maar in menulinks, althans die echo, staat niks met header etc, dus waar komt deze fout vandaan...

    PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
    Vragen?! Stuur me gerust een prive bericht :) !

Participate now!

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