Avatar billede rotco Juniormester
03. juli 2009 - 15:51 Der er 4 kommentarer og
1 løsning

Undgå \ ved post af ' & "

Heysa..

Jeg har lavet et nyhedssystem, men hver evig eneste gang jeg poster en nyhed og jeg har tegnene " & ' med i nyheden så kommer der tegnet \ foran...

Det er skide iriterrende! Jeg har prøvet at replace \ med ingenting, men det kan man jo åbbenlyst ikke pga. at \ i PHP gør at " ikke kan læses - jeg skal virkelig bruge hjælp :-/
Avatar billede elkoger Nybegynder
03. juli 2009 - 15:58 #1
så skal du replace inden du indsætter til DB, evt replace " med "
Avatar billede rotco Juniormester
03. juli 2009 - 16:01 #2
Okay..

Men jeg tror du har misforstået...

Hvis jeg skriver det her:

------------------------------
Hej hva' så, hvad har i gang i.. Idag sker der ikke så "meget" haha. Fedt at se jer allesammen.

Hilsen "mig"
------------------------------

Kommer det ud sådan her:

------------------------------
Hej hva\' så, hvad har i gang i.. Idag sker der ikke så \"meget\" haha. Fedt at se jer allesammen.

Hilsen \"mig\"
------------------------------


Det er jo en kæmpe belastning !
Avatar billede hmanback Nybegynder
03. juli 2009 - 17:23 #3
Bruger du mysql_escape_string() når du indsætter data i db?

Ved output fra db prøv stripslashes()
Avatar billede andreas13_fam Nybegynder
03. juli 2009 - 18:04 #4
Vil mene at det lyder som om du har magic quotes aktiveret.
Dette indsætter automatisk en \ på ' & " ved bla. $_POST og $_GET data.

Afhængig af hvor erfaren du er kan du overveje at deaktivere magic quotes læs eventuelt her:
http://www.php.net/manual/en/security.magicquotes.disabling.php
Gør du dette skal du dog være opmærksom på at SQL-angreb er blevet letter for hacker. Med mindre du bruger PDO eller MySQLi (med i) til at indsætte data.
Men du kunne eventuelt prøve som en test at indsætte dette før du tager kontakt til databasen.
PS: Jeg har ikke lige adgang til nogen server nu, så det er ikke testet.
<?php
function UnEcapeArray ($array)
{
    foreach ($array as $key => $value) {
        $array[$key] = stripslashes($value);
    }
}
if (get_magic_quotes_gpc()) {
    $str = "\'";
    echo '"magic quotes" er aktiveret det laver automatisk en '.$str.' eller \"<br>';
    UnEcapeArray($_GET);
    UnEcapeArray($_POST);
    UnEcapeArray($_COOKIE);
    UnEcapeArray($_REQUEST);
}
Avatar billede webweaver Praktikant
03. juli 2009 - 19:14 #5
Jeg vil foreslå du benytter stripslashes i din database ihvertfald. Så kan du slå det fra når du vil vise teksten på sitet.

$tekst = addslashes($tekst); - tilføjer /
$tekst = stripslashes($tekst); - fjerner / igen
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