if/else

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Junior PHP ontwikkelaar

Functie Wij hebben onlangs onze eerste collega’s aangenomen, waardoor ons development team momenteel uit 4 personen bestaat. We bouwen onze software op basis van een PHP-framework (wat op zichzelf een Symfony framework is). Qua ontwikkeling focussen wij ons op 3 focus velden; – API-ontwikkeling/ Component Creatie – Implementatie – Framework ontwikkeling; het toevoegen van nieuwe functionaliteit of interne microservices Onze senior software engineer focust zich momenteel op de laatste twee punten, maar wij komen handen te kort op het eerste veld. Daarom zijn wij op zoek naar een enthousiaste junior software engineer die graag de kneepjes van het vak wil

Bekijk vacature »

Software Developer

Functie omschrijving Psst hé jij daar! Op zoek naar een nieuwe uitdaging als developer? Wacht niet langer en reageer direct. In deze functie ga je bij een familiebedrijf werken als developer. Je gaat maatwerk software ontwikkelen met de Microsoft stack. Je gebruikt technieken als C#, ASP.NET en MVC. Je werkt in een leuk team van andere developers. Je krijgt veel vrijheid in je werk en kan flexibel werken. Dagje thuiswerken? Geen probleem! Daarnaast is er veel ruimte om écht mee te denken met het bedrijf en met de klanten. Bedrijfsprofiel Deze organisatie is gevestigd in de regio van Boxtel. Vanaf

Bekijk vacature »

Senior developer (PHP en VB.NET)

Functie De development afdeling bestaat uit 2 teams. Het productteam (10 developers) is verantwoordelijk voor verschillende applicaties met als doel om zoveel mogelijk te automatiseren en uit te werken tot standaard software. Met diverse Solutions Architecten en ervaren developers denken ze voortdurend mee met hun klanten en bouwen ze de basis van het uiteindelijke maatwerk dat wordt geleverd. Hiernaast hebben ze een maatwerk/projectteam. Dit team bestaat momenteel uit 8 developers (junior tot senior) en is verantwoordelijk voor het maatwerk in hun klantprojecten. Momenteel zijn ze op zoek naar een senior developer die aan de slag gaat in het productteam. Hierin

Bekijk vacature »

Web Developer

Bedrijfsomschrijving ENGIE Nederland is onderdeel van de beursgenoteerde ENGIE Groep. ENGIE is actief in 70 landen, met wereldwijd 150.000 medewerkers. Als groep is het de missie om bij te dragen aan de verduurzaming van de wereld. ENGIE Energie biedt energiediensten aan particulieren en grootzakelijk en gaat de uitdagingen van de energietransitie aan door het beschikbaar maken van duurzame energie, het streven de klimaatverandering tot een minimum te beperken, leveringszekerheid te bieden en zorg te dragen voor een verantwoord gebruik van de beschikbare resources. ENGIE Energie investeert daarom in hernieuwbare energiebronnen zoals zon, wind en bio-gas. Functieomschrijving Heb jij veel ervaring

Bekijk vacature »

Applicatie ontwikkelaar

Functie omschrijving Zelfstandige applicatie ontwikkelaar gezocht voor familiair bedrijf in omgeving Barendrecht! Ben jij op zoek naar een nieuwe uitdaging en zoek jij een informele werkgever waar je zelfstandig kunt werken binnen een leuk IT team, lees dan snel verder want wie weet zijn wij op zoek naar jou! Binnen deze rol houdt jij je met het volgende bezig: Onderhouden en ontwikkelen van de IT systemen; Opzetten van Azure Cloud systemen, denk aan interfaces, hardware op de Cloud, webportalen of BI functies; Werken aan scripts binnen verschillende software applicaties, denk aan ERP en CAD; Ontwikkelen en implementeren van MS PowerApps

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 »

Front-end developer

Functie Jij komt te werken in een team van 5 developers. het product is continue in beweging. Nieuwe en bestaande klanten vragen om vaak nieuwe features. Hierin ben jij zeer belangrijk om te zorgen dat de functionaliteiten goed opgezet worden op technisch vlak. Designs krijg je aangeleverd van een externe partij zodat jij je primair kan focussen op de techniek! Je hebt daarbij alle vrijheid om je eigen creativiteit toe te passen en mee te denken over de gebruikte technieken. Het gezamenlijke doel is een product dat functioneel zeer gebruiksvriendelijk is en het bedrijfsproces van de gebruikers versneld en kwalitatief

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Ambitieuze medior developer

Wat je gaat doen: Heb jij al een paar jaar ervaring als developer maar wil jij naar the next level? In ons NextLevelDev Programma helpen wij jou om de volgende stap te zetten: een mooi programma aan trainingen op het gebied van Java, hippe frameworks, Agile/Scrum, OCP-certificering en optioneel: andere JVM-talen als Kotlin en Scala; Cloud (AWS, Azure, GCP) Soc Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun

Bekijk vacature »

.NET Developer Azure

Dit ga je doen Het ontwerpen en bouwen van diverse applicaties (C#, ASP.NET, MVC); Het ontwikkelen van Webservices (WCF); Het meewerken aan de transitie naar Azure; Het samenwerken met collega's binnen een Scrumteam en meedenken over de User Stories; Het bouwen van unittesten; Meedenken over nieuwe tooling, ontwikkelingen en technologieën in de markt. Hier ga je werken Je komt te werken bij een organisatie die verantwoordelijk is voor de ontwikkeling van verschillende portalen. Deze portalen worden gebruikt door diverse partijen en jouw taak is om ervoor te zorgen dat deze optimaal functioneren. Je wordt onderdeel van een Scrumteam en werkt

Bekijk vacature »

Full stack developer

Functie Binnen een ontzettend stimulerende werkomgeving kom jij te werken in een software team van 14 developers. Met ontzettend stimulerend bedoel ik een modern pand, wat voorzien is van alle nodige soft- en hardware, zodat jij jouw werk goed kan uitvoeren. Daarnaast zitten ze in een bos, waardoor je in een groene omgeving rustig kunt werken. Het team bestaat uit front end, back end en full stack developers. Jij krijgt dus de keuze hier waar jij jezelf het liefst op zou richten, maar de voorkeur gaat uit naar back end. Er wordt hier Scrum (agile) gewerkt in multidisciplinaire teams met

Bekijk vacature »

Front-end developer (Angular)

Functie Het team bestaat uit een architect, fullstack developers, app developers, de product owner en projectmanager. Eenieder draagt vanuit zijn discipline bij aan een complete oplossing voor de klant. Uiteraard zul je hierin nauw samenwerken met je collega’s. Jij wordt verantwoordelijk voor de front-end implementatie en fungeert als lead op dit gebied binnen het team. Je kunt helder formuleren, ideeën uitdragen en overbrengen aan je collega’s. Qua technische stack is het vooral van belang dat je ervaren bent met Angular, HTML5, CSS en TypeScript. Verder is ervaring in NgRx, Bootstrap, BEM en Cypress een pré, evenals affiniteit met UX/UI Design!

Bekijk vacature »

Front-end Developer

Functie omschrijving Wij zijn op zoek naar een Front-end Developer! Als Front-end Developer binnen dit softwarebedrijf ga je de frontends voor zowel je eigen interne projecten als die voor klanten opzetten, onderhouden en uitbreiden. Je zet ideeën om naar mooie successen voor de klanten. Dat is in een notendop wat je gaat doen! Wat kun je verwachten? Je werkt aan de doorontwikkeling van bestaande maatwerkapplicaties. Bijvoorbeeld wanneer de klant de applicatie wil uitbreiden met een nieuwe feature; Samen met het team van backenders en desginers zet je nieuwe ideeën van klanten om naar mooie oplossingen; Je werkt met verschillende frameworks.

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 »
Jac E

Jac E

22/11/2014 11:21:34
Quote Anchor link
Ik ben dagen al aan het zoeken. Ik heb een SQL tabel waarde die 1 t/m 3 kan zijn. Die waarde uitlezen gaat goed. Wat ik wil is dat er een vraag wordt gesteld die afhankelijk is van die waarde. Bijvoorbeeld bij 1 is dat een INPUT TYPE="text" en bij 2 weer een INPUT TYPE="radio" vraag enz.

Wanneer ik de combinatie if/else en header("Location: http://... gebruikt krijg ik dus die welbekende header already sent foutmelding.
 
PHP hulp

PHP hulp

27/05/2026 00:45:51
 
Ward van der Put
Moderator

Ward van der Put

22/11/2014 11:43:05
Quote Anchor link
De keer je de logica van de if/else om zodat header() het eerst aan de beurt is.

Laat eens de code met de header() zien?

Een minder elegante work-around is output buffering inschakelen. Zolang je de output buffer (ob) niet leegt, kun je namelijk nog HTTP-headers toevoegen én headers wijzigen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
ob_start('ob_gzhandler');
?>
 
Jac E

Jac E

22/11/2014 12:18:22
Quote Anchor link
De vraag wordt dus gesteld op een andere pagina (om het overzichtelijker te maken dacht ik). Als de vraag beantwoord is wordt weer terug gegaan naar dit gedeelte. Dat was dan de bedoeling...

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
<?php
session_start();

// Declareren van sessievariabelen van de vorige pagina
$vraag_nummer_teller = $_SESSION["vraag_nummer_teller"];

// Vraag nummer teller (nodig om te beginnen met vraag 1 uit te lezen uit SQL)
if(empty($_SESSION['vraag_nummer_teller'])) $_SESSION['vraag_nummer_teller'] = 0;
$order =  $_SESSION['vraag_nummer_teller']+1;
$_SESSION['vraag_nummer_teller'] =  $vraag_nummer_teller;

if($vraag_soort==1)
{

header("Location: http://website.nl/vraagsoort1.php");
}

elseif ($vraag_soort==2)
{

header("Location: http://website.nl/vraagsoort2.php");
}

elseif ($vraag_soort==3)
{

header("Location: http://website.nl/vraagsoort3.php");
}

?>
 
Ward van der Put
Moderator

Ward van der Put

22/11/2014 12:58:52
Quote Anchor link
Gebruik een exit na elke header() om de redirect onmiddellijk uit te voeren en te voorkomen dat het script verder nog output genereert.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
if ($vraag_soort == 1) {
    header('Location: http://website.nl/vraagsoort1.php');
    exit;
}
elseif ($vraag_soort == 2) {
    header('Location: http://website.nl/vraagsoort2.php');
    exit;
}
elseif ($vraag_soort == 3) {
    header('Location: http://website.nl/vraagsoort3.php');
    exit;
}

?>


Of gestructureerder:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if ($vraag_soort >= 1 && $vraag_soort <= 3) {
    header('Location: http://website.nl/vraagsoort' . (int)$vraag_soort . '.php');
    exit;
}

?>
 
Jac E

Jac E

22/11/2014 16:21:06
Quote Anchor link
Heel erg bedankt! Met exit werkt het nu wel gelukkig. Alleen heb ik nu hetzelfde probleem op de volgende pagina. Hier wordt de vraag gesteld en moet je die beantwoorden. Na het beantwoorden ga je via header/location weer terug naar script 1. Dit gaat dus niet omdat er al output is (heb ik gegoogled). Moet ik soms deze "vraag script" splitsen in 2 scripts (HTML en PHP)? Functie ob_start werkt helaas niet in dit geval.
 
Ozzie PHP

Ozzie PHP

22/11/2014 16:32:51
Quote Anchor link
>> Dit gaat dus niet omdat er al output is (heb ik gegoogled).

Het gaat om output die naar het scherm (de browser) wordt gestuurd. Daarvan is in jouw geval geen sprake.

Zolang jij geen informatie (output) naar de browser stuurt, kun je een header uitvoeren. Een header moet altijd als eerste naar de browser worden gestuurd. Daarna mag pas de "inhoud" (je html, teksten, plaatjes enz.) worden verstuurd.
Gewijzigd op 22/11/2014 16:33:12 door Ozzie PHP
 
Jac E

Jac E

22/11/2014 17:54:53
Quote Anchor link
Dit is mijn test voor die 2e pagina. De bedoeling is dat je iets invoert en dat het script verder gaat naar het eerste script. Ik krijg bij onderstaand voorbeeld de header already sent foutmelding.

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
<?php
session_start();
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<!-- myform.php -->
    <form name="my-form" method="POST" action="">

        <span>Which do you like better?</span>
        <label for="steak">steak</label>
        <input type="radio" name="food" id="steak" value="steak" <?php if(isset($food) && $food == 'steak') echo 'checked="checked"';?> />

        <label for="lobster">lobster</label>
        <input type="radio" name="food" id="lobster" value="lobster" <?php if(isset($food) && $food == 'lobster') echo 'checked="checked"';?> />

        <input type="hidden" name="submitted" value="submitted" />
        <input type="submit" name="submit" value="submit" />

    </form>

<?php
    if (isset($_POST['submitted'])) {
        $errors = array();
        if (isset($_POST['degree'])) {
            $degree = $_POST['degree'];
        }
else {
            $errors[] = 'Please select your degree type.';
        }
else {
        // redirect user to another page
    header('Location: http://website.nl/eerste_script.php');
    exit;
        }
    }

?>
Gewijzigd op 22/11/2014 17:55:50 door Jac E
 
Ozzie PHP

Ozzie PHP

22/11/2014 18:10:33
Quote Anchor link
Als ik het goed zie dan zit er een fout in je if/else vergelijking. Je zet 2x een "else" na elkaar neer. Dat kan niet. Ik weet ook niet wanneer je die redirect wilt uitvoeren. Moet die altijd worden uitgevoerd? Zo ja, dan krijg je zoiets:

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
<?php

// bovenaan onder session_start, controleren of er errors zijn
if (isset($_SESSION['errors']) && !empty($_SESSION['errors'])) {
  print_r($_SESSION['errors']);   // de meldingen moet je zelf even fatsoeneren
  $_SESSION['errors'] = null;
}


// ... hier het formulier

if ($_SERVER['REQUEST_METHOD'] === 'POST') { // dit is de juiste manier om te controleren of er gepost is
  $errors = array();
  if (!isset($_POST['degree'])) {
    $errors[] = 'Please select your degree type.';  
  }

  if (!empty($errors)) {
    // er is een error
    $_SESSION['errors'] = $errors;
    header('Location: http://website.nl/huidige_script.php');
  }
else {
    // alles gaat goed, naar eerste script
    header('Location: http://website.nl/eerste_script.php');
  }

  exit;
}

?>

P.S. Ik heb het niet getest, dus er kunnen fouten inzitten.
Gewijzigd op 22/11/2014 18:12:09 door Ozzie PHP
 
Ward van der Put
Moderator

Ward van der Put

22/11/2014 18:37:49
Quote Anchor link
Je stuurt eerst HTML uit en voert daarna pas in PHP een redirect uit.
Dat kan niet: HTTP-headers komen voor HTTP-content.

Zoals al eerder gezegd: verplaats die beslissingsregels die in header() eindigen naar een eerder stadium, vóórdat er HTML-content wordt geproduceerd.
 
Jac E

Jac E

22/11/2014 19:45:18
Quote Anchor link
Ik wilde alleen nog een soort beveiliging erin maken dat iemand altijd een keuze moet maken (dus een antwoord moet geven). Hiernaar dus weer naar dat eerste script weer terug.

Heb nu e.e.a. toegepast op jullie advies, ook die beslissingsregels verplaatst.
Maar helaas... Warning: Cannot modify header information - headers already sent
Wat doe ik fout?

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
<?php
session_start();
?>

<?php
// bovenaan onder session_start, controleren of er errors zijn
if (isset($_SESSION['errors']) && !empty($_SESSION['errors'])) {
  print_r($_SESSION['errors']);   // de meldingen moet je zelf even fatsoeneren
  $_SESSION['errors'] = null;
}

if ($_SERVER['REQUEST_METHOD'] === 'POST') { // dit is de juiste manier om te controleren of er gepost is
  $errors = array();
  if (!isset($_POST['degree'])) {
    $errors[] = 'Please select your degree type.';  
  }

  if (!empty($errors)) {
    // er is een error
    $_SESSION['errors'] = $errors;
    header('Location: http://website.nl/huidige_script.php');
  }
else {
    // alles gaat goed, naar eerste script
    header('Location: http://website.nl/eerste_script.php');
  }

  exit;
}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<!-- myform.php -->
    <form name="my-form" method="POST" action="">

        <span>Which do you like better?</span>
        <label for="steak">steak</label>
        <input type="radio" name="food" id="steak" value="steak" <?php if(isset($food) && $food == 'steak') echo 'checked="checked"';?> />

        <label for="lobster">lobster</label>
        <input type="radio" name="food" id="lobster" value="lobster" <?php if(isset($food) && $food == 'lobster') echo 'checked="checked"';?> />

        <input type="hidden" name="submitted" value="submitted" />
        <input type="submit" name="submit" value="submit" />

    </form>
Gewijzigd op 22/11/2014 19:50:16 door Jac E
 
- SanThe -

- SanThe -

22/11/2014 20:23:57
Quote Anchor link
Na regel 3 staat een 'enter', dat kan al funest zijn.
Ook regel 7 kan een probleem geven.
 
Jac E

Jac E

22/11/2014 20:27:03
Quote Anchor link
Klopt... het werkt nu! Bedankt iedereen weer :)
 
Ozzie PHP

Ozzie PHP

22/11/2014 20:29:33
Quote Anchor link
>> Zoals al eerder gezegd: verplaats die beslissingsregels die in header() eindigen naar een eerder stadium, vóórdat er HTML-content wordt geproduceerd.

Correct. Dat was in mijn snelle opzetje ook nog niet helemaal correct zie ik nu.

Doe in plaats van dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
session_start();
?>

<?php
// bovenaan onder session_start, controleren of er errors zijn
// ...

?>

eens dit...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
session_start();

// bovenaan onder session_start, controleren of er errors zijn
// ...

?>

Het kan zijn dat er witruimte tussen de sluiting- en openingstag zit, en daarnaast is het sluiten en direct openen nutteloos. Je doet een deur dicht, om 'm direct daarna weer open te doen. Dat heeft geen nut.
Gewijzigd op 22/11/2014 20:30:25 door Ozzie PHP
 
Jac E

Jac E

22/11/2014 22:49:25
Quote Anchor link
Super, bedankt ook voor je advies! Weer een leermoment geweest...
 



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.