22. februar 2010 - 15:50Der er
8 kommentarer og 1 løsning
Endnu et dato valideringsspørgsmål
Jeg har arvet et system, hvor nogle datofelter tilpasses for at blive smidt i en MySQL database. Jeg har så opdaget, at den ikke er særligt glad for tomme felter, samt datoer der ikke eksistere f.eks. 32-02-2010.
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Jeg kan prøve, har ændret koden, så den på det problemfyldte felt ikke kalder funktionen. I stedet for tjekker jeg via javascript om datoen er gyldig, men jeg ville da gerne have denne til at virke, så jeg ikke kan have flere funktioner for at udføre det samme tjek.
Først koden.
function fixDates($date) { if (ereg("([0-9]{1,2})([\.\-]{1})([0-9]{1,2})([\.\-]{1})([0-9]{1,4})", $date, $regs)) {
fixDates() får så en dato parameter fra to felter. I begge tilfælde har de dette format: dd-mm-åååå
Men kun i det første tilfælde bliver året returneret fra ereg() som 4-cifret, f.eks. 2010. I det andet tilfælde returner den kun 2 cifre, samtidig med at det er dagen og ikke årstallet.
Eks.: Jeg indsætter echo $regs[5]; som det første der sker i if-sætningen. Felt r2 indeholder 18-02-2010 -> ereg() returnerer 2010 Felt r4 indeholder 18-02-2010 -> ereg() returnerer 18
Så er det jeg undrer mig, hvorfor den kan finde ud af det første gang, men ikke anden gang. Skal parameteren nulstilles?
Ja, et eller andet går der da galt, og det gør det jo heller ikke nemmere at kodestumpen er noget jeg har arvet, og desværre ikke kan spørge udvikleren om ideen bagved.
Med det kan godt være jeg skal give fortabt, nu har jeg trods alt løst det via javascript i stedet for.
Må hellere lukke, selvom jeg aldrig reelt fandt fejlen. :-(
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.