Buongiorno e buon pomeriggio a tutti,
sto realizzando un if che effettui il controllo dei caratteri inseriti in un <input type="text" /> attraverso la funzione preg_match() .
Sto notando però che alcuni caratteri, pur essendo presenti nella regEx, non vengono presi in considerazione. E quindi, in caso di TRUE , l'if non restituisce il messaggio di errore.
Vi illustro il codice:
Codice PHP:<?php
$str = $_POST['string'];
if (preg_match('/[|-<>]+/', $str)) {
/* Come potete vedere, ho inserito pochi caratteri speciali. Mi sono fermato ai caratteri "<"
* e ">" perchè sono questi a non essere bloccati dalla regEx. I caratteri "|" e "-" invece, se
* presenti 1 o più volte, vengono riconosciuti e lo script riporta correttamente il messaggio
* di errore. */
echo "Errore";
} else {
# ..resto delle operazioni.
}
Non capisco perchè.
Nello specifico vorrei evitare l'inserimento dei seguenti caratteri: - / \ _ [ ] < > { } = ^ + * % & $ # @
Grazie a tutti.

Rispondi quotando
