letters met accenten worden vreemde tekens

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

G P

G P

15/06/2021 10:19:49
Quote Anchor link
Om spam te voorkomen gebruik ik in een mailform oa deze code

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
} elseif(!preg_match("/^[A-Za-z0-9-_.+%]/", $_POST['bericht'])){
    echo ' Geen vreemde tekens in je bericht aub.<br><br>';
    echo '<a href="javascript:history.back(1);">Terug</a><br><br>';


Vreemd genoeg worden letters met een accent (zoals é è à) en accenten ook tegengehouden. Maar wat blijkt: deze letters met een accent worden omgezet in à (hoofdletter A en een tilde).

Hoe kan ik er voor zorgen dat de letters met een accent wel toegelaten worden, maar de à niet?
 
PHP hulp

PHP hulp

25/09/2021 11:10:22
 
- Ariën -
Beheerder

- Ariën -

15/06/2021 10:25:10
Quote Anchor link
Dit klinkt als het bekende UTF-8 probleem, omdat je mogelijk niet overal UTF-8 ondersteunt waar dat wel zou moeten.

Dus controleer je bestands-encoding, je meta-tags, en geef dit bij sterke voorkeur mee via header().

Verder is in mijn ogen ReCaptcha V3 beter tegen spam. Met het blokkeren van letters met tildes blokkeer je ook Spaanse namen.
Gewijzigd op 15/06/2021 10:41:36 door - Ariën -
 
G P

G P

15/06/2021 10:42:09
Quote Anchor link
Merci voor de snelle reactie. Ik ga het bekijken hoe ik UTF-8 kan optimaliseren.

Wat tot nu toe het beste geholpen heeft in mijn geval: mijn 'captcha'-systeem is een vooringevuld veld dat gebruikers moeten leegmaken. Bots hebben immers de gewoonte alles vol te spammen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<tr>
        <td width="214" height="30" ><div align="right"><font face="Helvetica, Arial, sans-serif" size="2" color="#c94d7f">Anti-spam *</font></div></td>
        <td width="14" height="30" ></td>
       <td height="30" colspan="3" valign="middle"><input name="antispam" type="text" value="dit veld leegmaken" size="51" />          </td>
        </tr>
      <tr>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
} elseif(!empty($_POST['antispam'])) {
    echo ' Gelieve het anti-spamveld leeg maken laten aub. <br><br>';
    echo '<a href="javascript:history.back(1);">Terug</a><br><br>';    


Toevoeging op 15/06/2021 10:45:18:

O ja, trouwens: dit is mijn header, en daar lijkt op het eerste zicht niets mis mee.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Gewijzigd op 15/06/2021 10:47:05 door G P
 
- Ariën -
Beheerder

- Ariën -

15/06/2021 10:49:28
Quote Anchor link
Een betere oplossing is om een vraag te stellen die enkel jouw gebruikers weten. Zoals het afmaken van de slogan die bovenaan jouw site staat.

Als je meer drempelvrij wilt werken, dan is ReCaptcha V3 een mooie oplossing. Tevens biedt deze ook een CSRF-beveiliging die verhinderd dat buitenstaanders vanaf een andere server jouw script aanroepen.

Over jouw probleem: Kijk eens wat de paginainstellingen van jouw browser laten zien qua encoding?
Gewijzigd op 15/06/2021 10:51:12 door - Ariën -
 
Jan R

Jan R

15/06/2021 12:07:00
Quote Anchor link
off-topic
Heb je je eigen zin gelezen? "Gelieve het anti-spamveld leeg maken laten aub."
 
G P

G P

15/06/2021 12:09:08
Quote Anchor link
Wat is er mis met die zin?
Gewijzigd op 15/06/2021 12:11:13 door G P
 
- Ariën -
Beheerder

- Ariën -

15/06/2021 12:09:45
Quote Anchor link
Leeg maken laten?

Leeg laten?
of
Leeg maken?
of
Leeg laten maken?
Gewijzigd op 15/06/2021 12:10:22 door - Ariën -
 
G P

G P

15/06/2021 12:10:56
Quote Anchor link
Oeps ;-) Merci
 
Ivo P

Ivo P

15/06/2021 13:55:23
Quote Anchor link
in de openingspost van dit topic (om maar even een voorbeeld te pakken) gebruik je onder andere:

* een dubbele punt :
* een haakje openen (
* een haakje sluiten )
* een vraagteken ?
* en zelfs spaties

Die vang je allemaal niet in je toegestaan-lijstje :-)
 
G P

G P

15/06/2021 14:06:41
Quote Anchor link
Geen idee. Ik heb dit ook maar geplukt van ergens anders want ben zelf geen php-expert. Hoe zou jij het doen?
 
- Ariën -
Beheerder

- Ariën -

15/06/2021 14:12:53
Quote Anchor link
Ik zou liever een array met bepaalde blacklist-woorden (UTF-8) maken, dan je op bepaalde tekens filtert. Er zijn ook namen met bijvoorbeeld een ã of een Ñ. Die wil je niet filteren...

Al is ReCaptcha V3 ook erg goed. Ik ben benieuwd waarom je niet daar naar kijkt?
Gewijzigd op 15/06/2021 14:14:15 door - Ariën -
 
Ivo P

Ivo P

15/06/2021 14:15:42
Quote Anchor link
ik zou niet filteren met tekens die toegestaan zijn.

Hooguit zou ik filteren op wat ik per se niet in de tekst wil hebben.
Bijvoorbeeld html-tags en dan met name <script>

Dat filter je er (stilzwijgend) uit met strip_tags().

als je te streng bent, kan het heel eenvoudig zijn dat valide invoer ineens afgekeurd wordt.
In jouw bericht leidt een komma al tot "geen vreemde tekens", maar wat voor jou kennelijk vreemd is, is voor een ander gewoon.

Je ziet dit ook vaak op bestel- aanmeldformulieren.
Iemand bedenkt dan dan een straatnaam toch wel minimaal uit 3 letters bestaat. (er is een dorp met de straten A en B)
of een straatnaam bevat geen cijfers. (18 septemberplein)
Of een naam bestaat uit 3 letters minimaal (helaas voor Jo)
of mag geen - bevatten (helaas Willem-Alexander).

Kortom: maak het niet te strikt en draai het om: wat mag er écht niet in.

En als het om spam gaat: ReCaptcha is al genoemd.
 
Ad Fundum

Ad Fundum

16/06/2021 17:41:28
Quote Anchor link
Quote:
Vreemd genoeg worden letters met een accent (zoals é è à) en accenten ook tegengehouden. Maar wat blijkt: deze letters met een accent worden omgezet in à (hoofdletter A en een tilde).

Dan heb je je encoding niet op orde. Fix het en laat weten of dat is gelukt.

Quote:
Ik zou liever een array met bepaalde blacklist-woorden (UTF-8) maken, dan je op bepaalde tekens filtert. Er zijn ook namen met bijvoorbeeld een ã of een Ñ. Die wil je niet filteren...

Goed idee, maar vergeet dan niet dat Unicode karakters sterk op op elkaar kunnen lijken, en dat je die karakters eerst moet normaliseren voordat je de input string met een woordenboek vergelijkt.
Gewijzigd op 16/06/2021 17:42:08 door Ad Fundum
 
G P

G P

16/06/2021 17:47:08
Quote Anchor link
Ik heb bovenaan in elke CSS de volgende code geplaatst:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
@charset "UTF-8";


In de gewone pagina's heb ik dit bovenaan geplaatst
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<!doctype html>
<html>
<head>
<meta charset="UTF-8">


Terwijl het vlak daarvoor dit wasd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />


Helaas komen de formulieren nu niet meer aan...
 
- Ariën -
Beheerder

- Ariën -

16/06/2021 17:50:23
Quote Anchor link
Wat gebeurt er nu precies dan? Want zo'n grote wijziging is dit ook weer niet dat een site meteen kan breken.
Wat zegt je browser over je webpagina-instellingen? Herkent die je site als UTF-8?
 
Gerard Katwijk

Gerard Katwijk

24/06/2021 01:16:28
Quote Anchor link
G P op 15/06/2021 14:06:41:
Geen idee. Ik heb dit ook maar geplukt van ergens anders want ben zelf geen php-expert. Hoe zou jij het doen?

Van "plukken" wordt je meestal niet veel wijzer. Behalve wanneer je je vervolgens verdiept in het ge"pluk"te. ;) Ik doe dat meestal door gewoon wat kleine dingetjes te verwijderen of te veranderen. Dan krijg je meestal wel een idee van de betekenis van dingen.
 
Ad Fundum

Ad Fundum

24/06/2021 08:16:51
Quote Anchor link
Beter is om gewoon een goede handleiding of tutorial te lezen...
https://www.phphulp.nl/php/tutorial/php-algemeen/unicode-enzo/831/
 
Gerard Katwijk

Gerard Katwijk

24/06/2021 12:45:35
Quote Anchor link
Ad Fundum op 24/06/2021 08:16:51:
Beter is om gewoon een goede handleiding of tutorial te lezen...

Mee eens, maar wat is de praktijk? Goede handleidingen (die je aan de hand nemen) zijn uitzonderingen, dus dat motiveert niet om "handleidingen" te raadplegen.
Ter zijde: 'tutorial' is een Engels begrip voor "handleiding", maar ook "instructie" is een alternatief daarvoor.

Ook bij dit onderdeel van het zich als "Nederlands" kwalificerend forum, vielen mij de vele onnodig niet-Nederlandstalige woorden/begrippen op. Ook dat is een flinke belemmering om "handleidingen" te raadplegen.
Gewijzigd op 24/06/2021 12:54:32 door Gerard Katwijk
 
Jan R

Jan R

24/06/2021 14:05:34
Quote Anchor link
Gerard Katwijk op 24/06/2021 12:45:35:
Ook bij dit onderdeel van het zich als "Nederlands" kwalificerend forum, vielen mij de vele onnodig niet-Nederlandstalige woorden/begrippen op. Ook dat is een flinke belemmering om "handleidingen" te raadplegen.


Heel juist. Bijna overal wordt onze mooie taal "verkracht" het Nederlands wordt steeds meer een mengelmoes van meerdere talen
Überhaupt Duits
Svp Frans (enkel Nederlanders, niet de Vlamingen)
Admin Engels
Enz
 
Willem vp

Willem vp

24/06/2021 18:58:38
Quote Anchor link
Ivo P op 15/06/2021 13:55:23:
in de openingspost van dit topic (om maar even een voorbeeld te pakken) gebruik je onder andere:
[...]
Die vang je allemaal niet in je toegestaan-lijstje :-)

Nee hoor, de preg_match kijkt namelijk alleen maar naar het eerste teken van de input. Je mag alles in je bericht opnemen, zolang je bericht maar met een een letter of cijfer begint.
 
Gerard Katwijk

Gerard Katwijk

24/06/2021 19:41:15
Quote Anchor link
Jan R op 24/06/2021 14:05:34:
Gerard Katwijk op 24/06/2021 12:45:35:
Ook bij dit onderdeel van het zich als "Nederlands" kwalificerend forum, vielen mij de vele onnodig niet-Nederlandstalige woorden/begrippen op. Ook dat is een flinke belemmering om "handleidingen" te raadplegen.

Heel juist. Bijna overal wordt onze mooie taal "verkracht" het Nederlands wordt steeds meer een mengelmoes van meerdere talen
Überhaupt Duits
Svp Frans (enkel Nederlanders, niet de Vlamingen)
Admin Engels
Enz

Hoewel ik op dit punt, in het digitale wereldje, vaak aangevallen wordt door Anglofielen, ben ik geen puritein. Ook ik (wie niet?) gebruik niet-Nederlandse begrippen en soms ontkom je er moeilijk aan. Maar niet uit luiheid of gebrek aan kennis van de Nederlandse taal. Zeker waar teksten (ook) voor niet-ingewijden bedoeld zijn, is gebrekkig Nederlands, naar mijn smaak, uit den boze. In de loop der tijd heb ik, in een "spreadsheet", ;) een heel lijstje samengesteld van Engelstalige begrippen en hun Nederlandstalige vervanger met zelfs alternatieven. :)
 

Pagina: 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.