Archief - PHP: slashes escapen in <input> velden

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

horse_99

Legacy Member
Hallo allemaal,

Ik ben bezig met een klein administratie paneeltje. Momenteel zit ik aan een nieuwssysteem bezig. Er is een pagina waar alle nieuws artikels worden getoond, dus geselecteerd uit de database. Hierbij worden linken gegenereerd met de volgende structuur.

pagina.php?actie=toevoegen
pagina.php?actie=bewerken&id=1
pagina.php?actie=verwijderen&id=1

Dit zijn voorbeeld linken van een record. Op pagina.php wordt dan een formulier gegeneerd. Als men dan op de knop drukt worden de gegevens verzonden én gevalideerd, als er ongeldige gegevens tussen zitten, wordt het formulier opnieuw getoond. De waarden die de gebruiker had ingevuld, komt dan wéér terecht in de <input> velden. Probleem is: ik zit nogal in de knoop met die addslashes en stripslashes . Op een website heb ik al gelezen dat wanneer je de gewone echo() functie gebruikt, je stripslashes() moet toevoegen, maar wat moet je bij <input> velden doen om de gegevens met quotes er in te krijgen zonder de slashes?

Bedankt voor alle reacties!

MVG, Kristof.

Edit: htmlentities heb ik al gebruikt, maar het probleem is dat deze functie men strings langer maakt :x, dus " wordt bvb. een quot;. Aangezien ik mijn input tags maxlengts attributen heb meegegeven, die overeenstemmen met de maximale lengte van de velden in de databases, gaat dit serieus vloeken. Bestaan er nog andere manieren?

orez

Legacy Member
gewoon ook stripslashes?

<input type="text" value="echo stripslashes(string)">

.. :/

dJeez

Legacy Member
Enkel addslashes uitvoeren als get_magic_quotes_gpc() false teruggeeft zal het probleem dat je hebt wellicht al oplossen. Doe je dat niet, dan ga je de slashes verdubbelen, zodat je ze ook te zien zal krijgen in je input velden zelfs als je stripslashes uitvoert. Werken via htmlentities is ook niet slecht, je kan dan een functie maken die de htmlentities terug omzet naar het origineel :
PHP:
function unhtmlentities ($string) {
   $trans_tbl =get_html_translation_table (HTML_ENTITIES );
   $trans_tbl =array_flip ($trans_tbl );
   return strtr ($string ,$trans_tbl );
}
Deze functie roep je dan uiteraard op net voor je de inhoud in je input velden dropt.

BTW Om die functie te optimaliseren kan je trouwens de lookup tabel ($trans_tbl in de functie hierboven) ook eenmalig gaan creëren ipv steeds opnieuw als je de functie aanroept.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan