Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

php gastenboek en speciale tekens

Anoniem
InZane
5 antwoorden
  • Hallo mensen,

    Ik heb al een hele tijd een php gastenboekje op mijn site. Sinds kort kom ik tot de ontdekking via reacties van bezoekers, dat hun bericht niet geplaatst wordt. Na enig zoekwerk kom ik tot de ontdekking dat wanneer ik bijvoorbeeld een ' in de naam of het bericht zelf opneem, het inderdaad niet gepost wordt. Het doet zich voor sinds ik een andere (niet gratis meer) webhost heb. Waaraan ligt dit? Database instelling? Php? En belangrijker nog…hoe kan ik het verhelpen?

    Alvast bedankt.

    Jos
  • Kijk eens goed naar je escaping. Waarschijnlijk worden de tags nu niet meer automatisch geescaped (voorzien van een / zodat ze netjes in de database kunnen worden gestopt) waardoor de query afgebroken wordt.

    Kortom, het probleem bevind zijn wss in de PHP code en een Mysql_real_escape zal wonderen doen. Los dit probleem wel snel op overgens, je zult nu gevoelig zijn voor SQL injection
  • Dit ligt eigenlijk aan je php. Probeer eens of hij het wel doet als je ' i.p.v. ' neerzet…

    Zo ja, moet iets als onderstaand voor de naam en het bericht.

    [code:1:88ecee4d2f]
    $newusername = addslashes($username);
    $newbericht = addslashes($bericht);
    [/code:1:88ecee4d2f]

    Ik hoop dat je het snapt, ik ben niet goed in uitleggen. :cry:
  • Zal ik je dan maar even helpen :lol: :

    Veel databases zetten niet zondermeer een ' of " in de database, omdat deze twee tekens ook onderdeel kunnen zijn van een php opdrachtk of omdat de VALUES dan alweer worden afgesloten. (denk aan echo("blablabla";).

    Het werkt echter wel wanneer je voor deze speciale tekens een slash plaatst, dus bijvoorbeeld zo: ' \". Nu kun je zelf een parsertje schrijven met: $text=str_replace("'","'",$text);, maar omdat dit probleem natuurlijk vaak voorkomt is er in php standaard een functie aanwezig die dit voor je doet: addslashes met als argument de variabele van je text). Ik hoop dat het een beetje duidelijk is!
  • Bedankt allen. Het probleem is verholpen, inderdaad met addslashes. Weer wat geleerd.

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.