Avatar billede winerror Nybegynder
23. august 2004 - 09:09 Der er 9 kommentarer og
1 løsning

mysql indkast problemere med fx " og '

hai min code er


$nyhed = $_POST['nyhed'];

mysql_query("INSERT INTO nyhed_grup (nyhedid, text, align, img) VALUES ('".$_GET['id']."','". $nyhed ."','". $_POST['align'] ."', '".$picupload."');") or die(mysql_error());


og når jeg fx smider noget text ind med " eller ' så får jeg en fejl :( nogen der kan hjælpe mig med denne lile fejl ?
Avatar billede 7th Praktikant
23. august 2004 - 09:19 #1
$nyhed = add_slashes($_POST['nyhed']); // tilføjer et slash \ ved ' og ".

Når du hiver nyhed ud af databasen, så bruger du strip_slashes($row['nyhed']) til at fjerne slash \ ved ' og " :)
Avatar billede erikjacobsen Ekspert
23. august 2004 - 09:22 #2
Man bruger ikke stripslashes når man tager ting ud.
Avatar billede winerror Nybegynder
23. august 2004 - 09:33 #3
takker :) 7th :) dog sku jeg lige selv fjerne _ i begge to ;) men nu virker det :) h hæ (erikjacobsen) hvorfor bruger man ikke det da ? o 7th smid lgie et svar :p
Avatar billede erikjacobsen Ekspert
23. august 2004 - 09:35 #4
Det vil give dig forkert tekst en gang imellem, hvis du også bruger stripslashes.
Avatar billede winerror Nybegynder
23. august 2004 - 09:37 #5
okay.. :( skod nok.... :S tak for hjælpen :)
Avatar billede 7th Praktikant
23. august 2004 - 09:48 #6
Den med stripslashes har jeg aldrig lagt mærke til, men nu ved jeg også det :) Iøvrigt bruger jeg selv en lidt anden teknik end add_slashes. Det skulle jeg nok have skrevet første gang. Jeg konventere specialtegn til øhh, kan ikke huske ordet :) En funktion kunne for eksempel se således ud...

function converter($content)
{
    $characters = array("&" => "&" , "'" => "'" , "\"" => """);

    $content = stripslashes(strtr(trim($content) , $characters));
    $content = addslashes($content);

    return $content;
}

mysql_query("INSERT INTO nyhed_grup (nyhedid, text, align, img) VALUES ('".$_GET['id']."','". converter($nyhed) ."','". $_POST['align'] ."', '".$picupload."');") or die(mysql_error());
Avatar billede erikjacobsen Ekspert
23. august 2004 - 10:01 #7
Hvis dit 'text' felt er et stort felt, som fx. LONGTEXT kan du godt gøre sådan, 7th.
Men pas på hvis det er fx et VARCHAR(255). Når du ændrer eet tegn til en 4-5 stykker,
kommer du måske uforvarende til at gå ud over grænsen på de 255. Og specielt kan
du komme til at skære fx """ over så der kun står "&qu".

Generelt anbefaler jeg dog at man venter med at ændre til HTML-entities til man skriver
det ud på en HTML-side - måske skal man bruge teksten til noget andet, fx et
nyhedsbrev med almindelig tekst.
Avatar billede winerror Nybegynder
23. august 2004 - 10:30 #8
takker 7th :) kan du ikke lige gi en karam også :)
Avatar billede Slettet bruger
23. august 2004 - 13:04 #9
Der står lidt om, hvad der sker med addslashes i http://www.eksperten.dk/artikler/190

Hvis magic_quotes_runtame er slået til, så er det nødvendigt med striptags på det, man henter udfra databasen - ellers er det ikke.
Avatar billede Slettet bruger
23. august 2004 - 13:05 #10
Og den hed runtime, ikke runtame. ;-)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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