26. november 2001 - 10:57Der er
5 kommentarer og 1 løsning
Data-validering/konvertering?
Hej rødder.
Jeg har en sql-streng som ser sådan ud:
$sql = \"update test set felt = \'(\")(\')\' where id = 734\";
Fejlen er at der er et \' for meget i strengen, MEN det skal med over i databasen. Jeg ved at jeg kan bare sætte \'\' men det er jeg ikke herre over. Jeg får bare sql-strengen overført på denne måde til min funktion.
Hvis strengen altid har den form så kan du vel tælle ind fra højre indtil du møder nr 2 \' derefter tjekker om der står et \' til venstre for det, hvis der ikke gør det så indsætter du et \'.
Sikkert ikke den smarteste måde at gøre det på, men okay nu er jeg heller ikke specielt hardcore programmør :-)
Afhængig af hvilket sprog du skriver i findes dersikkert forskellige funktioner til hvordan du kan gå ind og tjekke en bestemt tegnkombination. Den ovenfor angivne tankegang er baseret på min minimale viden omkring VB :-)
a) Lav en SQL-fortolker, så du dermed kan \"ramme\" de rigtige anførselstegn b) Få konverteret anførselstegnene inden sql-sætningen bliver lavet og dermed inden din funktion for den overført.
Vi kan jo hurtigt udelukke a) som rent tidsspilde, derfor er der kun b) tilbage. Der er ikke andet at gøre.
alvion>Punkt b har jeg allerede tænkt på, men faren er der stadig. I min php.ini er \"magic_quotes_gpc\" allerede sat til on og det skulle klare det meste, MEN.....
Jeg har allerede lavet en funktion som konverterer dette til de rigtige tegn, men desværre glemmer mine brugere af mit db-api nogle gange disse funktioner og så kan jo lige så godt prøve at fange det.
Hmmm. Man kan nok ikke bare lige gøre det. æv æv æv æv æv!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.