if/else

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Social Media Specialist

Social Media Specialist locatie: Rotterdam (Zuid Holland) Wij zoeken op korte termijn een nieuwe collega, een social media specialist/ adviseur sociale media (24 uur), voor ons sprankelende team Communicatie van CJG Rijnmond. Onze focus ligt op het informeren en binden van onze in- en externe klanten en stakeholders en het versterken van onze naamsbekendheid en zichtbaarheid. Dat doen we in nauwe samenwerking met elkaar. Over de functie Ons team bestaat uit 7 communicatieprofessionals met ieder een eigen expertise. Als lid van het online team ben je verantwoordelijk voor het ontwikkelen, uitvoeren en analyseren van onze socialemediastrategie. Ook stel je campagnes

Bekijk vacature »

Microsoft Acess Developer

Functieomschrijving Wat ga je doen? Heb jij ongeveer 3 jaar ervaring als Software Developer, en komen de volgende kennisgebieden jou niet vreemd voor: MS Acces, C# & SQL? Vind jij het daarnaast leuk om maatwerk software te ontwikkelen voor klanten in een bijzondere branche? Lees dan snel verder! Als developer ben jij samen met een gemotiveerd team van 10 collega’s verantwoordelijk voor het creëren van aangemeten software voor klanten. Je bent klantvriendelijk en oplossingsgericht ingesteld, omdat het essentieel is om de klanten zo goed mogelijk te helpen met hun uitdagingen. Het is mogelijk om vanuit huis je werkzaamheden uit te

Bekijk vacature »

C# ontwikkelaar

Functie omschrijving Werk jij graag met C# en het .NET framework in een leuk familiebedrijf? Lees dan snel verder! Jouw takenpakket hierbij is: Je gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Je gaat werken in een Microsoft omgeving (ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Daarnaast optimaliseer je de bestaande software. Bedrijfsprofiel Deze organisatie is gevestigd in de omgeving van Best en is een echt familiebedrijf. Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met

Bekijk vacature »

Fasttrack learning & development voor Java dev

Wat je gaat doen: Wij zoeken enthousiaste en ambitieuze junior en medior ontwikkelaars die toe zijn aan de volgende stap in hun carrière. Wij helpen je op je pad naar senior ontwikkelaar door ons fasttrack learning en development programma. Na een kort en intensief programma ga jij aan de slag bij klanten van DPA. Daarnaast krijg je veel ruimte om je te ontwikkelen als persoon en als specialist. De eerste maand gaan we aan de slag om je certificeringen te behalen waaronder OCP (Oracle Certified Professional). Daarnaast nemen we een deepdive in Spring Boot. Ook laten we je kennismaken met

Bekijk vacature »

Medior .NET Ontwikkelaar

In het kort Als .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging graag met

Bekijk vacature »

Senior Front end developer Automotive Angular

Functie Als Senior Front end developer kom je te werken in een team van 11 developers. 9 van de 11 focussen zich op back end, welke is geschreven in Java, en 2 op de front end waarbij er gebruik wordt gemaakt van Typescript en Angular. De focus in deze rol ligt op 2 aspecten; doorontwikkeling van de eigen tooling en gebruik van de tooling t.b.v. klantprojecten. Momenteel zijn ze in de afrondende fase van een project waarbij ze het gehele verkoopproces van nieuwe auto’s anders ingeregeld hebben voor een grote dealer in Nederland. Waarbij Auto’s normaliter pas verkocht werden in

Bekijk vacature »

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

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

Functie Ons programma is voor afgestudeerde enthousiastelingen die het als een uitdaging zien om met een klein dynamisch team bij de grootste bedrijven van Nederland aan de slag te gaan. Tijdens jouw dienstverband word jij begeleid door een talent manager. Het ontwikkelen van jouw talent staat hierbij centraal. Het programma doorloop je met een team van circa 8 Mede- trainees. De eerste maand start je met een fulltime inhouse opleiding. Deze staat geheel in het teken van de werkzaamheden die jij verder in het programma zult uitvoeren. Na deze opleidingsmaand ga je aan de slag in een dynamische omgeving bij

Bekijk vacature »

Traineeship IT regio Amsterdam/Utrecht

Wat ga je doen? Het traineeship begint met een fulltime maand cursussen en praktijkdagen, waarin je de basis van het IT-vak leert op de Shared Servicedesk (SSD). Daarnaast ga je meteen aan de slag voor je eerste certificering! (ITILv4). Je start in een groep met 4 tot 10 deelnemers, waarmee jij gedurende die maand optrekt en je kennis kunt delen. Na het voltooien van de eerste maand ga je direct voor een langere periode aan de slag bij één van onze klanten of blijf je intern bij ons op de Shared Servicedesk. Je bent het eerste aanspreekpunt van de eindgebruikers

Bekijk vacature »

PHP Laravel Ontwikkelaar

Functie omschrijving Weet jij alles over Laravel en krijg je energie van het developen van software hiermee? Laat het weten want wij zoeken een PHP/Laravel developer in regio 's-Hertogenbosch voor klein bedrijf welke softwareoplossingen maakt voor hun klanten. Jouw taken hierbij: Softwareapplicaties ontwikkelen en verder optimaliseren in veel diverse projecten op basis van Agile/Scrum. Documentatie schrijven over applicaties. Uitleg geven over software en applicaties Klantcontact hebben over bestaande applicaties. Techstack: PHP, Laravel, HTML, CSS, Javascript. Bedrijfsprofiel Deze organisatie zit in de regio van 's-Hertogenbosch en is een klein bedrijf. Er werken circa 15 medewerkers, verdeeld in meerdere teams, zoals back-end

Bekijk vacature »

Front end developer React

Functie Wij zijn van origine een wordpress bureau, maar sinds 2006 zijn wij dit wel redelijk ontgroeid. Naar mate de jaren verstreken zijn we gegroeid in omvang, maar ook in de complexiteit van opdrachten waarin wij onze klanten kunnen bedienen. Momenteel bestaat onze organisatie uit 4 front end developers, 12 back end developer 3 projectmanagers en een 2 koppig management. Wij zijn een hele informele, bijna familiaire organisatie. Geen strak pak of overhemd, nee gewoon dragen waar jij je prettig bij voelt. De gemiddelde leeftijd ligt tussen de 25 en 30 en wij doen er veel aan om onze hechte

Bekijk vacature »

Software Developer C++ en Perl

Ben je een slimme en enthousiaste universitair opgeleide bèta die graag bij een relatief klein softwarebedrijf wil werken waar de sfeer goed is en eigen inbreng gewaardeerd wordt? Wij, IntelliMagic in Leiden, ontwikkelen technisch hoogwaardige software op het gebied van IT infrastructuur performance analytics. Het type software zorgt voor intellectueel interessante uitdagingen. We ontwerpen de producten zelf en verkopen deze als off-the-shelf software aan grote bedrijven in Europa en de VS. Wij zoeken een ervaren C++ software engineer met kennis van Perl voor een van onze ontwikkelteams. Werkzaamheden Samen met de andere ontwikkelaars specificeren, ontwerpen en implementeren van nieuwe functionaliteit

Bekijk vacature »

Medior/Senior Software Developers gezocht in de Ra

Functie Op dit moment staan er posities open voor de volgende functies: Front-end, Back-End & Fullstack software developer. Als Front-End software developer werk je met JavaScript en de bijbehorende technologieën zoals TypeScript, Angular, React, Vue en Svelte. Als Back-End software developer ben je bezig in NodeJS en doe je dit met behulp van AWS, NoSQL, REST en GraphQL. Je krijgt leuke en uitdagende opdrachten met een gemiddelde duur van anderhalf jaar. Hier werk je in een team met andere IT’ers aan het ontwikkelen en verbeteren van software. Je wordt begeleid door een accountmanager die fungeert als jouw aanspreekpunt. Het team

Bekijk vacature »

Digitale Tovenaar Gezocht: Junior Low-code/No-code

Bedrijfsomschrijving Duik mee in een wereld vol innovatieve avonturen waar gegevens en technologie een magische symbiose aangaan! Al meer dan twee decennia lang zijn we de tovenaars achter de schermen die oplossingen creëren voor de meest complexe klantcontactvraagstukken en datagedreven software-uitdagingen. Bij ons draait het om de kracht van samenwerking en groei. We zijn een hechte vriendengroep die samen bergen verzet om elkaar én onze klanten te laten schitteren. Jouw succes is ons succes en we streven ernaar om elkaar naar nieuwe hoogten te tillen, niet voor even, maar voor altijd. We willen dat jij je helemaal thuis voelt in

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

14/05/2024 04:36:58
 
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.