Limiteren resultaten if-statement

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Airport Developer / System engineer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: 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 je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Junior .NET developer

Functie Wij hebben drie scrumteams. Het eerste team focust zich op het stukje hardware wat wij in huis doen. Zij maken als team o.a. gebruik van C++. De andere twee scrumteams zijn allebei bezig met data verwerking en maken hierbij in de backend gebruik van C# .NET / .NET Core. Het verschil tussen deze teams is dat één team de data verwerking doet voor de mobiele applicatie. Zij werken hierbij dus ook met Xamarin. Het andere team focust zich op de webapplicaties en maakt hierbij ook gebruik van ASP.NET MVC. Op basis van jouw ambities en kwaliteiten kijken wij samen

Bekijk vacature »

Creatieve Front-end developer gezocht!

Functie Het front-end team bestaat momenteel uit 4 collega’s en is hard aan het groeien! Samen leveren jullie een essentiële bijdrage aan de applicaties die ze voor hun klanten realiseren. Je werkt in het front-end team samen met de back-end teams en product owners om te zorgen dat de applicaties een fijne gebruikerservaring opleveren. Jouw expertise zorgt ervoor dat de juiste keuzes gemaakt worden qua techniek en ontwerp, van back-end tot aan gebruiker. In samenspraak met je team bepalen jullie de beste keuze voor techniek. Ook is er altijd ruimte om nieuwe technieken te ontdekken. Eisen • Je hebt gedegen

Bekijk vacature »

.Net Front-end Ontwikkelaar

Wij zoeken een .Net Front-end Ontwikkelaar! Omschrijving Kun jij snel schakelen en ben je stressbestendig? Dan zoeken wij jou! Als .Net Front-end Ontwikkelaar help je mee aan de webapplicatie die over de hele wereld door allerlei bedrijven wordt gebruikt. Je werkt daarnaast mee aan nieuwe en verbeterde functionaliteiten en helpt met het oplossen van bugs. Over de opdrachtgever Je komt te werken in een ambitieus team dat zich blijft ontwikkelen. Dit is alle informatie die we nu kunnen delen over de werkplek. Als jij de .Net Front-end Ontwikkelaar bent voor deze job, vertellen we je snel nóg meer. Eisen Heb

Bekijk vacature »

Software Programmeur

Functie omschrijving Voor onze opdrachtgever in omgeving Rotterdam zijn wij opzoek naar een software programmeur die goed kan schrijven in de talen C of C++ en die het leuk vind om te werken met Linux! Werkzaamheden Programmeur Je bent bezig met het ontwikkelen van software en webapplicaties. Je kunt technische klussen uitvoeren op locatie. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een project goed verloopt. Je zult klanten ondersteunen. Verder zul je technische ontwerpen en gebruikersdocumentaties schrijven en deze onderhouden. Bedrijfsprofiel Dit bedrijf wil de klanten een volledige oplossing kunnen bieden, waarbij ze een

Bekijk vacature »

Software Developer

Longship.io gaat de wereld veroveren met baanbrekende software en legendarische... pizza-avonden! Lees hier de vacature van Software Developer! Bij Longship werken we met een team van 5 mensen aan software voor laadpaal operators. Longship is ontstaan in 2020 met als doel om de elektrische mobiliteitstransitie aan te jagen. We zijn nu al een wereldwijde speler doordat we continu voorop lopen in innovatie. Ons platform helpt het versneld elektrificeren van wagenparken, internationaal! Wij zijn een startup met grote ambities die we willen bereiken met een relatief klein en efficiënt team. Je krijg de kans om ontzettend veel te leren van ervaren

Bekijk vacature »

Full stack ontwikkelaar Laravel, Vue.js

Functie Als ontwikkelaar binnen deze organisatie hou jij je voornamelijk met lopende projecten voor de verschillende klanten. Zo bouw je de ene dag aan prijsschifting systemen en de andere dag onderzoek je crawlers en stel je ze zo in dat de data goed binnen komt binnen het systeem. Daarnaast bouw je mee aan dashboards en ben je dus constant bezig met het verbeteren van het platform. Er is een vaste werkwijze, zo werken ze met Trello kaarten en onderverdelen ze deze aan het begin van iedere week onder de developers. Dit wordt door de lead developer gedaan, maar in samenspraak

Bekijk vacature »

Java/Kotlin Developer

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Roosendaal, ontwikkel je als PHP Developer niet alleen webapplicaties, maar ben je verder ook gefocust op het continu inspelen op nieuwe trends en ontwikkelingen m.b.t software development. Naast het bouwen van webapplicaties, ontwikkelen zij ook webshops en websites voor gave opdrachtgevers! Wat ga je doen? Het schrijven van schone en efficiënte codes volgens het Symfony framework; Het ontwerpen en implementeren van webapplicaties met het Symfony-framework; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het Symfony framework; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de

Bekijk vacature »

Medior Java developer

Wat je gaat doen: 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 je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden je MBO of HBO ICT in ontvangst mogen nemen? Of ben je klaar voor een nieuw hoofdstuk in jouw carrière? Voor een uitdagende werkgever in de regio van Tilburg zijn wij op zoek naar een ambitieuze back-end programmeur met affiniteit met MS Acess. Samen met een enthousiast team ben je verantwoordelijk voor het bouwen van maatwerk software voor hun klanten. Je hebt kennis of ervaring van SQL, Maar affiniteit met MS Acess is nog belangrijker. Je bent sociaal naar klanten en flexibel ingesteld. Je denkt altijd in kansen en gaat graag de uitdaging aan. Verder

Bekijk vacature »

Fullstack JavaScript developer (ReactJS, NodeJS, T

Functie Het team bestaat momenteel uit ruim 15 collega’s, waarvan ruim de helft in het ontwikkelteam werkzaam is. Er zijn gave plannen om het platform ook te gaan toepassen op bijv. vliegvelden, maar ook internationale groei zit in het verschiet en daarom zijn ze op zoek naar versterking. Als Fullstack JavaScript developer werk je nauw samen met 9 fullstack (Python en .NET) developers. Binnen het team ga jij je toespitsen op het creeren van de optimale toegankelijkheid en user experience. Om dit voor elkaar te krijgen zul je ontwerpen, programmeren, testen en implementeren. Het hele proces dus! Maar ook bijvoorbeeld

Bekijk vacature »

.NET developer

Functie Als .NET developer start jij in een development team met één Senior .NET developer en één junior .NET developer. Als team zijn jullie verantwoordelijk voor het schrijven van software voor onze toonaangevende Automatiseringssystemen. Jij gaat aan de slag met de onderhoud van de kernsoftware, ondersteund de software van derden door het gebruik van onze webservices en als team zijn jullie verantwoordelijk voor het ontwikkelen van onze backend oplossingen. Wij maken op dit moment veel gebruik van .NET met ASP.NET. Komend kwartaal gaan wij wel gedeeltelijk overstappen naar .NET Core. Verder werken wij ook met SOAP, REST, JSON, HTML5, CSS3

Bekijk vacature »

PHP Developer

Als PHP Developer bij Coolblue zorg je ervoor dat onze webshops elke dag een beetje beter zijn. Wat doe je als PHP Developer bij Coolblue? Als PHP Developer werk je met andere development teams samen om onze webshop zo optimaal mogelijk te laten werken en onze klanten blij te maken. Hoewel je een PHP Developer bent, sta je open om C# of Typescript in te zetten of te leren. Ook PHP Developer worden bij Coolblue? Lees hieronder of het bij je past. Dit vind je leuk om te doen pure PHP code schrijven. Samenwerken met de klantreiziger om onze klanten

Bekijk vacature »
Mario Achternaam

Mario Achternaam

12/04/2017 15:55:13
Quote Anchor link
Goedemiddag!

Ik ben met een klein projectje bezig, maar kom er even niet uit.
Het wordt een simpel logsysteem, waar je vanuit het admin panel de logs kunt bekijken. Hier worden ook IP-adressen bijgehouden, die je vanuit de logs meteen kunt blokkeren.

Op dit moment zit ik even in de knoei met het volgende:

In de logs kan een IP-adres meerdere keren voorkomen. Ik ga ervoor zorgen dat een IP-adres maar 1x per dag wordt gelogd om het overzichtelijk te houden. Maar met de volgende code wordt een IP-adres zo vaak geblokkeerd als deze in de logs voorkomt, en dat moet natuurlijk maar 1x zijn.
Ik heb zelf al heel wat afgezocht, maar kan het niet vinden.

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

session_start();

if($_SERVER['REQUEST_METHOD'] === 'POST'):
    require_once('../../config.php');
    
    $open = fopen("../../".$conf_file_logs, 'r');
    while(!feof($open)): // <-- laadt alle rijen uit het logbestand (.txt)
        $file = fgets($open);
        $fileLine = explode('|', $file);
        if($fileLine[1] == 'IP' && $fileLine[2] == $_POST['inputIp']): // <-- checkt het type log en kijkt of het IP-adres overeenkomt met de invoer van de beheerder, dit kan dus meerdere keren voorkomen
            $array = array($_POST['inputIp'], $_POST['inputReason']);
            newLine($array, "../../".$conf_file_ips);
            header("Location: ../admin.php?IPCenter");
        endif;
    endwhile;
endif;


?>


Het probleem zit in de while en het feit dat de if-statement meerdere resultaten heeft/kan hebben. Uit de var_dump komt een opsomming van arrays naar voren.

In de logs wordt het als volgt opgeslagen:

logs.txt
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
0|IP|::1|12-04-2017
1|IP|::1|12-04-2017


ips.txt (geblokkeerde IP-adressen)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
0|::1|Reden|12-04-2017
1|::1|Reden|12-04-2017
Gewijzigd op 12/04/2017 15:57:50 door Mario Achternaam
 
PHP hulp

PHP hulp

26/12/2024 10:17:37
 
- Ariën  -
Beheerder

- Ariën -

12/04/2017 16:04:42
Quote Anchor link
Wat is de reden dat je geen database gebruikt? Het maakt het stukken makkelijker om mee te werken.

Verder hoort er eigenlijk een exit(); na je location-header.
 
Mario Achternaam

Mario Achternaam

12/04/2017 16:06:09
Quote Anchor link
Ik vind het wel leuk om mezelf soms uit te dagen en zonder database te werken. Voor het ene project doe ik het wel en het andere niet :)

Is dat zo? Dat heb ik nooit geweten, zal er rekening mee houden.
 
Thomas van den Heuvel

Thomas van den Heuvel

12/04/2017 19:40:08
Quote Anchor link
- Ariën - op 12/04/2017 16:04:42:
Verder hoort er eigenlijk een exit(); na je location-header.


Eigenlijk moet dat altijd, en wel om de volgende reden.
 
Mario Achternaam

Mario Achternaam

12/04/2017 22:10:00
Quote Anchor link
Bedankt.

Jullie kunnen me niet helpen met m'n uitdaging?
 
Ben van Velzen

Ben van Velzen

12/04/2017 23:15:31
Quote Anchor link
Zo te zien heb je niet echt een probleem, want let op:
>> In de logs kan een IP-adres meerdere keren voorkomen. Ik ga ervoor zorgen dat een IP-adres maar 1x per dag wordt gelogd om het overzichtelijk te houden. Maar met de volgende code wordt een IP-adres zo vaak geblokkeerd als deze in de logs voorkomt, en dat moet natuurlijk maar 1x zijn.

Nee, je code wijzigt alleen de eerste keer dat het voorkomt, je redirect immers direct daarna. Als je je exit gewoon netjes na de header plaatst zoals het hoort te zijn ben je al klaar.

Kortom, geen probleem, hooguit niet erg netjes.
 
Mario Achternaam

Mario Achternaam

14/04/2017 22:16:27
Quote Anchor link
Yes, werkt, dankjewel!

Toevoeging op 14/04/2017 23:01:17:

Ben, zou je me trouwens nog kunnen uitleggen wat er niet netjes is?

Toevoeging op 14/04/2017 23:03:22:

Dit is de code nu:

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

// Probleem opgelost

?>
Gewijzigd op 15/04/2017 21:39:44 door Mario Achternaam
 
Ben van Velzen

Ben van Velzen

14/04/2017 23:14:50
Quote Anchor link
Simpel, het deel dat niet netjes is is het redirecten gebruiken als eindconditie. Een break was mogelijk netter geweest om nadat alles klaar was te redirecten. Is overigens grotendeels een kwestie van smaak, en je nieuwe code heeft dit probleem niet. Ik zou voor de leesbaarheid echter wel afstappen van endif, endwhile etc en gewoon gebruik maken van {}. Dan zie je een stuk beter wat je code aan het doen is. De vorm die je nu gebruikt is vooral geschikt voor een grote if met een lading HTML ertussen bijvoorbeeld.
 
Mario Achternaam

Mario Achternaam

14/04/2017 23:24:50
Quote Anchor link
Dankjewel voor je feedback.

Ik heb op jullie aanraden de redirect in een functie gezet, die eindigt met exit;. Ook heb ik alle functies in een class gezet, dat vind ik ook wat fijner werken.
Normaal gesproken gebruikte ik altijd {}, het is pas sinds een paar dagen dat ik dit een beetje aan het toepassen ben omdat ik het mooier vind als de code zo kort mogelijk is.

Nog even een vraagje trouwens:

Na het deleten van een rij wordt er een lege rij in het tekstbestand achtergelaten, wat een isset warning veroorzaakt. Ik kan natuurlijk in de code met isset controleren of een rij al dan niet leeg is, maar ik wil eigenlijk dat lege rijen helemaal niet voorkomen in het tekstbestand.
Voor de volledigheid zal ik de betreffende functie hieronder plaatsen:

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

// Probleem opgelost

?>
Gewijzigd op 15/04/2017 21:40:07 door Mario Achternaam
 
Adoptive Solution

Adoptive Solution

14/04/2017 23:34:34
 



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.