echo probleempje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Developer

Functieomschrijving Are you an experienced Java Developer who wants to be challenged? Then this is your job! As a Java Developer, you are co-responsible for building custom applications within our extensive IT landscape. Development takes place on both the back-end side (Spring/JEE). Together with the IT department, you are responsible for the daily adjustments and expansions of our IT systems. In addition, you will work in small scrum teams using the Agile methodologies. Besides the realization of our in-house systems, you are responsible for the roll-out of the application (version) as well as the operational support after going live. Team

Bekijk vacature »

SQL Developer

Functie omschrijving Altijd al willen werken bij een snelgroeiend bedrijf, actief in de logistieke sector? Dit is je kans! Ik ben op zoek naar een ervaren SQL Developer in de omgeving Tilburg. Dit bedrijf is gespecialiseerd in in de ontwikkeling van software en maatwerk oplossingen voor het automatiseren van logistieke processen. Klanten zijn o.a. BOL en andere grote distributiecentrums. Jouw taken worden vooral: Verantwoordelijk voor ontwikkelen van stored procedures, voor snelle afhandeling van data; Optimalisatie van de SQL query's en T-SQL query's; Jij gaat je bezig houden met ontwerpen, ontwikkelen en optimaliseren van de MS SQL Databases; In deze functie

Bekijk vacature »

SQL database ontwikkelaar

Functie omschrijving Ben jij niet bang voor complexe algoritmes? Schikt het schrijven van procedures in T-SQL jouw niet af en heb jij al de nodige informatie in SQL, dan is functie precies wat voor jou! Jouw werkzaamheden gaan er als volgt uit zien: Je gaat werken aan de complexere projecten waar jij van A tot Z bij betrokken bent. Je gaat zorg dragen voor het ontwerp, de ontwikkeling en het updaten van SQL databases. Dit doe je op basis van T-SQL. Jij bent van start tot finish betrokken bij de projecten die jij leidt. Je houdt contact met klanten en

Bekijk vacature »

PHP Developer

Functieomschrijving Vanuit het hoofdkantoor in omgeving Breda ben je als PHP/Symfony Developer niet alleen gefocust op het ontwikkelen van software. Daarnaast ben je voortdurend bezig met het zoeken naar nieuwe trends en ontwikkelingen die van waarde kunnen zijn voor de efficiëntie van software ontwikkeling. Hieronder een kort overzicht van jouw takenpakket: Het ontwerpen en implementeren van webapplicaties met het Symfony Framework; Het schrijven van een schone en efficiënte codes; Het testen van ontwikkelde applicaties om te zorgen dat ze goed functioneren en voldoen aan de eisen van de klant; Onderhouden en updaten van bestaande applicaties die zijn gebouwd met het

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

Back End Developer .NET

Dit ga je doen Ontwikkelen in C# .NET en werken aan nieuwbouw, uitbouw en onderhoud van de software (die communiceren met 68.000 sensoren, waardoor er meerdere miljoenen berichten per uur verwerkt worden); Samenwerken in Scrum Teams; Meewerken aan verschillende, uitdagende projecten; Werken met nieuwe technologieën en vrijheid krijgen om jezelf te ontwikkelen en door te groeien. Hier ga je werken Je komt als Developer te werken bij een organisatie die gespecialiseerd is in software die real-time wordt gebruikt. De software constateert waar werk moet worden uitgevoerd en de chauffeurs worden met een andere applicatie hierop geattendeerd. Ook wordt er direct

Bekijk vacature »

Medior/senior Fullstack developer

Functie Onder begeleiding van 3 accountmanagers waarvan er 1 binnen jouw expertise je aanspreekpunt zal zijn ga je aan de slag bij diverse opdrachtgevers. Hij of zij helpt je bij het vinden van een passende en uitdagende opdracht. Hierin houden ze uiteraard rekening met jouw situatie, ervaring en (technische) ambities. De opdrachten duren gemiddeld één tot 2 jaar. Hierdoor kun je je ook echt vastbijten in een project en als consultant impact maken. Naast de opdracht ben je regelmatig met je collega’s van de IT-afdeling om bijvoorbeeld onderlinge kennis te delen, of nieuwe trends te bespreken. Ook worden er regelmatig

Bekijk vacature »

Front end ontwikkelaar

Functie Het huidige team bestaat uit momenteel uit 5 back end developers verdeeld van senior tot junior. Omdat de gehele front end van applicaties anders gaan insteken zijn ze op zoek naar een ervaren Front end developer die hen kan helpen de juiste keuzes te maken. Je krijgt veel vrijheid om te bepalen hoe je dit wilt ontwikkelen en vrijheid in welke techniek je hiervoor wilt gebruiken. Je zult je dus bezighouden met architectuur, documentatie en natuurlijk ontwikkeling van nieuwe functionaliteiten binnen de verschillende applicaties. natuurlijk heb jij ook mogelijkheden om te sparren binnen het team, maar ze gaan uit

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 »

.NET developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Freelance Fullstack Java Developer

Functieomschrijving Voor een opdrachtgever in omgeving Rotterdam zijn wij op zoek naar ervaren Fullstack JAVA Developers die graag op projectbasis willen werken. Je komt terecht bij een informele developers club die mooie projecten uitvoeren voor grote klanten. Ben je een ervaren freelancer of werk je in loondienst en ben je toe aan een nieuwe uitdaging? Lees dan snel verder want wie weet is dit een leuke vacature voor jou! Het fijne van deze werkgever is dat je zelf mag beslissen hoe je te werk wilt gaan. Wil je als freelancer werken dan is dat OK. Wil je de zekerheid hebben

Bekijk vacature »

Medior/senior Front-end developer (Vue.js)

Functie Als Front-end developer ben je uiteindelijk overkoepelend aan de slag voor de 3 ontwikkelteams die ieder aan een specifiek product werken. In samenwerking met de UX-designer en de huidige Front-end developer zorg je voor gebruiksvriendelijke software. Lijkt het jou interessant om complexe problemen op te lossen en feautures naar een hoger niveau te tillen? En vind je het niet erg om oudere delen van de applicaties te refactoren i.c.m. het toevoegen van nieuwe functionaliteiten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en zelfredzaamheid)

Bekijk vacature »

Traineeship Fullstack developer (WO, 0 tot 3 jaar

Functie Zoals beschreven ga je vanaf start aan de slag bij een passende opdrachtgever, hierbij kijken ze echt naar jouw wensen, kennis/ervaring maar ook de reisafstand. Momenteel hebben ze meerdere klanten waarbij ze groepen hebben opgezet wat maakt dat er diverse uitdagende kansen liggen. Naast het werken bij de opdrachtgever, en het volgen van de masterclasses, zul je regelmatig met de andere trainees in contact zijn. Niet alleen op professioneel vlak maar juist ook bij de borrels en kwartaaluitjes! Kortom; een jaar lang hard aan jezelf werken in combinatie met gezelligheid en plezier. Spreek dit jou aan? Dan komen we

Bekijk vacature »

Programmeur / Developer

Voor een familiebedrijf in Doetinchem, actief in de machinebouw voor de food-sector, zijn wij op zoek naar een programmeur / developer. In deze functie ben je werkzaam in een team van 5 medewerkers. Je werkzaamheden bestaan onder andere uit het verhelderen van requirements vanuit de opdrachtgever, de klant en de afdeling ontwikkeling. Je verricht haalbaarheidsstudies en werkt specificaties uit die je afstemt met de opdrachtgever. Je ontwerpt design in software en stemt af met je collega's. De huidige vision-systemen zijn geschreven in C software, welke draait op een CUDA platform. Je schrijft en codeert software en zal gaan testdraaien. Tot

Bekijk vacature »
Marc O

Marc O

25/11/2018 23:48:53
Quote Anchor link
Hoi,

ik ben nieuw hier en en absolute php-beginner. 15 Jaar geleden ooit een korte php-introductie gevolgd maar die kennis is ver weg gezakt.

Ik heb nu toch weer een klusje en vind het best aardig om er weer mee bezig te zijn maar loop natuurlijk meteen tegen een hoop problemen aan, bijvoorbeeld dit:

Ik haal uit een database gegevens op en ga die vervolgens via echo in een via tabel laten zien. Daarbij wil ik aan het eind van iedere regel van de tabel ($row) een knop maken die het mogelijk maakt om via een andere pagina het record te wijzigen. Ik heb al van alles geprobeerd maar het lukt mij niet om de waarde in het formulier mee te geven die gewijzigd moet worden: Deze code gebruik ik nu (die dus misloopt op:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="naam" value="'<?php echo $row['achternaam']; ?>'">  


De hele code van die echo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
echo '<tr><td>'.$row['achternaam'].'</td><td>'.$row['contracttype'].'</td><td>'.$row['registratiedatum'].'</td>'.'<td>'.date('Y-m-d').'</td>'.'<td>'.$afgerond.'&nbsp;'.'weken'.'</td><td>'.$adres.'</td><td>'.$herinnering.'<td><form action="wijzig.php" method="post"><input type="text" name="naam" value="'[code]<?php echo $row['achternaam']; ?>
'"><input type="submit" name="wijzig" value="Wijzig"></form></td></tr>';
?>


iemand een idee hoe ik dat correct opneem?

Alvast heel hartelijke dank,
Marc

Edit:
Code-tag geplaatst. Lees ook de Veelgestelde Vragen waarin de opmaak-codes uitgelegd worden.
Gewijzigd op 26/11/2018 01:11:06 door - Ariën -
 
PHP hulp

PHP hulp

10/01/2025 20:49:16
 
Thomas van den Heuvel

Thomas van den Heuvel

26/11/2018 00:06:37
Quote Anchor link
Een aantal pointers die je in de goede richting zouden moeten sturen:

* de records zouden ook makkelijk te identificeren moeten zijn, dit wordt vaak bereikt door een auto-increment id mee te geven aan een tabel. vervolgens geef je dit item mee aan de form action, bijvoorbeeld: edit.php?id=5. Zo weet je direct over welk record het gaat.

* PHP-blokken kun je te allen tijde openen en weer sluiten. Persoonlijk -hier verschillen de meningen wel over- vind ik het handiger als de statische delen buiten PHP-blokken vallen, en de dynamische delen in PHP-blokken zitten. Zo heb je ook -in het algemeen- een goede tweedeling tussen statisch en dynamisch. Dit is in ieder geval een stuk beter leesbaar dan een hele hoop echo's, enkele quotes en dubbele quotes.

* de data in de formuliervelden kunnen mogelijk HTML bevatten. Deze moeten vervolgens niet ook als HTML geinterpreteerd kunnen worden lijkt mij. Daartoe is het zaak dat je deze data van de mogelijk speciale betekenis binnen HTML stript. Dit doe je met functies als htmlspecialchars().

Escaping-functionaliteit is wel (sterk) afhankelijk van de gebruikte character encoding, dus hier zul je bewust mee moeten omgaan, maar dat is sowieso al nodig om data goed de database in te krijgen en er weer correct uit te halen. Als shorthand zou je hier een functie voor kunnen introduceren, bijvoorbeeld als volgt (aangenomen dat je overal UTF-8 gebruikt):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
function escape($in) {
    return htmlspecialchars($in, ENT_QUOTES, 'UTF-8');
}

?>

En vervolgens wordt je HTML zoiets als:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form action="wijzig.php?id=<?php echo escape($row['id']); ?>" method="post" accept-charset="UTF-8">
<input type="text" name="naam" value="<?php echo escape($row['achternaam']); ?>">
<input type="submit" name="wijzig" value="Wijzig">
</form>
Gewijzigd op 26/11/2018 00:11:56 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

26/11/2018 01:54:07
Quote Anchor link
Maak van dit stukje:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="naam" value="'<?php echo $row['achternaam']; ?>'">

Dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<input type="text" name="naam" value="' . $row['achternaam'] . '">
Gewijzigd op 26/11/2018 01:55:41 door Ozzie PHP
 
Marc O

Marc O

26/11/2018 13:30:19
Quote Anchor link
@Thomas van den Heuvel: bedankt voor je tips! Ik heb in de databasetabel inderdaad een id toegevoegd dus dat kan ik handig gebruiken. Deze zin zegt mij nog niet zoveel: "Escaping-functionaliteit is wel (sterk) afhankelijk van de gebruikte character encoding,". Maar ik leer snel bij :-). De code die je voorstelt werkt (nog) niet.

@Ozzie: ja, dat werkt. Ik had dit al eerder geprobeerd maar dan zonder die punten en die maken het verschil!
 
Thomas van den Heuvel

Thomas van den Heuvel

26/11/2018 16:10:06
Quote Anchor link
Marc O op 26/11/2018 13:30:19:
Deze zin zegt mij nog niet zoveel: "Escaping-functionaliteit is wel (sterk) afhankelijk van de gebruikte character encoding,".

In een ander draadje (interne link) komt character encoding weer ter sprake. Wat je hiervan mee moet nemen is dat alle tekst een character encoding heeft. Dit wil zeggen dat de grafische karakters (letters en andere symbolen) een bepaalde codering op byte-niveau (in het geheugen) hebben.

Het "escapen" van een passage is het ontdoen van de mogelijk speciale betekenis die de passage heeft binnen de gebruikte context. Dat klinkt misschien wat abstract. Beschouw de PHP-string "<hr>". Als je deze weergeeft in een HTML-document, dan wordt niet de tekst "<hr>" weergegeven, maar een horizontale lijn. Dit komt omdat het geheel "<hr>" een speciale betekenis heeft in HTML - dit is een zogenaamde horizontal rule tag. Een functie als htmlspecialchars() zorgt ervoor dat karakters die een speciale betekenis hebben binnen de HTML-context worden omgezet (of "onschadelijk" worden gemaakt zeg maar) naar een variant die geen speciale betekenis heeft in HTML. Zo zal een openingshaak (het kleiner-dan teken <) worden omgezet naar zijn entiteit (&lt;) en op een zelfde wijze wordt een sluitingshaak (het groter-dan teken >) ook omgezet naar zijn entiteit (&gt;). htmlspecialchars() zorgt dus dat effectief <hr> wordt omgezet naar &lt;hr&gt;, wat in een HTML-document weer wordt weergegeven als (letterlijk) <hr> (dit omdat &lt; de HTML-entiteit is voor <, en &gt; die van >).

Maar om die symbolen dus goed op te kunnen pikken moet je dus weten hoe deze in het geheugen geëncodeerd zijn, daarom is het belangrijk dat je dus de character encoding vastlegt, en ook liefst overal hetzelfde houdt.

Op eenzelfde wijze heb je escaping in de SQL-context (met functies als real_escape_string()). En dit is dan om te voorkomen dat DATA enige speciale betekenis binnen je SQL heeft, met alle mogelijk rampzalige gevolgen van dien, zoals bijvoorbeeld SQL-injectie.

Als je dus netjes en veilig wilt omspringen met content en databases heb je dus wel een zekere minimale set van voorzieningen nodig om ervoor te zorgen dat dit ook echt werkt. Je bewust zijn van zaken als "character encoding", "output escaping" enzo lijken mij een minimale vereiste.

Of je maakt gebruik van een aanpak waarin je gewoon begint en het schip op den duur strandt (interne link) zonder dat je precies weet wat er misgaat... Your choice.

Marc O op 26/11/2018 13:30:19:
De code die je voorstelt werkt (nog) niet.

In de snippet HTML + PHP wordt de functie "escape()" gebruikt - deze staat in de eerdere snippet gedefinieerd. Deze functie zul je dus ergens in je code moeten opnemen (declareren) voordat je deze kunt gebruiken (aanroepen).

Als dat nog steeds niet werkt zul je wat verder moeten uitweiden over wat er precies niet werkt :).
Gewijzigd op 26/11/2018 16:27:37 door Thomas van den Heuvel
 
Marc O

Marc O

27/11/2018 21:51:20
Quote Anchor link
Quote:
Als je dus netjes en veilig wilt omspringen met content en databases heb je dus wel een zekere minimale set van voorzieningen nodig om ervoor te zorgen dat dit ook echt werkt. Je bewust zijn van zaken als "character encoding", "output escaping" enzo lijken mij een minimale vereiste.

Of je maakt gebruik van een aanpak waarin je gewoon begint en het schip op den duur strandt (interne link) zonder dat je precies weet wat er misgaat... Your choice.


Dank voor je uitleg! Het heeft mijn onverdeelde aandacht :-)

Marc O op 26/11/2018 13:30:19:
De code die je voorstelt werkt (nog) niet.

Quote:
In de snippet HTML + PHP wordt de functie "escape()" gebruikt - deze staat in de eerdere snippet gedefinieerd. Deze functie zul je dus ergens in je code moeten opnemen (declareren) voordat je deze kunt gebruiken (aanroepen).

Als dat nog steeds niet werkt zul je wat verder moeten uitweiden over wat er precies niet werkt :).


Ik had die functie opgenomen en aangeroepen maar helaas. Inmiddels werkt het wel zoals ik antwoordde aan Ozzie.
Gewijzigd op 27/11/2018 21:53:11 door Marc O
 
- Ariën  -
Beheerder

- Ariën -

27/11/2018 21:55:45
Quote Anchor link
Zelf raad ik aan om HTML buiten PHP te houden.
Ook dan zou je die escape() functie prima kunnen gebruiken.

Maar welke karakterencoding gebruik je? Als je rechtsklikt en de pagina-info bekijkt, dan kan je dit zien.
Als dit UTF-8 is, dan moet je ook consistent UTF-8 toepassen in je website. Van je bestands-encoding, tot je HTML-metatag, eventueel nog de headers, en zelfs je database. Tenzij je vreemde tekens wilt zien bij exotische karakters.
 
Marc O

Marc O

27/11/2018 22:04:56
Quote Anchor link
- Ariën - op 27/11/2018 21:55:45:
Zelf raad ik aan om HTML buiten PHP te houden.
Ook dan zou je die escape() functie prima kunnen gebruiken.

Dat ga ik proberen maar kan ik wel om de 'echo' heen?

Quote:
Maar welke karakterencoding gebruik je? Als je rechtsklikt en de pagina-info bekijkt, dan kan je dit zien.
Als dit UTF-8 is, dan moet je ook consistent UTF-8 toepassen in je website. Van je bestands-encoding, tot je HTML-metatag, eventueel nog de headers, en zelfs je database. Tenzij je vreemde tekens wilt zien bij exotische karakters.


Ja, ik gebruik UTF-8 in zowel de metatag als de database.
Gewijzigd op 27/11/2018 22:05:29 door Marc O
 
- Ariën  -
Beheerder

- Ariën -

27/11/2018 22:21:27
Quote Anchor link
Een echo moet altijd, maar beperk het alleen tot je echt MOET echo'en in PHP, zoals defines, variabelen of functies.

Of je gebruikt de shorthand:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?=$text;?>
Gewijzigd op 27/11/2018 22:21:57 door - Ariën -
 



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.