Quotes i PHP

Tags:    php

<< < 12 > >>
Hej

Jeg har et problem. Jeg har en blog, og et php document til at putte nye ting på bloggen.

Det er en form, med titel og tekst. Man skriver sin titel og tekst og submitter. Hvis alt så er fint viser den et preview. Der kan man også klikke ok og så skulle den blive i en tabel i mysql.

Problemet ligger umiddelbart som jeg kan se ved den allerførste ' den møder og det forstyrrer resten af indholdet så det ikke passer længere.

Jeg bruger nl2br for at lave nye linier.

Men ved ikke hvad jeg skal gøre ved apostrofferne??? Har prøve htmlentities, htmlspecialchars, strip- og addslashes??

Det skal lige siges at det første der sker med er:

Fold kodeboks ind/udKode 


Nogen der har en løsning?



12 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Tjek : http://dk2.php.net/manual/en/function.htmlentities.php

Så scroller du ned til den tabel der hedder "Available quote_style constants" hvor der står at 2 parameter har flere forskellige muligheder, og den du ønsker er "ENT_QUOTES", så din kode skal se sådan her ud:
Fold kodeboks ind/udKode 


Bang, nu virker det bare, både med " og ' ;D



Indlæg senest redigeret d. 10.03.2009 22:53 af Bruger #10647
Du havde også lavet en lille fejl i din str_replace();

Den skal se sådan ud:
Fold kodeboks ind/udKode 


Det er meget vigtigt du skriver &apos; og ikke bare ' i den anden parameter af str_replace();

- Martin Bille Broberg

EDIT: Rettede lige en fejl i code..



Indlæg senest redigeret d. 11.03.2009 16:57 af Bruger #13203
Tror vi er nød til at se resten af koden hvis vi skal hjælpe dig... :)



Det kan evt. gøres sårn her:
Fold kodeboks ind/udKode 




Indlæg senest redigeret d. 10.03.2009 22:44 af Bruger #13203
Beklager, ingen af jeres løsninger virker. Havde prøvet med ENT_QUOTES og de andre. Ved ikke helt hvad der er der forårsager det?

Som nævnt hvis man skriver sin tekst og klikker kommer man videre til preview. Disse data bliver sendt gennem:

Fold kodeboks ind/udKode 


Når det så bliver modtaget bliver dette gjort ved det:

Fold kodeboks ind/udKode 


Det der er kommenteret ud er de løsninger i har givet. Ingen af dem giver nogen ændringer overhovedet!.

Teksten bliver så vist i et preview:

Fold kodeboks ind/udKode 


Og hvis alt er fint er der en knap "bekræft" som sender denne information til det samme dokument igen og kører en mysql_query.



Her er nogle ting der måske kan hjælpe:

Fold kodeboks ind/udKode 


Når jeg kigger på kildekoden ( i mozilla) for mit preview står det ovenstående tekst i rødt. Teksten fortsætter herefter i normal farve. Det pudsige er at alt tekst der kommer under det ovenstående bliver gentaget nedenunder min "bekræft" knap. Så jeg får næsten hele teksten previewet to gange.

Yderligere slutter teksten (den 'dobbelte' tekst) med:

Fold kodeboks ind/udKode 


Kan det med <br /> (i den første kodeboks) have noget med det at gøre?



Indlæg senest redigeret d. 11.03.2009 16:16 af Bruger #14645
Du havde også lavet en lille fejl i din str_replace();

Den skal se sådan ud:
Fold kodeboks ind/udKode 


Det er meget vigtigt du skriver &apos; og ikke bare ' i den anden parameter af str_replace();

- Martin Bille Broberg

EDIT: Rettede lige en fejl i code..


Mystisk, skrev og det korrekte i min form jeg uploadede, måske har udvikleren fortolket?. Prøvede lige igen for en sikkerhedsskyld igen og samme resultat som med htmlentites = nemlig ingen ændring overhovedet.



Prøv med http://dk2.php.net/manual/en/function.htmlspecialchars.php

Syntaxen er nogenlunde den samme, og hvis jeg skal være ærlig kan jeg heller ikke se nogen forskel selv :D



prøv at køre stringen igennem: mysql_real_escape_string()



Beklager, men ingen af disse to løsninger virker..



<< < 12 > >>
t