Wachtwoord hashen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Freelance JAVA / C# Developer

Functieomschrijving Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Voor een opdrachtgever in omgeving Delft zijn wij op zoek naar ervaren JAVA of C# Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid

Bekijk vacature »

PHP/Symfony developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Bergen op Zoom ben je als PHP/Symfony Developer niet alleen bezig met software ontwikkeling. Je bent buiten ontwikkeling ook continu bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Techstack: PHP, Symfony & mySQL. Jouw takenpakket ziet er als volgt uit: Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klanten; Het schrijven van een schone en efficiënte code volgens het Symfony framework; Onderhouden

Bekijk vacature »

Mendix Developer

For our client in Amsterdam, we are looking for a Senior Mendix Developer. Company description Our client is an IT Consultancy company who’s been active for 10 years now. With their ambitious team, they are working with different clients in order to help them with analyzing their data and giving advice to them, regarding how they can use their data in the smartest ways, or to make sure that their mobile or web applications are working efficiently. As you get a glimpse of various industries, it is guaranteed that no day will be the same. Job description As a Mendix

Bekijk vacature »

Lasrobotprogrammeur/operator

Heb je interesse in trekkers en beschik je overvlijmscherpse precisie? Solliciteer dan op deze vacature! Als Lasoperator ben je vooral bezig met het maken van nieuwe lasrobotprogramma’s en het optimaliseren van bestaande programma’s, zowel online als offline (incl. het bedienen van de Lasrobots). Daarnaast draag je bij aan een optimaal rendement van de las robots. Verder heb je de volgende werkzaamheden: Het meewerken als operator c.q. Robotlassen niveau 2 (van complexe samenstellingen/halffabricaten), het om- en instellen van de diverse stations van lasmallen (productdragers), het afwerken van laswerk (verwijderen lasspetters en oxiden), het bewaken van de machineplanning (op bewerkingen) incl. de

Bekijk vacature »

Software Developer (Junior functie)

Functieomschrijving Wij zijn op zoek naar een Software Developer! Sta jij in de startblokken om je carrière te beginnen en kan je niet wachten om toffe software te gaan ontwikkelen? Kortom, ben je onlangs afgestudeerd of sta je op het punt om je papiertje te behalen? Voor een IT dienstverlener dat gespecialiseerd is in Microsoft technologie zijn wij op zoek naar C#.NET Developers. Het bedrijf heeft meerdere klanten in regio Utrecht waar je permanent kan komen te werken. Kom je liever te werken bij een klein softwarebedrijf of bij een groot consultancy bureau? Dat is helemaal aan jou de keuze!

Bekijk vacature »

Software Ontwikkelaar C# .NET

Functie omschrijving Startende Software Ontwikkelaar gezocht met kennis van C# .NET! Ben jij net klaar met je opleiding en ben je op zoek naar je eerste echte werkervaring? Of heb jij al enige werkervaring maar ben toe aan iets nieuws? Dan is dit de perfecte kans voor jou! Wij zoeken namelijk een Junior Software Ontwikkelaar die klaar is voor een nieuwe uitdaging bij een leuke werkgeven in de regio Zeist. In deze functie werk jij vaak aan verschillende projecten en ga je bij klanten op bezoek. Ben jij op zoek naar een functie met uitdaging, diversiteit en verantwoordelijkheid? Dan is

Bekijk vacature »

REMOTE - Front-end Angular developer

Functie Het IT-team bestaat momenteel uit de IT Manager, 2 back-end developers, 1 fullstack developer, 1 designer en een DevOps engineer. Ze zijn momenteel op zoek naar een ervaren Front-end developer die autonoom en gedisciplineerd aan de slag gaat, en bij aanvang als enige developer met hun Front-end applicaties bezig is. Wel hebben ze de ambitie om hier snel een 2e developer bij te vinden die jij dan ook zal kunnen aansturen/begeleiden. Je zult aan de slag gaan met het doorontwikkelen van hun bestaande UI in Angular. Maar ook het ontwikkelen van een mobiele app. Hierbij hechten ze veel waarde

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

PHP Developer

Functie omschrijving Voor een bedrijf in Den Bosch zoek ik een PHP Developer, die al wat werkervaring heeft. Jij gaat aan de slag met de verdere professionalisering van de interne applicaties en software. In de functie ga je verder: Verdere ontwikkeling eigen CRM systeem, vooral middels PHP; Bouwen van verschillende API's & koppelingen; Meedenken om de software/applicaties te verbeteren/optimaliseren; Aan de slag met de interne tooling. Bedrijfsprofiel Dit bedrijf is actief binnen de telecombranche. Het hoofdkantoor zit in regio van Den Bosch en er werken ruim 70 medewerkers, verdeeld over verschillende afdelingen. De afdeling Development bestaat uit vijf collega's, onder

Bekijk vacature »

Network Engineer (f/m/d) in Heidelberg

Network Engineer (f/m/d) The IT Services team operates and supports the IT infrastructure and services at EMBL headquarters in Heidelberg and at the laboratory’s sites in Barcelona and Rome. As part of IT Services, the Network team is responsible for managing and developing the network infrastructure in our data centres, on campus, and to our external network providers. As a leading scientific institution with highly data-intensive research, extensive data flows at and between the laboratory’s six sites and to the Internet, EMBL is connected to national and international scientific networks using state-of-the-art technologies from vendors including Cisco, Extreme Networks and

Bekijk vacature »

Java Developer (Training And Simulation)

Wat jij doet Je zou onze Java Developer zijn en nauw samenwerken met je Product Owner, Software System Engineer, Scrum Master en andere Developers. Samen draag je bij aan een multidisciplinair en zelf organiserend Agile team. De rol is zeer afwisselend en bestaat uit, maar is zeker niet beperkt tot: de-risk en prototype onbewezen simulatietechnologieën; simulatiekaders ontwikkelen voor gebruik door andere teams; je bent goed in het begrijpen van ingewikkelde ideeën; heeft de mogelijkheid om nauw samen te werken met grote internationale klanten, leveranciers en overheden om onze oplossingen, vastleggingsvereisten, enz. te definiëren en te presenteren. Ben jij het? Wij

Bekijk vacature »

C# .NET Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen development waar je komt te werken binnen een flexibel, jong en ondernemend bedrijf. Lees dan snel verder! Voor deze functie zoeken wij een C# .NET Developer die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Daarnaast begeleid je complexe projecten, wij zoeken iemand die altijd kansen ziet en waarbij het glas altijd half vol is. Voor deze functie zoeken wij een Developer met ervaring op het gebied van .NET die deze organisatie gaat versterken. Binnen de organisatie ga jij je vooral bezighouden met het verbeteren van

Bekijk vacature »

C# .NET developer voor innovatieve applicaties gez

Bedrijfsomschrijving Deze werkgever houdt zich al ruim 20 jaar bezig met het ontwikkelen van innovatieve software en dat willen ze graag nog lang doorzetten. En dat merk je ook als je als .NET developer hier aan de slag gaat. De applicaties worden continu doorontwikkeld met altijd als uitgangspunt dat zowel de kwaliteit als het gebruikersgemak van hoog niveau is. Het bedrijf telt inmiddels ruim 25 medewerkers waarvan meer dan de helft op de development afdeling werken. Meer weten over deze werkgever? Mail naar [email protected] of bel 0657578548 Functieomschrijving Je komt te werken in een Scrum team met andere .NET developers

Bekijk vacature »

.NET developer

Functie Als ervaren .NET ontwikkelaar ontbreekt er aan passie en motivatie niks. Jij bent communicatief sterk en pakt iedere uitdaging dan ook met beide handen aan. Op projectbasis ga jij met je team of met enkele andere ontwikkelaars intern aan de slag bij diverse partners. Op basis van het project ga jij aan de slag en zijn de werkzaamheden en technieken erg divers. Jouw werkgever stelt jouw ontwikkeling hierin voorop, zo krijg je een vast vertrouwenspersoon die één keer in de maand op locatie van jouw project zal kijken hoe het gaat en of er eventuele aandachtspunten zijn. Daarnaast krijg

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Pagina: « vorige 1 2 3 4 volgende »

Eeyk Vd noot

Eeyk Vd noot

08/03/2015 19:42:41
Quote Anchor link
Btw je moet geen Mysql_ meer gebruiken. gebruik Mysqli_ anders heb je straks een probleem als je webhosting een update geeft aan je huidige php versie.
 
PHP hulp

PHP hulp

15/01/2025 11:52:45
 
Dos Moonen

Dos Moonen

08/03/2015 20:12:56
Quote Anchor link
registratie pagina: include password.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php // kleurtjes
$password = $_POST['password'];
// controleer hier op minimale lengte, maximale lengte of wat dan ook
$hash = password_hash($password, PASSWORD_BCRYPT, array('cost' => 12));
$test = $hash; // of verander '$test' in die query door $hash
?>


login pagina: include password.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php // kleurtjes

// vervang regels 19 t/m 27 door dit

        if(($username == $table_users) && password_verify($password, $table_password))
        {

                $_SESSION['user'] = $username; // heb je geen id dat je kan gebruiken? is wat netter
                header("location: home.php");
                exit();
        }

?>


MD5 is niet aan te raden, zeker niet wanneer je maar 2 iteraties doet in plaats van een paar duizend. password_* functies zijn geschreven door mensen die er meer verstand van hebben dan wij.
Gewijzigd op 08/03/2015 20:13:15 door Dos Moonen
 
Ronnie Peeters

Ronnie Peeters

08/03/2015 20:24:00
Quote Anchor link
Bedankt, het wegschrijven doet hij goed.

Alleen kan ik nu niet meer inloggen? (invalid password zegt hij):

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
<?php
include("password.php");
    session_start();
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    mysql_connect("localhost", "root","usbw") or die(mysql_error()); //Connect to server
    mysql_select_db("first_db") or die("Cannot connect to database"); //Connect to database
    $query = mysql_query("SELECT * from users WHERE username='$username'"); //Query the users table if there are matching rows equal to $username
    $exists = mysql_num_rows($query); //Checks if username exists
    $table_users = "";
    $table_password = "";
    if($exists > 0) //IF there are no returning rows or no existing username
    {
        while($row = mysql_fetch_assoc($query)) //display all rows from query
        {
            $table_users = $row['username']; // the first username row is passed on to $table_users, and so on until the query is finished
            $table_password = $row['password']; // the first password row is passed on to $table_users, and so on until the query is finished
        }
      if(($username == $table_users) && password_verify($password, $table_password))
        {

                $_SESSION['user'] = $username; // heb je geen id dat je kan gebruiken? is wat netter
                header("location: home.php");
                exit();
        }

        
        else
        {
            Print '<script>alert("Incorrect Password!");</script>'; //Prompts the user
            Print '<script>window.location.assign("login.php");</script>'; // redirects to login.php
        }

    }

    else
    {
        Print '<script>alert("Incorrect Username!");</script>'; //Prompts the user
        Print '<script>window.location.assign("login.php");</script>'; // redirects to login.php
    }
?>
 
- Ariën  -
Beheerder

- Ariën -

08/03/2015 20:26:33
Quote Anchor link
Je hasht hem niet bij de inlog.
 
Dos Moonen

Dos Moonen

08/03/2015 20:31:49
Quote Anchor link
Zet het volgende eens tussen regel 19 en 20:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
var_dump($row, $_POST);

Post het resultaat hier, zorg dat je een test password gebruikt :p
Gewijzigd op 08/03/2015 20:32:31 door Dos Moonen
 
Ronnie Peeters

Ronnie Peeters

08/03/2015 20:45:06
Quote Anchor link
dan krijg ik het volgende (username test1 password test1):


bool(false) array(2) { ["username"]=>string(5)"test1"["password"]=>string(5)"test1"}
 
Dos Moonen

Dos Moonen

08/03/2015 20:50:46
Quote Anchor link
Ik ben een idioot... het had tussen 18 & 19 gemoeten, sorry!
 
Ronnie Peeters

Ronnie Peeters

08/03/2015 20:53:23
Quote Anchor link
geen probleem :)

array(10) { ["id"]=> string(2) "10" ["username"]=> string(5) "test1" ["password"]=> string(50) "$2y$12$2JQY43uS37k9nbNDgOZdYe3jhu63igEkRfLcaVr1E8Z" ["naam"]=> string(0) "" ["achternaam"]=> string(0) "" ["telefoonnr"]=> string(0) "" ["email"]=> string(0) "" ["straatnaam"]=> string(0) "" ["huisnr"]=> string(1) "0" ["postcode"]=> string(1) "0" } array(2) { ["username"]=> string(5) "test1" ["password"]=> string(5) "test1" }
 
Dos Moonen

Dos Moonen

08/03/2015 21:04:33
Quote Anchor link
Vergroot het 'password' veld in database, minimaal 66 geloof ik (uit mijn hoofd), maar doe gewoon 255.

MySQL heeft een deel van de hash weggegooit...
 
Ronnie Peeters

Ronnie Peeters

08/03/2015 21:08:33
Quote Anchor link
THANKs!!!!!! dat was hem idd :)

Nog een vraagje:
$hash = password_hash($password, PASSWORD_BCRYPT, array('cost' => 12));
Wat doet "array('cost' => 12)" feitelijk als ik vragen mag?
 
Dos Moonen

Dos Moonen

08/03/2015 21:19:54
Quote Anchor link
Dat zorgt er voor dat het 2 tot de 12e macht keer een computatie doet. Voor het hashen van wachtwoorden wil je een relatief traag algoritme gebruiken. Bij Bcrypt kan je dynamisch de traagheid aanpassen door de cost parameter aan te passen
Het moet voor Bcrypt een waarde tussen 4 en 31 zijn. 2^12=4096. Die array is optioneel, de standaard cost is 10.

Nu je op een veilige manier wachtwoorden hast stel ik voor dat je switched van mysql_ functies naar de mysqli_ functies zodat je gebruik kunt maken van prepared statements. Het is netter en als je jezelf aanleert om altijd prepared statements te gebruiken is de kans dat je sql injecties mogelijk maakt kleiner.
Gewijzigd op 08/03/2015 21:29:28 door Dos Moonen
 
Ronnie Peeters

Ronnie Peeters

08/03/2015 22:09:14
Quote Anchor link
Bedankt!
 
Ivo P

Ivo P

09/03/2015 09:17:51
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
include("password.php");
    session_start();
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    mysql_connect("localhost", "root","***") or die(mysql_error()); //Connect to server
    mysql_select_db("first_db") or die("Cannot connect to database"); //Connect to database
?>


De functie mysql_real_escape_string() heeft een database connectie nodig. Niet handig om die te gebruiken voordat je connect. PHP gaat nu zelf proberen zonder password te connecten. Meestal met een foutmelding tot gevolg.

escapen van je password bij het inloggen moet je niet doen trouwens.
Je gebruikt de waarde van $_POST['password'] niet in je query.

Stel het password is ' (alleen een single quote).
Na het escapen is het \'

Daarna haal je het gehaste password op. Dat zou de hash van ' moeten zijn.

Als je daarna de hash van \' bepaalt, is dat niet gelijk.
(tenzij je bij het opslaan van het password natuurlijk dezelfde fout maakt)
 
Dos Moonen

Dos Moonen

09/03/2015 10:52:50
Quote Anchor link
Ivo P op 09/03/2015 09:17:51:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
include("password.php");
    session_start();
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);

    mysql_connect("localhost", "root","***") or die(mysql_error()); //Connect to server
    mysql_select_db("first_db") or die("Cannot connect to database"); //Connect to database
?>


De functie mysql_real_escape_string() heeft een database connectie nodig. Niet handig om die te gebruiken voordat je connect. PHP gaat nu zelf proberen zonder password te connecten. Meestal met een foutmelding tot gevolg.

escapen van je password bij het inloggen moet je niet doen trouwens.

Goede punten. Maar de mysqli extensie gebruiken in combinatie met prepared statements is nog netter. Dan escape je dingen impliciet door waardes als waardes door te geven, niet als delen van de query.

Ivo P op 09/03/2015 09:17:51:
Je gebruikt de waarde van $_POST['password'] niet in je query.

Dat willen we ook helemaal niet, het wachtwoord komt niet verder dan PHP.

Ivo P op 09/03/2015 09:17:51:
Stel het password is ' (alleen een single quote).
Na het escapen is het \'

Daarna haal je het gehaste password op. Dat zou de hash van ' moeten zijn.

Als je daarna de hash van \' bepaalt, is dat niet gelijk.
(tenzij je bij het opslaan van het password natuurlijk dezelfde fout maakt)

Inderdaad niet gewenst.
 
Ivo P

Ivo P

09/03/2015 10:55:01
Quote Anchor link
Quote:
Dat willen we ook helemaal niet, het wachtwoord komt niet verder dan PHP.


dat zeg ik ook niet. Ik constateer alleen dat de reden voor het escapen het gebruik ik een query zou zijn. Aangezien dat niet plaats vindt (prima), is het escapen ook overboedig / ongewenst (zie rest)
 
Ronnie Peeters

Ronnie Peeters

09/03/2015 13:15:12
Quote Anchor link
Even een bijkomende vraag, ik heb een extra veld aangemaakt in mijn users tabel. Namelijk admin, wanneer er in dat veld de waarde "azert" is mogen ze aanloggen, maar ik wil ook de juiste footbooschap vermelden wanneer de gebruikersnaam, wachtwoord of dat ze idd access denied krijgen omdat ze geen admin rechten hebben.

Ik denk dat er iets mis is met mijn if else structuur, mogelijk nog iets anders. (mysql zal ik nog aanpassen naar mysqli of pdo) Als ik met de juiste credentials inlog die admin rechten hebben, heb ik geen probleem.
Maar als ik inlog met een gebruikersnaam die niet bestaat, krijg ik gewoon en wit scherm. Hetzelfde als ik inlog met een acccount die wel bestaat maar geen admin is?

Alvast bedankt!

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
<?php
    session_start();
    $username = mysql_real_escape_string($_POST['username']);
    $password = mysql_real_escape_string($_POST['password']);
    $bool = true;

    mysql_connect("localhost", "ok", "ok") or die (mysql_error());
    mysql_select_db("first_db") or die ("Cannot connect to database");
    $query = mysql_query("Select * from users WHERE username='$username'");
    $exists = mysql_num_rows($query);
    $table_users = "";
    $table_password = "";
    if($exists > 0)
    {

       while($row = mysql_fetch_assoc($query))
       {

          $table_users = $row['username'];
          $table_password = $row['password'];
         $admin = $row['admin'];
      }

      if (($admin =="azert"))
      {

      
       if(($username == $table_users) && ($password == $table_password) && ($admin == "azert"))
       {

          
          if($password == $table_password)
          {

             $_SESSION['user'] = $username;
            $_SESSION['admin'] = $admin;
             header("location: home.php");
          }

          else
              
           {
        Print '<script>alert("Incorrect username!");</script>';
        Print '<script>window.location.assign("login.php");</script>';
       }
       }

       else
       {
        Print '<script>alert("Incorrect Password!");</script>';
        Print '<script>window.location.assign("login.php");</script>';
       }
    }

    else
    {
        Print '<script>alert("Acces denied!");</script>';
        Print '<script>window.location.assign("login.php");</script>';
    }}

?>
Gewijzigd op 09/03/2015 13:17:07 door Ronnie Peeters
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/03/2015 13:55:56
Quote Anchor link
Even in jip en janneke taal:

Inloggen is om te bepalen WIE een anonieme gebruiker zou kunnen zijn. Alle gebruikers zijn in den beginne anoniem maar we willen niet dat iedereen overal zomaar bij kan. Daarom willen we gebruikers identificeren aan de hand van een gebruikersnaam/email en wachtwoord.
Daarna is een anonieme gebruiker in eens een bekende gebruiker geworden en kunnen we uit de database lezen welke rechten (of rollen) de gebruiker heeft.

Bovenstaande brengt ons op het logische punt dat je altijd eerst gaat inloggen om de identiteit te achterhalen van de gebruikers en pas daarna ga je bepalen welke rechten ze hebben.


dus:
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
<?php
if($username == $table_users && $password == $table_password)
{

    $_SESSION['user'] = $username;
    $_SESSION['admin'] = $admin;

    if($admin == "azert")
    {

        header("location: admin.php");
    }
else {
        header("location: home.php");
    }
}

?>


Toevoeging op 09/03/2015 14:00:11:

Ik zou je foutmeldingen beperken tot 'Combinatie van gebruikersnaam en wachtwoord onjuist.'. Dit om hackers niet de informatie te geven dat ze bijvoorbeeld de gebruikersnaam al geraden hebben.

Toevoeging op 09/03/2015 14:05:04:

Een access denied pagina zou ik hooguit tonen aan gebruikers die
a) reeds ingelogd zijn
b) onvoldoende rechten hebben om de pagina te bekijken

Deze pagina mag ook een normale webpagina zijn die netjes de mededeling 'Onvoldoende rechten' laat zien.

Voor gebruikers die niet zijn ingelogd zou ik doorsturen naar de loginpagina.
 
Ward van der Put
Moderator

Ward van der Put

09/03/2015 14:07:08
Quote Anchor link
Ronnie Peeters op 09/03/2015 13:15:12:
Ik denk dat er iets mis is met mijn if else structuur, mogelijk nog iets anders. (mysql zal ik nog aanpassen naar mysqli of pdo) Als ik met de juiste credentials inlog die admin rechten hebben, heb ik geen probleem.

En daarnaast is je if/else-structuur inderdaad niet goed. Verbeter je het inspringen, dan zie je dat if ($admin == "azert") bij false (dus de gebruiker is geen admin) altijd eindigt in inloggen:
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
<?php
if ($exists > 0) {
    while($row = mysql_fetch_assoc($query)) {
        $table_users = $row['username'];
        $table_password = $row['password'];
        $admin = $row['admin'];
    }

    if ($admin == "azert") {
        if(($username == $table_users) && ($password == $table_password) && ($admin == "azert")) {
            if ($password == $table_password) {
                $_SESSION['user'] = $username;
                $_SESSION['admin'] = $admin;
                header("location: home.php");
            }
else {
                print '<script>alert("Incorrect username!");</script>';
                print '<script>window.location.assign("login.php");</script>';
            }
        }
else {
            print '<script>alert("Incorrect Password!");</script>';
            print '<script>window.location.assign("login.php");</script>';
        }
    }
else {
        print '<script>alert("Acces denied!");</script>';
        print '<script>window.location.assign("login.php");</script>';
    }
}

?>
 
Ronnie Peeters

Ronnie Peeters

09/03/2015 20:19:50
Quote Anchor link
Voor wat dient die exit() in het volgende?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php // kleurtjes

// vervang regels 19 t/m 27 door dit

        if(($username == $table_users) && password_verify($password, $table_password))
        {

                $_SESSION['user'] = $username; // heb je geen id dat je kan gebruiken? is wat netter
                header("location: home.php");
                exit();
        }

?>


Alvast bedankt!
 
Frank Nietbelangrijk

Frank Nietbelangrijk

09/03/2015 20:24:06
Quote Anchor link
bij de header() functie geef je aan dat de client doorgestuurd wordt maar hiermee wordt het script nog niet beëindigd. Je script loopt na het wijzigen van de headers (dat een onderdeel is van je response) gewoon door omdat er ook gewoon content meegegeven kan worden wat enkel bij een redirect geen zin heeft.
 

Pagina: « vorige 1 2 3 4 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.