elseif

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

PHP developer - Digital Agency

Functie Het team telt momenteel 20 collega’s, bestaande uit developers (front- en backend) en het operations team, waaronder ook het management en twee scrum masters vallen. Ze zijn op zoek naar een PHP developer die in staat is zelfstandig te werken. Je komt te werken in één van de drie scrumteams en gaat aan de slag met een project voor de klant. Het fijne hieraan is dat je wel afwisseling hebt qua werk, maar tegelijkertijd doorlopend werkt voor bestaande klanten. Hierdoor krijg je ook de kans om echt de diepte in te gaan en innovatieve technische oplossingen neer te zetten.

Bekijk vacature »

PHP back-end developer gezocht!

Functie Werk je liever zonder druk en keiharde deadlines maar met de focus op kwaliteit? Dan kom je hier op de juiste plek terecht! In Het team bestaat momenteel uit 12 developers, hiernaast werken er collega’s van front-end, UX maar ook marketing/sales en support. In iedere sprint ontwikkel je samen functionaliteiten met als uitdaging om de klanten de beste gebruikerservaring te bieden. Ze bieden een werkplek waar je jezelf kunt blijven ontwikkelen, en mee te werken aan zowel bestaande als nieuwe mogelijkheden. Eisen • HBO werk- en denkniveau (ze kijken niet naar een papiertje) • Je denkt graag mee over

Bekijk vacature »

Python (Django) developer - Remote in The Netherla

Functie Together with your team, consisting of a senior, 2 mediors and one junior developer, you will work on their software in an Agile-based approach. You have an eye for quality, risk, and customer interest. Communication with your colleagues and, where necessary, with customers, plays an important role in achieving a successful result. As a person, you are smart, get things done, and are result-oriented. There is a lot of independence within the development team, apart from the stand-up (10:00 am) and occasional pair-programming sessions. Techniques they use include Python, Django, MySQL, Mercurial, Ubuntu Linux, Nginx. In terms of front-end

Bekijk vacature »

.NET developer

Functie Heb jij veel kennis van ASP.NET Webforms en wil jij juist de overstap maken naar ASP.NET Core? Wij zijn per direct op zoek naar een ervaren .NET Webdeveloper die met ons samen ons platform wilt herschrijven van ASP.NET Webforms naar ASP.NET Core. Voor jou de unieke kans om met ons samen te innoveren en kennis op te doen van de nieuwste technieken binnen de Microsoft Stack. Wij hebben een development team met 10 IT specialisten bestaande uit onder andere 4 backend .NET developers en twee front-end developers. Wij zijn continu bezig om ons als team en bedrijf te blijven

Bekijk vacature »

Ervaren PHP Software Developer

Functieomschrijving Voor een toffe opdrachtgever in regio Breda zijn wij op zoek naar een medior PHP Developer met affiniteit met Laravel. Je komt te werken bij een uitdagende opdrachtgever met supergave klanten in een specifieke branche. Als PHP ontwikkelaar ben je samen met een vooruitstrevende team van 6 collega’s verantwoordelijk voor de ontwikkeling, beheer en het vernieuwen van informatiesystemen voor een specifieke branche. Je ondersteunt complexe uitdagingen van klanten. Vervolgens breng je hun wensen in kaart en vertaalt deze door naar maatwerk software. Affiniteit met Laravel is een pré. Om de klanten zo goed mogelijk te ondersteunen en snel in

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 »

Java (Java EE) Developer

In het kort Werken als Java developer betekent werken aan complexe IT projecten bij onder meer een internationaal containeroverslag bedrijf. Zo sturen we apparaten en eindgebruikers aan d.m.v. onze custom-made software oplossing, die dagelijkse vele duizenden containers verwerkt. Denk aan systemen die volautomatische kranen aansturen en op afstand bedienen, de volledige afhandeling van containernummerherkenning bij het laden en lossen van zeeschepen of het tonen van instructies aan de chauffeurs van ruim 300 straddle carriers. En dat allemaal redundant, robuust en in een dynamische 24/7 omgeving! Jij versterkt ons ontwikkelteam en gaat aan de slag met oa. Java i.c.m. Spring (Boot),

Bekijk vacature »

SQL beheerder / ontwikkelaar

Functie omschrijving Voor een klant in omgeving Tiel zijn wij op zoek naar een SQL beheerder met affiniteit met technisch applicatiebeheer. Je krijgt een fijne in-house werkplek waar je gaat werken aan diverse projecten. Dit bedrijf doet het beheer van databases voor een aantal bancaire klanten. Op dit momenten hebben zij ruim 1500 databases in beheer. Jouw werkzaamheden gaan er als volgt uit zien: Je gaat de development afdeling ondersteunen bij het ontwikkelen van MS SQL Scripts. Je zal zowel zelfstandig als in teamverband MS SQL databases installeren & beheren. Je monitort en onderzoekt incidenten en de achterliggende oorzaken. Je

Bekijk vacature »

C#.NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie; Het oplossen van bugs en incidenten. Hier ga je werken Als C#.NET Developer binnen deze organisatie kan jij het verschil maken. Zij werken momenteel nog met programmatuur die is ontwikkeld in C++. Hiervan gaan zij afscheid nemen zodra alle nieuwe software in C#.NET geschreven is. Een grootschalig en langdurig project. Voor hen is deze software van

Bekijk vacature »

Node.js developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

PHP Software Developer

Functie omschrijving Op zoek naar een nieuwe uitdaging binnen PHP? Lees dan snel verder! Wij zoeken een ervaren PHP developer die binnen een organisatie gaat functioneren als verlengstuk van de klant. Wij zoeken voor deze iemand die technisch complexe zaken met enthousiasme en plezier aanvliegt. Verder moet je instaat zijn om je tijd goed te managen omdat je aan meerdere projecten tegelijkertijd werkt. Je werkt met de nieuwste technieken en tijdens deze uitdaging werk je veel samen met de front-end developers van deze organisatie. Wij zoeken iemand die zichzelf graag uitdaagt en altijd de beste wilt zijn. Bedrijfsprofiel Waar ga

Bekijk vacature »

Java Developer

Dit ga je doen Ontwerpen en bouwen van nieuwe functionaliteiten binnen de complexe omgeving; Proactief de processen kwalitatief en efficient inrichten; Opzetten van Unit Tests; Code Reviews; Regie nemen voor innovatieve projecten; Landschap beheren en de bijbehorende ketens hierbij in het oog houden. Hier ga je werken De organisatie is actief binnen de financiele branche en heeft een IT afdeling van circa 450 man. De organisatie voorziet de maatschappij binnen de financiele dienstverlening en is gedurende de jaren een onmisbare schakel geworden. Het is een high profile organisatie waar ze veel te maken hebben met veranderingen voortkomend uit maatschappelijke ontwikkelingen,

Bekijk vacature »

SQL developer

Functieomschrijving Voor een erkende werkgever in de omgeving van Tilburg zijn wij op zoek naar een ervaren SQL ontwikkelaar. Hier wordt jij mede verantwoordelijk voor zowel de design en implementatie van SQL-databases als voor het verstaan van de processen van klanten naar het vertalen van deze processen naar IT-oplossingen. Jouw takenpakket komt er als volgt uit te zien: Het ontwerpen en implementeren van databaseschema's: Je bent in staat om een database te ontwerpen en de structuur van tabellen, relaties, indexen en andere objecten te definiëren; Het schrijven van complexe SQL-query's: Je kunt complexe query's schrijven om gegevens uit de database

Bekijk vacature »

Junior .NET Developer

Dit ga je doen Ontwikkelprocessen verder optimaliseren en verder ontwikkelen met C#; CI/CD-pipelines automatiseren; Ontwikkelen van herbruikbare componenten; Front-end pagina's gebruiksvriendelijk maken. Hier ga je werken Als junior .NET Developer kom je terecht binnen een grote en internationale organisatie. Zij streven naar een positieve impact op de mens, milieu en maatschappij. Het bedrijf is oorspronkelijk een familiebedrijf en werkt aan de productie van hoogwaardige en technische systemen voor de gezondheidszorg. Momenteel willen zij betere ontwikkelprocessen creëren op internationaal gebied en staat kwaliteit en veiligheid voor hun op nummer 1! Als junior .NET Developer werk je aan het ontwikkelen van verbeterde

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »
Jac E

Jac E

18/01/2016 01:12:14
Quote Anchor link
Ben de hele dag al aan het zoeken en proberen. De bedoeling is dat je kan inloggen. Er wordt dan gecontroleerd of e.e.a. eerst klopt. Bij een klant kom je bij klant.php en wanneer admin inlogd bij admin.php.

Het inloggen lukt uiteindelijk. Alleen werkt de controle "minimaal 5 karakters" niet en de password wordt niet gecontroleerd. Ik kan van alles invoeren als wachtwoord maar het wordt goedgekeurd. Wie kan er even na kijken. 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
<?php
        if (empty($_POST) === false) {
    $username = trim($_POST['username']);
    $password = trim($_POST['password']);

    if (empty($username) === true || empty($password) === true) {
        $errors[] = 'Gebruik een juiste gebruikersnaam/wachtwoord.';
    }
elseif ($users->user_exists($username) === false) {
        $errors[] = 'De gebruikersnaam wordt niet herkend.';
    }
elseif ($users->email_confirmed($username) === false) {
        $errors[] = 'Uw account is nog niet geactiveerd.';
    }
else {
        if (strlen($password) > 5) {
        $errors[] = 'Het wachtwoord moet uit minimaal 5 karakters en zonder spaties zijn.';
        }

        $login = $users->login($username, $password);
        if ($login === false) {
        $errors[] = 'De ingevoerde gebruikersnaam/wachtwoord combinatie is niet juist.';        
        }

                $administratie = $_SESSION["administratie"];
        if($administratie=="Admin")
         {

        // Variabelen in session
        $_SESSION['username'] = $username;                    
        $_SESSION['administratie'] = $administratie;

        session_write_close();
        header("Location: admin.php");
        exit();
        }
                            
        else {        
        // Variabelen in session                 
        $_SESSION['username'] = $username;                                
        $_SESSION['administratie'] = $administratie;        
                
        session_write_close();    
        header('Location: klant.php');
        exit();
        }                    
    }
}

?>
 
PHP hulp

PHP hulp

14/05/2024 19:33:28
 
Ozzie PHP

Ozzie PHP

18/01/2016 02:07:21
Quote Anchor link
Ff heeeeeel snel gekeken ...

if (strlen($password) > 5) {

zal wel

if (strlen($password) < 5) {

moeten zijn.
 
- SanThe -

- SanThe -

18/01/2016 03:12:19
Quote Anchor link
Als je niet ingelogd bent (regel 17) dan ga je toch altijd door en kom je altijd op de admin of klant pagina.
 
Thomas van den Heuvel

Thomas van den Heuvel

18/01/2016 14:45:24
Quote Anchor link
Regel 20 t/m 39 doe je ook een hoop dubbel... Je bent $administratie heen en weer aan het kopiëren zonder dat je hier iets mee doet.

Daarnaast, zou $username niet in de sessie ingevuld moeten worden in je login() routine? Waarom verricht je de afhandeling van het inloggen op twee verschillende plaatsen? Als je het wegschrijven naar de sessie van de username nu eens verplaatst naar je login routine zelf dan hoeft dit stuk code je alleen naar de juiste pagina door te sturen, lijkt mij een stuk simpeler en staan dingen ook meer op de goede plek als je het mij vraagt.
 
Jac E

Jac E

19/01/2016 14:11:49
Quote Anchor link
Bedankt voor de tips. Het script werkt nu op 1 onderdeel na. Dat is nog steeds de controle op het wachtwoord. Als ik een verkeerd wachtwoord invoer wordt ik gewoon ingelogd. Ik zie de fout echt niet. Soms krijg ik ook een foutmelding "Deze webpagina bevat een omleidingslus". Dan start ik logout.php en dan kan ik weer verder. Wie wil me helpen?

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
<?php
    if (empty($_POST) === false) {
    $username = trim($_POST['username']);
    $password = trim($_POST['password']);
        $login = $users->login($username, $password);

    if (empty($username) === true || empty($password) === true)
        {
$errors[] = 'Gebruik een juiste gebruikersnaam/wachtwoord combinatie om in
                      te loggen.'
;}
    elseif ($users->user_exists($username) === false)
           {
$errors[] = 'De gebruikersnaam wordt niet herkend.';}
        elseif ($login = $users->login($username, $password) | $login === false)
               {
                
           header('Location: menu_ingelogd.php');          
           }

            
    else {$errors[] = 'De ingevoerde gebruikersnaam/wachtwoord
                           combinatie is niet juist.'
;
          exit();          
          }                                                  
}

?>
  
Gewijzigd op 19/01/2016 14:17:11 door Jac E
 
Ward van der Put
Moderator

Ward van der Put

19/01/2016 14:24:14
Quote Anchor link
Dan zit de fout waarschijnlijk hierin:

elseif ($login = $users->login($username, $password) | $login === false)

Wat is het resultaat van de methode $users->login()? Is dat bijvoorbeeld true/false?
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2016 14:35:55
Quote Anchor link
Allereerst, het is NOOIT de bedoeling om (gedetailleerde) informatie te geven wat er precies mis is met een login, hierin geef je informatie vrij aan derden die het (mogelijk) makkelijker maken om in te breken. Een login is simpelweg "goed" of "fout". In het laatste geval meld je ook alleen dat de login "fout" is, en geef je iemand een (beperkt aantal) nieuwe poging(en).

Daarnaast draait bovenstaande code nogal om de hete brei heen. Schrijf je code wat meer recht-door-zee. Overigens, die login() methode, voert deze zowel de controle uit of de gegevens kloppen, en logt deze iemand tevens in als deze kloppen?

Ik zou dus zoiets doen, in tegenstelling tot een overgecompliceerd if-statement:
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
<?php
// controleer of een formulier is gePOST
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // onderneem een inlogpoging alleen als username en wachtwoord niet leeg zijn
    if (!empty($_POST['username']) && !empty($_POST['password'])) {
        // aanname: login bevat zowel de check of de combinatie geldig is
        // alsmede de stappen die genomen moeten worden om iemand in te
        // loggen als de check is geslaagd en retourneert of dit alles succesvol was

        if ($users->login($_POST['username'], $_POST['password'])) {
            // alleen dan stuur je iemand door
            header('Location: ingelogd.php');
            exit;
        }

        // anders doen we niets, het einde van het script stuurt je terug naar de login
        // met de indicatie (?errors=1) dat er iets mis was

    }
}


// Als we dit punt bereiken is er iets mis, terug naar de login
header('Location: login.php?errors=1');
exit;
?>
 
Jac E

Jac E

19/01/2016 14:42:42
Quote Anchor link
Beste Ward,

Weggehaald: "$login = $users->login($username, $password) |". Stond al bovenaan.

Klopt, het resultaat van de methode $users->login() is true/false als het goed is.
Deze wordt elders gemaakt met: public function login($username, $password).

Helaas geen veranderingen...
Gewijzigd op 19/01/2016 14:44:15 door Jac E
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2016 14:46:31
Quote Anchor link
Ja euh, hoe controleer je of iemand ingelogd is? Kijk je hiervoor in $_SESSION? Roep je op alle pagina's session_start() aan? Het is een beetje koffiedik kijken wat er nu misgaat.

Heb je het weergeven + melden van fouten aan staan?

Zet dit helemaal aan het begin van je code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'stdout');
?>


Dit begint weer te klinken als een probleem dat geen probleem is, maar de aanpak van het oplossen ervan...
 
Ward van der Put
Moderator

Ward van der Put

19/01/2016 15:04:23
Quote Anchor link
Als je het lastig vindt dergelijke logica uit te werken in meerdere geneste if/else/elseif-controlestructuren, dan kun je de 4 condities ook gewoon in één enkele if stoppen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if (
    $_SERVER['REQUEST_METHOD'] == 'POST'
    && !empty($_POST['username'])
    && !
empty($_POST['password'])
    &&
$users->login($_POST['username'], $_POST['password'])
) {

    header('Location: ingelogd.php');
    exit;
}

?>


PHP verwerkt de condities in de volgorde waarin je ze opsomt en verlaat deze if zodra niet aan een conditie is voldaan. Is !empty($_POST['password']) in de 3e conditie bijvoorbeeld false, dan wordt $users->login($_POST['username'], $_POST['password']) in de 4e conditie niet aangeroepen maar overgeslagen.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2016 15:30:34
Quote Anchor link
Alleen stuurt het bovenstaande script je niet door wanneer een van de condities niet opgaat. In dat geval blijf je op een lege pagina hangen?

Pas als je doorhebt wat er allemaal gebeurt kun je dit soort "shortcuts" nemen, maar het lijkt erop dat de topicstarter er nu al niet helemaal uitkomt. Dit lijkt mij dan ook niet het moment om alles te refactoren.
 
Jac E

Jac E

19/01/2016 15:51:48
Quote Anchor link
Beste Thomas. Bedankt voor je advies. Je script werkt helaas niet bij mij (omleidingslus). Je gaat er ook vanuit zoals je al zegt "alsmede de stappen die genomen moeten worden om iemand in te loggen als de check is geslaagd".
Mijn functie login geeft alleen de waarde true/false na controle van de combinatie $username, $password. Wat moet ik dan toevoegen? Dan gaat het om de vergelijking $login === true of false lijkt me.
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2016 17:00:29
Quote Anchor link
Je zult ergens moeten onthouden dat een inlogpoging is geslaagd, en daar (de manier waarop je het onthoudt) zul je op moeten controleren of iemand ingelogd is.

Daarom vond ik de naam voor de methode "login" een beetje misleidend en vroeg ik om bevestiging van de betekenis/werking.

Ik zou dus eigenlijk twee stappen verwachten in plaats van die ene login methode:
1. een authenticatie-stap, wat nu in feite de login methode is: invoer username+password, uitvoer: simpelweg "ja" als de gegevens kloppen en "nee" wanneer dit niet het geval is, en
2. een login-stap, waarin je de administratieve afhandeling verricht van een geslaagde authenticatie; dit kan bijvoorbeeld het instellen van sessie-variabelen zijn

Vervolgens controleer je of iemand ingelogd is door (het bestaan van) deze sessie-variabelen te raadplegen.
 



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.