Avatar billede lone_a_p Praktikant
05. januar 2007 - 00:44 Der er 3 kommentarer og
1 løsning

Klargøring af data til database

Kære eksperter,

Hvordan gør jeg data fra en input-box klar til databasen?

$str = "Fra input-felt - men her kan jo være alle mulige skøre tegn som '&%¤#")(=<br>osv osv"

$str = trim($str);
$str = htmlentities($str);
$str = addslashes($str);
(og sikkert mange andre ting man kan gøre?!)

Det skal jo være, så man kan lave en simpel søgning igen.

Og så skal det være sådan at en sql-streng ikke kan lave rav i databasen ... altså sådan noget med at afslutte en statement og påbegynde en delete =:-O

Er vist kommet til at gøre det på alle mulige mærkelige måder, det er ikke så godt :(

Så nu søger jeg én løsning - den bedste ;)

Altså: Hvordan forbehandler I strings lige inden I putter dem i databasen?

Måske behøver jeg også en løsning til, hvordan jeg trækker det ud igen så? (Eller måske giver det sig selv)

Mvh Lone

PS: Jeg bruger mySql, hvis det har nogen betydning
Avatar billede michaeltryl Seniormester
05. januar 2007 - 00:53 #1
jeg fik engang af vide at man skulle vente med at gøre noget ved dataen før amn henter det ud igen.

derfor kør det igennm følgende først og gem det
$str = mysql_real_escape_string($_REQUEST["str"]);

fordelen er så at du nemt kan lave en simpel søgning i databasen
når du så skal udskrive det på siden kan du køre det igennem dem du har nænvt der

derudover kender jeg
$str = nl2br("$str");
denne gør at lineskift også bliver udskret og teksten ikke kommer i en lang linie
Avatar billede dmdisco Nybegynder
05. januar 2007 - 10:09 #2
jeg bruger denne funktion hver gang jeg indsætter userinput i databasen
function var2DB($value) {
    if(get_magic_quotes_gpc()) {
        // fjerner slashes hvis magic_quotes_gpc er on
        $value = stripslashes($value);
    }
    // returnere escaped variabel
    return mysql_real_escape_string($value);
}
men den escaper kun speciel tegn hvis du vil "rense" koden skal du selv fjerne tegn med en replace
Avatar billede lone_a_p Praktikant
17. februar 2007 - 00:51 #3
dmdisco> vil du ik give et svar, det var et godt tip (har glemt at lukke spm, så det gør jeg nu)

tak :)
Avatar billede dmdisco Nybegynder
17. februar 2007 - 10:35 #4
svar
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

Seneste spørgsmål Seneste aktivitet
I dag 10:21 Ny printer, men hvilken Af mort1 i Printere
I går 19:41 USB på Linux Af Uvanga i Linux
12/0818:26 Hvilken type mus Af mort1 i PC
11/0813:21 ms Forms Af leahcim i Andet software
10/0821:30 Blokeret på Snapchat? Af LineP i Chat & Messaging