echo probleempje

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Leidinggevend Full Stack Developer

Hé jij, nieuwe Pinkcuber! Ga aan de slag bij Pinkcube, online leverancier van promotieartikelen! Een innovatieve organisatie waar extra stappen zetten voor klanten de normaalste zaak van de wereld is. Ambitieus zijn we ook. ‘Naoberschap’ staat bij Pinkcube hoog in het vaandel; we helpen elkaar en iedereen is welkom. Pinkcube is Great Place to Work Certified, erkend leerbedrijf, maatschappelijk betrokken partner van stichting Present en partner van CliniClowns. En misschien wel jouw nieuwe werkgever. Wij zoeken namelijk een enthousiaste: Leidinggevend Full Stack Developer (40 uur, medior/senior) Ben jij klaar om baanbrekende ideeën tot leven te brengen en deel uit te

Bekijk vacature »

Remote - Front-end Angular developer

Functie The IT team currently consists of the IT Manager, 2 back-end developers, 1 full-stack developer, 1 designer, and a DevOps engineer. They are currently looking for an experienced Front-end developer who will work autonomously and in a disciplined manner, being the only developer working on their Front-end applications at the start. They do have the ambition to find a second developer soon, who you will then be able to supervise. You will be working on the further development of their existing UI in Angular. But also developing a mobile app. They place great value on User Experience and opt

Bekijk vacature »

Medior Front end developer React

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor op de

Bekijk vacature »

Senior Front end developer Digital Agency

Functie Jij als Front end developer komt te werken in een van de 8 multidisciplinaire teams binnen de organisatie. Deze teams werken op basis van Scrum agile in 2 wekelijkse sprints. De grootte van de teams varieert van 9-14 collega’s en bestaan altijd uit één of meerdere project managers en een project manager. Samen met je team werk je aan verschillende projecten voor uiteenlopende klanten zoals grote multinationals tot het kleine mkb. De stack waarmee gewerkt wordt is voornamelijk Javascript, ES6, Es.next, HTML, CSS, React.js en Node.js. Wat deze organisatie onderscheid is dat ze echt langdurige partnerships aangaan met hun

Bekijk vacature »

Front-end developer E-Commere

Functie E-commerce is een ‘’snelle’’ wereld. Om hierin continu voorop te blijven omarmen ze in een vroeg stadium nieuwe technieken. Een webshop is nooit af en kan altijd beter, sneller en efficiënter. Tegelijkertijd hebben ze vanaf hun oprichting altijd vastgehouden aan kwaliteit boven snelheid, en dit loont. Als front-end developer heb je een adviserende rol en sta je aan het eindpunt van alles wat met designs te maken heeft. Je overlegt met klanten en collega’s, en zet je in om ideeen om te zetten tot unieke concepten. Je bent het aanspreekpunt voor de klant en bewaakt tevens de planning. Eisen

Bekijk vacature »

C#.NET/Unity Developer

Functieomschrijving Voor een gewaardeerde werkgever in de omgeving van Breda zijn wij op zoek naar een software ontwikkelaar. Dit bedrijf houdt zich bezig met de ontwikkeling van WMS Software (C#/Unity & SQL). Past dit bij jou? Lees snel verder! Jouw werkzaamheden zullen er als volgt uitzien: Je werkt aan innovatieve softwareoplossingen voor het verbeteren en/of vernieuwen van processen; Samen met 6 applicatieontwikkelaars hebben jullie de verantwoordelijkheid voor de uitbreiding en ontwikkeling van de webapplicaties; Het uitvoeren van updates/aanpassingen aan de huidig draaiende applicaties; Je bent een luisterend oor naar klanten en vertaalt hun wensen door naar bruikbare software. Bedrijfsprofiel Wie

Bekijk vacature »

Backend Developer PHP Laravel SaaS

Dit ga je doen Het ontwikkelen van nieuwe features die bijdragen aan de groei van de klanten van de organisatie; Je denkt mee over nieuwe innovaties, features en verbeteringen in de applicatiearchitectuur; Je draagt bij aan de continue ontwikkeling van jouw team doordat je elke dag streeft naar het verbeteren van jouw eigen prestaties; Je neemt actief deel aan Scrum meetings en de Backend Guild. Hier ga je werken Voor een snel groeiend bedrijf, in de regio Nieuw Vennep, zijn wij opzoek naar een ervaren Backend Developer. De organisatie is actief in de e-commercebranche en ontzorgt haar klanten middels een

Bekijk vacature »

Front-end Developer - Juniorfunctie

Functie omschrijving Ben jij op zoek naar een uitdagende baan als front-end developer, in een informele werksfeer, waar jij echt het verschil kan maken? Wil jij graag werken voor een bedrijf dat sportiviteit en een open communicatie, hoog in het vaandel heeft staan? Dan hebben wij de perfecte vacature voor je! Voor een klein bedrijf in Rijen dat gespecialiseerd is in het omzetten van digitale woningtekeningen naar managementinformatie, zijn wij per direct op zoek naar een allround front-end developer. Jouw werkzaamheden zien er als volgt uit: Ja gaat nauw samenwerken met de back-end developer. De database structuur is volledig gebouwd

Bekijk vacature »

C#.NET ontwikkelaar

Functieomschrijving Voor een gewaardeerde werkgever in regio Tilburg zijn wij op zoek naar een C#.NET ontwikkelaar. Je bent verantwoordelijk voor het ontwikkelen van dashboards, webapplicaties en apps voor de eigen IOT-oplossingen. Samen met een vooruitstrevend team van ontwikkelaars en engineers krijgen jullie de opdracht om de sensoren in de apparatuur te scannen en vervolgens de data om te zetten in belangrijke inzichten voor de klanten. Taken en verantwoordelijkheden: Heb jij ideeën over nieuwe technieken die jullie kunnen implementeren? Hier wordt echt naar je geluisterd en gekeken of jouw idee daadwerkelijk ingezet kan worden; Je gaat aan de slag met de

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

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 »

Front End Developer React Vue

Dit ga je doen Meewerken aan de implementaties en ontwikkeling van nieuwe functionaliteiten van de webapplicaties; Ontwikkelen met o.a. React en Vue en HTML/CSS, ook krijg je in verband met de samenwerking ook affiniteit met de backend Ruby on Rails; Ontwikkeling aan de front end voor de koppelingen tussen de diverse systemen; Ontwerpen van interfaces en een bijdrage leveren aan de gebruikerservaring; Zorgdragen voor hoge kwaliteit van code en jezelf (en anderen) blijven verbeteren; Als Senior Front End Developer begeleid je zelf ook FE-development projecten, hierin leid je de projecten en pak jij het initiatief op (bv integratieprojecten). Hier ga

Bekijk vacature »

Java Ontwikkelaar

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 »

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 »

Mendix Developer

Voor Troostwijk Groep zoeken wij een: Mendix Developer Wij zoeken Je bent een getalenteerde en ervaren Mendix Developer en het is tijd om je horizon te verbreden. Je wilt minder coderen en meer modelleren, minder bezig zijn met allerlei technische details en randvoorwaarden en meer met functionaliteit. Daarnaast ben je trots op de innovatieve en gebruiksvriendelijke applicaties die je in de loop van de jaren hebt gebouwd. Werk je graag in een enthousiast team, wil je veel vrijheid en kun je tegelijkertijd goed met deadlines omgaan, dan ben jij absoluut degene die wij zoeken! Wat je nodig hebt is ruime

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

28/11/2024 05:37:28
 
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.