nlbr werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

C# .NET Software Developer

Functie omschrijving Ben jij op zoek naar een nieuwe uitdaging binnen software development waar je gaat werken voor een jong en flexibel bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Software Developer met ervaring binnen C# .NET die enthousiast wordt van het aansluiten en begeleiden van (complexe) nieuwe klanten. Verder begeleid je complexe projecten, ben jij iemand die altijd kansen ziet? Dan zoeken wij jou! In deze functie ga jij je bezighouden met: Meedenken in oplossingsrichtingen; Werken aan de architectuur; Het verbeteren van functionaliteiten binnen het dataplatform; Ontwikkelen van nieuwe technologieën. Bedrijfsprofiel Waar ga je aan de

Bekijk vacature »

PHP Software Developer

Functie omschrijving PHP Software Developer gezocht! Voor een organisatie in de regio Zeist die zich bezighoud met het verbeteren van de medicatieveiligheid zoeken wij een Software Developer. In deze functie zijn wij op zoek naar een slimme en enthousiaste Developer die interesse heeft in farmacie, logistiek en ICT. Daarnaast beschik je over een goed analytisch vermogen en ben je van nature gestructureerd en resultaatgericht. Je moet in deze functie daadkrachtig, flexibel en communicatief goed zijn. Je verantwoordelijkheden bestaan uit: Object georiënteerd programmeren; Werken in een scrumteam aan de ontwikkeling van een medicatiebewakingssysteem; Meedenken over de mogelijkheden en onmogelijkheden van projecten;

Bekijk vacature »

Full-stack developer

Als Full-stack developer bij KUBUS houd je je bezig met het ontwikkelen van de (web)applicatie en services van BIMcollab. Samen met je SCRUM team werk je aan zowel de front- als de back-end. Als softwarebedrijf bevindt KUBUS zich in een unieke positie. We bouwen aan onze eigen producten die wereldwijd door tienduizenden gebruikers worden gebruikt. Ons bedrijf heeft precies de juiste grootte: groot genoeg om echt impact te maken in de markt, maar klein genoeg om als individuele ontwikkelaar invloed uit te kunnen oefenen en echt het verschil te kunnen maken. Ons ontwikkelteam bestaat uit ruim 40 ontwikkelaars, testers, scrum

Bekijk vacature »

Ontwikkelaar Identity & Access Management

Dit ga je doen Als Identity & Access Management Ontwikkelaar zorg jij er voor dat studenten, medewerkers en docenten de juiste benodigdheden op het juiste moment kunnen gebruiken; Het juist opslaan van onderzoeksdata en het openbaar beschikbaar stellen van publicaties (Open Access); Studenten, collega's en wetenschappers ondersteunen; Agile en Scrum werken; Technisch Applicatiebeheer; Ontwikkelen in One Identity Manager en VB.NET. Hier ga je werken Als Ontwikkelaar kom je terecht in een hecht team die zich richt op wetenschappelijke informatie en ICT. Jij bent degene die er voor zorgt dat alle informatie, uit diverse onderzoeken, bij de juiste personen terecht komt.

Bekijk vacature »

Junior Software Developer (HBO / WO)

Functie omschrijving Voor een leuke opdrachtgever zijn wij op zoek naar een Junior Software Developer! Sta jij aan het begin van je carrière en heb je net je HBO of WO-diploma in de richting van ICT of Techniek mogen ontvangen? En heb jij grote affiniteit met software development? Dan hebben wij bij Jelling IT Professionals de perfecte opdrachtgever in de omgeving van Hoofddorp. Binnen deze functie vervul je een onsite learning programma waarbij je aan de slag gaat met PHP en Laravel. Hierbij ben je voornamelijk werkzaam op verschillende klantlocaties en is het jouw taak om hun wensen en eisen

Bekijk vacature »

Lead Fullstack developer

Functie omschrijving Ben jij een leergierige en ambitieuze junior developer met technische skills? Ben jij op zoek naar een werkgever die jouw de volledige vrijheid geeft om jezelf tot een volwaardige senior te ontwikkelen? Wij zijn op zoek naar een full stack developer die zich bezig wil bezig houden met het uitbreiden en verbeteren van de online webshop. Een onderdeel van jouw werkzaamheden is naast het beheren van de webshop ook om de processen en structuren te stroomlijnen. Werkzaamheden Onderhouden van de webshop (denk aan het bijhouden van de voorraad); Nieuwe functies toevoegen aan de product configurator door middel van

Bekijk vacature »

Traineeship Full Stack Java developer

Dit ga je doen Start jij op 7 augustus bij de Experis Academy dan kickstart jij jouw IT-carrière! We leiden je op tot een gewilde Full Stack Java Developer met alle kennis en vaardigheden die nodig zijn om de arbeidsmarkt te betreden. Wat kun je verwachten, hoe zit een dag in het leven van een Trainee eruit? Periode 1 Als Full Stack Java Developer Trainee volg je vanuit huis een op maat gemaakte onlinetraining die in het Engels wordt gegeven. De tijd die je kwijt bent aan het volgen van de training kun je vergelijken met een fulltime werkweek. In

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 »

.NET developer

Functie Als junior .NET ontwikkelaar ga jij aan de slag in één van de 5 IT teams van dit bedrijf. Jullie werken op basis van interne klantprojecten aan voornamelijk webapplicaties. Dit betekent dat jij continu uitgedaagd wordt en veelal met verschillende soorten projecten bezig bent. Het gave is dan ook dat jullie als team samen bekijken welke technieken het beste passen bij het project waar jullie verantwoordelijk voor zijn. Zo kan het zijn dat jij als .NET developer gaat werken aan een project, maar dat jullie als team liever gebruik maken van Haskell of F# om de klus te klaren.

Bekijk vacature »

Lead developer

Functie Als lead developer wordt jij verantwoordelijk voor een van onze development teams. Samen met de Software Architect bewaak jij de kwaliteit en uitvoering van onze complexe vraagstukken. Daarnaast ben jij verantwoordelijk voor het inschatten, designen en ontwikkelen van middelgrote tot grote veranderingen in de software. Ook coördineer jij het proces rondom complexe technische vraagstukken. Verder bestaat jouw takenpakket uit het volgende: – Het aansturen van jouw development team; – Het begeleiden van Junior Software Engineers; – Het maken van technische analyses m.b.t. nieuwe aanvragen en het tijdsbestek inschatten voor de uitvoering hiervan; – Het uitvoeren van de ontwikkeling van

Bekijk vacature »

Junior Back end developer PHP, Symfony

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 »

.NET developer

Functie Jij begint als .NET ontwikkelaar in een team met 10 andere Software Engineers. De werkzaamheden zijn afwisselend, zo kan het dat jij bezig bent met volledig nieuwe features of het door ontwikkelen van bestaande sites of shops. Wij ontwikkelen web applicaties, maar ook mobiele applicaties. Daarnaast bijt jij je soms ook van in externe koppelingen met systemen zoals een ERP. Als team is er een duidelijke focus m.b.t. het waarborgen van de performance en snelheid van webshops. Ook zijn wij expert op het gebied van configuratoren. Kortom enorm veel afwisselende werkzaamheden! Ook jouw werkplek kan afwisselend zijn. Soms heb

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 »

Software Ontwikkelaar PHP

Functie omschrijving Full Stack Software Ontwikkelaar gezocht! Voor een bedrijf in de regio van Ermelo zijn wij op zoek naar een Software Ontwikkelaar die gaat bijdragen aan het door ontwikkelen, onderhouden en optimaliseren van SaaS applicatie van dit bedrijf. Hierbij ga jij voor- en samenwerken met de klanten van de organisatie, het is hierbij dus van groot belang dat je communicatief vaardig bent en dat je beschikt over beheersing van zowel de Nederlandse als Engelse taal. Bedrijfsprofiel Waar ga je werken? Altijd al in een echt familiebedrijf willen werken? Dan is dit je kans! Het bedrijf waar je komt te

Bekijk vacature »

Software Programmeur PHP

Functie Wij zijn op zoek naar een PHP programmeur voor een leuke opdrachtgever in omgeving Alblasserdam. Heb jij altijd al willen werken bij een bedrijf dat veilige netwerkverbindingen levert door middel van veilige oplossingen? Lees dan snel verder. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten goed verlopen. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Tevens

Bekijk vacature »
Rick kem

rick kem

17/12/2013 17:10:51
Quote Anchor link
Hallo ik heb het volgende script:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
function nlbr($tekst){
    $tekst = str_replace("\\r\\n","<br />",$tekst);

return $tekst;
}

$text = nlbr($row->message);
$text = Environment::Filter($text);
echo $text;
?>


En weergeeft de volgende uitkomst:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
adsadsads<br />asddas<br />asdads<br />adsads<br />sadsad<br />asdsads



Terwijl het dit moet zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
adsadsads
asddas
asdads
adsads
sadsad
asdsads



Environment::Filter doet het volgende:
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
<?php
public static function Filter($value, $enableHTML = 1) {
        switch($enableHTML)
        {
            case
1:
             return mysql_real_escape_string(htmlentities($value,ENT_QUOTES));
             break;
            
            case
2:
             return mysql_real_escape_string($value);
             break;
            
             default:

              return mysql_real_escape_string($value);
             break;
            
        }
    }

?>



Alvast bedankt voor de hulp

Code tags aangepast.[/modedit]
Gewijzigd op 17/12/2013 17:39:21 door Wouter J
 
PHP hulp

PHP hulp

16/05/2024 15:09:35
 
Ward van der Put
Moderator

Ward van der Put

17/12/2013 17:25:05
Quote Anchor link
Waarom gebruik je nl2br() niet?

Kort in elk geval "\\r\\n" in tot "\r\n".
 
Rick kem

rick kem

17/12/2013 17:27:12
Quote Anchor link
Dat is in de database wel het geval, maar tijdens het uitvoeren van de $text string niet.
 
Wouter J

Wouter J

17/12/2013 17:38:21
Quote Anchor link
\r\n
\n
\n\r

Allemaal opties die allemaal hetzelfde doen, maar dan voor een andere OS. Gebruik gewoon nl2br, die houdt rekening met al deze inconsistenties.

Wat opmerkingen:
- Gebruik true en false, geen 1 en 2
- mysql_real_escape_string is alleen voor, je hoort het goed, MySQL. Een database dus, het heeft niks maar dan ook niks te doen met gegevens die je echoëd.
- htmlentities, die zorgt dat HTML tags niet gerendert worden. Dus die <br> die nlbr (of de betere nl2br) in de strings plaatst worden allemaal niet gerendert. Oplossing? Plaats nlbr (of de betere nl2br) na de filter method
- als default en een case gelijk zijn kun je gewoon die cache weghalen.
- bij een return stopt de method executie, PHP zal dus nooit bij break; aankomen, die kan dus ook gewoon weg
 
Kris Peeters

Kris Peeters

17/12/2013 17:42:06
Quote Anchor link
(EDIT: ondertussen is hier al van alles geschreven)

Om te beginnen; je weet dat php die functie al standaard heeft?
Ze heet nl2br , zie http://php.net/nl2br .

--------

Je mag niet alle filter-functies tegelijk gebruiken.

Van elk van die functies moet je zelf heel goed beseffen waarom je ze gebruikt. Anders gebruik je ze fout.

mysql_real_escape_string() is om mysql_ string te maken.
bv.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php $sql = "SELECT username, email, rank FROM users WHERE username='" . mysql_real_escape_string($_POST['username']) . "'" ;
?>

Je mag niet zomaar overal mysql_real_escape_string gebruiken.

Voor gelijk welke andere reden dan een SQL-string maken, gebruik je mysql_real_escape_string dus niet!

----

htmlentities() gebruik je om de HTML te beschermen.
bv. iemand post dit:

$_POST['message'] = "IK ben John.</div></div>";

Als je dit zomaar op het scherm zet, worden die </div> 's actief; en wees maar gerust dat dit de layout van je hele website naar de *** helpt.

Wat doet htmlentities? htmlentities transformeert html-elementen (de speciale karakters in de tags) in karakters die geen actieve HTML-functionaliteit hebben.

bij voorbeeld: het element <br /> wordt omgezet naar &lt;br /&gt;. Dat ziet er (op het scherm) exact uit zoals <br />, maar heeft niet de actieve werking, die zorgt dat je een nieuwe lijn ziet.

... en dit is precies wat jij voor hebt.

----

Dus:
Gooi function filter() maar weg. Ze helpt je niet.

Nu ben ik wel benieuwd in welke context je deze functies gebruikt.
Laat ons dat probleem even bespreken; dan zetten we daar direct de juiste functies.
Gewijzigd op 17/12/2013 17:48:37 door Kris Peeters
 
Rick kem

rick kem

17/12/2013 17:48:49
Quote Anchor link
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php

/**
 * @author Rick
 * @copyright 2013
 */
//include("include/ubb.class.php");

function nlbr($tekst){
    $tekst = str_replace("\\r\\n","<br />",$tekst);

return $tekst;
}
function
ubb($text) {
    $text = preg_replace("#\[b\](.*?)\[/b\]#si","<b>\\1</b>", $text);
    $text = preg_replace("#\[u\](.*?)\[/u\]#si","<u>\\1</u>", $text);
    $text = preg_replace("#\[i\](.*?)\[/i\]#si","<i>\\1</i>", $text);
    $text = preg_replace("#\[img\](.*?)\[/img\]#si","<img src=\\1>", $text);
return $text;
}


if(isset($_GET['cat_id']) || isset($_GET['id'])){
    include("pages/news/cat.php");
    
}
elseif(isset($_GET['id'])){
    include("pages/news/id.php");

}
else{
    $per_pagina = 5; # aantal berichten per pagina
    $first_last_link = true; # links naar eerste & laatste pagina

    $start = isset($_GET['s']) && ctype_digit($_GET['s']) ? $_GET['s'] : 0;
    $sql = MySQL::Query("SELECT * FROM news ORDER BY id DESC LIMIT {$start}, $per_pagina");
    
    if(mysql_num_rows($sql) == 0){
        echo'<div class="error">Er zijn nog geen nieuwsberichten geplaatst.</div>';
    }
else{
        while($row = mysql_fetch_object($sql)){
?>

        <div id="headernewsbig"><?php echo ucfirst(Environment::Filter($row->title)); ?></div>

        <div id="big-content">
            <div class="rank_blok">
            <center>
            <img src="images/profile/onbekend.png">
            <br />
            <?php
            $sql_user
= MySQL::Query("SELECT username,id FROM users WHERE id = '".Environment::Filter($row->user_id)."' ORDER BY id DESC LIMIT 1");
            if(mysql_num_rows($sql_user) == 0){
                echo'Onbekend';
            }
else{
            ?>

                <a href="index.php?p=profile&id=<?php echo Environment::Filter($row_user->id); ?>">
                <?php echo ucfirst(Environment::Filter($row_user->username)); ?>
                </a>
            <?php
            }
            ?>

            <br />
            <?php echo Environment::Filter($row->date); ?>
            </center>
            </div>
            
            <?php
            $tags
= array('html','opmaak'); // deze tags zal hij uitvoeren ubb_TAG(); (kijk in de klasse wat het precies doet)
            $text = nlbr(ubb(htmlentities($row->message,ENT_QUOTES)));
            echo $text;
            ?>

            <p align="right"><a href="index.php?p=news&cat_id=<?php echo Environment::Filter($row->cat_id); ?>&id=<?php echo Environment::Filter($row->id); ?>">Reageren</a></p>
        </div>
        <div id="big-footer"></div>
<?php
        }
    }

?>
 
Erwin H

Erwin H

17/12/2013 17:50:44
Quote Anchor link
Even alle opmerkingen ten spijt, ik vraag me af wat de poster nu eigenlijk wel. Hij geeft aan de linebreaks te willen vervangen door html break elementen. Vervolgens zegt hij:
Rick kem op 17/12/2013 17:10:51:
En weergeeft de volgende uitkomst:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
adsadsads<br />asddas<br />asdads<br />adsads<br />sadsad<br />asdsads

Terwijl het dit moet zijn:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
adsadsads
asddas
asdads
adsads
sadsad
asdsads

Uhm, als ik de uitkomst zie, dan staan daar alleen html break elementen in en geen linebreaks. Missie geslaagd toch?
 
Kris Peeters

Kris Peeters

17/12/2013 17:54:29
Quote Anchor link
Erwin H op 17/12/2013 17:50:44:
ik vraag me af wat de poster nu eigenlijk wel.


Op het scherm ziet hij <br/ >
Als hij de page source bekijkt, ziet hij &lt;br /&gt;

Wat hij wil:
Op het scherm wil hij een nieuwe lijn zien.
Als hij de page source bekijkt, wil hij <br /> zien

------

Maar toch even verder gaan op Erwin zijn vraag.
Wil je dit echt wel? Wil je echt dat tekst uit een database zorgt voor actieve HTML?

Wie heeft die tekst in die DB gestoken? News items, juist? Dus mensen posten via jouw site een tekst. Een tekst met UBB. Die tekst gaat naar de DB.
Je wil niet dat gebruikers de mogelijkheid hebben om de layout van jouw site aan te passen.

De normale gang van zaken, is de volgende.
Op jouw site staat een <textarea> Daarin worden nieuwe lijnen opgeslagen als PHP_EOP (= "\n" of "\r\n").
Die worden dus als \n in de database gezet.

Wanneer je die post opnieuw op het scherm zet, passeer je de waarde door nl2br.

Dus, als ik me niet vergis:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo ubb(nl2br(htmlentities($row->message)));
?>

Eerst de entities vervangen; dan is $row->message volledig HTML inactief.
Dan de nl vervangen door <br>
Dan de UBB vervangen

Wat je niet mag doen, is htmlentities gebruiken als filter bij de INSERT in de DB.
Dus, als je dit soort tekens in de db ziet: &lt;br /&gt; dan ben je fout bezig.
Gewijzigd op 17/12/2013 18:15:54 door Kris Peeters
 
Erwin H

Erwin H

17/12/2013 18:22:43
Quote Anchor link
Kris, die tekens ziet hij helemaal niet in de DB. Die komen voort uit de htmlentities call die in Environment::filter worden gedaan alvorens de data op het scherm wordt getoond.

Enige probleem (wat ik zie) is dus die htmlentities call. Haal die weg en klaar. Of, doe die voor het vervangen van de linebreaks.

P.S. mysql_real_escape_string aanroepen op dit punt zie ik op zich niet als een probleem (is geen oorzaak van de wat er nu gebeurt), maar is natuurlijk wel verkeerd.
Gewijzigd op 17/12/2013 18:23:01 door Erwin H
 



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.