Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[PHP + MySQL] probleem met speciale tekens

Pagina: 1
Acties:

  • imp4ct
  • Registratie: November 2003
  • Laatst online: 29-10 10:59
Hmm, 'k zit een beetje met de handen in het haar. Heb al overal gezocht op het internet, maar 'k vind maar geen oplossing.

Het probleem is op zich "bekend" en ik heb er in andere situaties al een oplossing op gevonden, maar in deze situatie de standaard oplossing gewoon niet werken.

Via een formulier laat ik op mijn website de gebruiker een foto album aanmaken, natuurlijk moet het album een naam hebben en daar loopt het mis. Als je voor deze naam speciale tekens gaat gebruiken zoals bv. ééàààëëêê, je kent ze wel... dan komen die als rare tekens in m'n database terrecht.

Nu wat doe ik alvorens alles weg te schrijven naar de database is, de naam filteren. Eerst kijk ik of er in de naam geen HTML staat geschreven, dan kijken of er ergens quotes staan en als laatste ga'k kijken of er geen speciale tekens staan en deze worden dan omgezet naar de ASCII code vb. #&123; Eens dat dit script doorlopen is, wordt alles naar de DB gestuurd.

Maar dit werkt dus niet. Nu heb ik ook al geprobeerd om enkel de POST var even te zuiveren met 'htmlspecialchars' .. in m'n form heb accept-charset="utf-8" erbij geplaatst, ik ben in de phpInfo gaan kijken welke karaktersets er worden geaccepteerd en daar staat utf-8, in de DB zelf heb ik de collation aangepast etc...

Het vreemde is, als ik in de DB zelf ga en dan daar speciale tekens ingeef, dan maakt MySQL daar geen problemen van.

MySQL versie is : 4.1.11

'k Hoop dat iemand mij kan helpen, alvast bedankt!

Bedrijf : Webtrix

Foto materiaal:
Nikon D7100 | Nikor AF-S DX 18-105mm | Nikor AF-S 50mm | Nikon SB600


  • GlowMouse
  • Registratie: November 2002
  • Niet online
Ga eerst eens goed nadenken hoe je het in je DB wilt hebben. Als UTF-8? Ga dan niet meer speciale karakters vervangen door #&123;, en let erop dat standaard stringfuncties in PHP5 en UTF-8 niet goed samengaan.
Eenmaal als UTF-8 in de database hoef je het alleen maar als UTF-8 naar de client te sturen (let op HTML-injection in samenhang met eerdergenoemde standaard stringfuncties) door de juiste headers mee te sturen, en het kan niet fout gaan.

  • ReseTTim
  • Registratie: Juni 2000
  • Laatst online: 08-11 23:07

ReseTTim

Chocolate addicted

db tabel omzetten naar latin_swedisch + iso huppeldepup in je php code zetten aan het begin waar nu utf-8 staat.. dat wil fix your problem ;)

[ Voor 3% gewijzigd door ReseTTim op 07-07-2008 13:49 ]

Mijn profiel - Te koop: Overzicht van spullen..


  • DiSiLLUSiON
  • Registratie: September 2000
  • Laatst online: 02-10 09:07
Hoe bedoel je 'als ik in de DB zelf ga'? Heb je het dan over de console, of phpmyadmin?

Als het dat laatste is, dan zou ik even in de code van phpmyadmin kijken, 10 tegen 1 dat je daar iets ziet wat er in die code wél gebeurt, wat er in jouw code niét gebeurt (bijvoorbeeld het gebruik van unicode aware functies?), waardoor het probleem zo opgelost is.

[ Voor 0% gewijzigd door DiSiLLUSiON op 07-07-2008 13:50 . Reden: Oh, het is al niet meer nodig; ik type te langzaam :+ ]


  • Matthijs1982
  • Registratie: Augustus 2005
  • Laatst online: 02-06-2021
Kan je eens een .htaccess bestand uploaden met daarin:
AddDefaultCharset off

Dit moet het probleem oplossen.