nlbr werkt niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Software Programmeur PHP - JAVA

Functie Wil jij bij een platte en informele organisatie werken? Lees dan snel verder! Voor een opdrachtgever in omgeving Rotterdam dat zich gespecialiseerd heeft in het realiseren van veilige netwerkverbindingen zijn wij op zoek naar een leuke software developer ter versterking van het huidige team. Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen PHP, JAVA en Node.js. Je gaat klanten ondersteunen op het gebied van geleverde software en webapplicaties. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn

Bekijk vacature »

Medior/senior Front-end developer

Functie Je maakt deel uit van een DevOps Scrum team en werkt samen met back-end developers, test-engineers, interaction designers en een projectmanager. Er zijn verschillende groepen Scrum teams. Een roadmap team is jouw ‘’thuisbasis’’, daar wordt gewerkt aan doorontwikkeling van bestaande omgevingen voor een aantal klanten. Hiernaast zijn er projectteams waar nieuwe omgevingen worden gebouwd, of grote complexe wijzigingen worden doorgevoerd op bestaande omgevingen. Je kunt (afhankelijk van jouw wensen en doelen) dus afwisselend werken in beide teams. Hiernaast participeer je in het Chapter Front-end development waar gezamenlijk kennis en ervaring wordt gedeeld. Als Front-end developer is het jouw doel

Bekijk vacature »

C# developer

Functie Als C# ontwikkelaar ben jij de spin in het web bij deze organisatie. Jij begeleidt en traint de field engineers die bij de klanten machines leveren en installeren. Daarnaast ondersteun jij de field engineers als zij bij de klant vastlopen bij het installeren van de machine m.b.t. software matige vragen. Jouw doel is dan ook om de technische kennis van de field engineers door middel van training zoveel mogelijk uit te breiden. Dit om ervoor te zorgen dat zij zelfstandiger software matige problemen kunnen oplossen. Ook ben jij verantwoordelijk voor het bedenken van software oplossingen voor klanten en dit

Bekijk vacature »

Oracle Apex developer

Bedrijfsomschrijving My client is a technology company based in Den Bosch, the Netherlands. They specialize in providing innovative software solutions to clients, and they are currently looking for an experienced Oracle Apex developer to join the IT team. Functieomschrijving As an Oracle Apex developer, you will be responsible for designing, developing, and maintaining web-based applications using Oracle Apex. You will work closely with project managers, business analysts, and other developers to ensure that clients' needs are met and that the software solutions are of the highest quality. Responsibilities: Design, develop, and maintain Oracle Apex applications. Work with project managers and

Bekijk vacature »

Junior full stack developer

Functie Als full stack developer binnen onze organisatie ga jij je bezig houden met het bouwen van de user experience van de webapplicaties. Je bent verantwoordelijk voor het vertalen van concepten, briefings en designs naar werkende functionaliteit. Hierbij zorg je ervoor dat applicaties betrouwbaar, veilig en toekomstbestendig zijn en een goede architectuur hebben en behouden. Verder denk je actief na- en mee over nieuwe ontwikkelingen en functionaliteiten om zo elke dag de klantervaring weer te verbeteren. Dit doe je natuurlijk niet alleen maar in een development team. Het team bedraagt momenteel 4 man bestaande uit 2 devops engineers en 2

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 »

Back-end PHP Developer

Dit ga je doen Her- en uitbouwen van het inhouse softwareplatform dmv PHP; Onderhouden van bovengenoemd platform in PHP; Sparren met het team; Meedenken over nieuwe functionaliteiten, security etc; Jouw input leveren aan het proces door op de hoogte te blijven van nieuwe ontwikkelingen etc. Hier ga je werken Onze klant, gevestigd in de omgeving van Alkmaar, levert wereldwijd oplossingen op het gebied van IT. Dag in dag uit werken zij met veel passie aan hun product waarmee ze streven naar verbeteringen binnen zorg. Voor onze klant zijn we op zoek naar een medior PHP Developer. Je komt te werken

Bekijk vacature »

Back-end Developer

Functie omschrijving Als Back-end Developer heb je de eer om als eerste interne developer bij deze organisatie te beginnen. Op dit moment zijn er externe developers, maar daar wil de organisatie verandering in brengen. Op termijn moet de gehele afdeling uit intern personeel bestaan. Je kan je voorstellen dat de eerste interne developer ook de nodige kennis mee moet brengen. Dat klopt. Je gaat je namelijk aan het begin bekommeren over de externe developers en uiteindelijk over je interne collega's. Verder ga je het volgende doen: Het bedenken, beheren en onderhouden van webportalen, API-koppelingen en applicaties; Je bedenkt en werkt

Bekijk vacature »

Senior Front-End Developer

As a Senior Front-end Developer you maintain the balance between creativity and functionality for our webshop, and you coach your fellow developers. How do I become a Senior Front-End Developer at Coolblue? As a Front-end Developer you work on the user-friendliness of our webshop for millions of customers. You enjoy working with the UX Designer to pick up stories. You get energy from coming up with creative solutions and are happy to present this within the team. You are also proud of your work and welcome all feedback. Would you also like to become a Senior Front-End Developer at Coolblue?

Bekijk vacature »

C# .NET Backend Developer HBO Javascript

Samengevat: Deze werkgever is een professionele speler op gebied van IT en E-Commerce. Wil jij werken voor een e-commerce platform? Heb je ervaring met C#, Javascript en Scrum? Vaste baan: C# .NET Developer Backend E-Commerce 3.400 - 4.500 Backend Developer Wij ontwikkelen software voor E-Commerce toepassingen. Ons eigen Content Management systeem biedt een integrale oplossing met diverse ERP software. Onze systemen zijn vaak complex en omvangrijk en draaien bij grote organisaties. Maar ook kleine ondernemingen hebben steeds vaker behoefte aan een vlekkeloos werkende E-Commerce oplossing. Zij bieden een uitdagende werkomgeving met gezellige collega's. Je krijgt veel vrijheid en er is

Bekijk vacature »

Database Developer

Functieomschrijving Heb jij ongeveer 3 jaar ervaring als Database Developer met MS SQL of een vergelijkbare database? Wil jij werken voor een gewaardeerde werkgever in regio Tilburg waar jij de tijd en ruimte krijgt jezelf te ontwikkelen? Lees dan snel verder! Hoe ziet jouw takenpakket eruit? Je houdt je bezig met het creëren en bouwen van MS SQL server databases; Je gaat projecten vanaf het begin tot het eind begeleiden. Je sluit aan bij meetings met klanten om hun processen in kaart te brengen. Vervolgens voer jij het project uit en zorgt dat dit zo goed mogelijk verloopt; Je werkt

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

Database Developer

Functieomschrijving Wat ga je doen? 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 voeren, maar het is ook prettig als je in de omgeving van Tilburg woont om naar het kantoor te kunnen komen. Vind jij het leuk om jouw creatieve vaardigheden te benutten om complexe systemen te ontwikkelen? Lees dan snel verder! Bedrijfsprofiel Voor wie

Bekijk vacature »

Senior .NET developer

Klaar voor een nieuwe uitdaging? Welke technologieën gaan schuil achter de dagelijkse energievoorziening? Als senior .NET developer bij Kenter maak jij samen met je team het verschil, zowel voor de interne organisatie als voor eindklanten. Samen bouwen jullie aan innovatieve dienstverlening met behulp van de nieuwste technologieën en tools. Het is een functie met veel vrijheid, goede arbeidsvoorwaarden én je draagt jouw steentje bij aan de energietransitie. Klinkt dit als iets voor jou? Lees dan verder of solliciteer direct! Wat ga je doen als senior .NET developer? Als senior .NET developer bij Kenter (onderdeel van Alliander) ben je van onschatbare

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

23/12/2024 05:58:42
 
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.