espressione regolare per valore null

frenkytribe

Utente Attivo
17 Gen 2013
87
0
0
Ciao a tutti,
ho una pagina che effettua una query sul db, dove la clausola WHERE la prendo tramite una variabile GET, quindi diventa vulnerabile.
Questa variabile get chiamate $_GET[letter] può contenere solo lettere maiuscolo dalla A alla Z ma può essere anche vuota.

Intanto prima di eseguire la query controllo che la stringa sia <=1 quindi o 0 o 1, e se lo lasciassi così funzionerebbe, però per essere più preciso volevo mettere anche una funzione che controlla quel valore, cioè dalla A alla Z e il valore nullo (o vuoto). Che voi sappiate esiste un modo per farlo utilizzando una funzione del genere?
PHP:
is_char_or_null($chr){
    return ereg("[A-Z]",$chr); 
}
Ovviamente potrei fare un tipo di controllo diverso, tipo
PHP:
if(strlen($lettera)==0 || (strlen($lettera)==1 && is_char($lettera))){
ma mi piacerebbe comunque saperlo.
 
Ultima modifica:

skillsfactory

Utente Attivo
23 Nov 2012
50
0
0
PHP:
function is_char_or_null($chr)
{
    if ( is_null($chr) ) return true;
    
    return preg_match("/[A-Z]/",$chr); 
}
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
ciao
intanto NON usare ereg è deprecata ed è facile che con le ultime versioni ti dia un varning.
prova questo (immagino che quella che tua hai scritto sia una function?)
PHP:
<?php
function is_char_or_null($chr){
    $pattern="/[A-Z]{0,}/";
	/*numeri tra{}=> così minimo 0(vuoto) a infiniti caratteri 
	{3,5} da un minimo di 3 ad un massimo di 8 caratteri
	*/
	return preg_match($pattern,$chr); //return stringa se OK, false se KO
}  
?>
al massimo non funziona
 

frenkytribe

Utente Attivo
17 Gen 2013
87
0
0
Grazie, sì è una funzione, ho fatto come hai scritto, però se provo con i simboli ? , ; . = ecc funziona lo stesso. Deve funzionare solo dalla A alla Z o vuoto
 

skillsfactory

Utente Attivo
23 Nov 2012
50
0
0
provato questo?

PHP:
function is_char_or_null($chr)
{
    if ( empty($chr) ) return true;
    
    return preg_match("/[A-Z]/",$chr); 
}
 

frenkytribe

Utente Attivo
17 Gen 2013
87
0
0
Sisi, il fatto che deve funzionare anche se $lettera è vuoto ci siamo, ma è come se non funzionasse l' A-Z su alcuni caratteri speciali, tipo ? - , ; % e altri
Cioè se scrivo sito?lettera= funziona, sito?lettera=G funziona, sito?lettera=% funziona anche, ma non dovrebbe.
 

skillsfactory

Utente Attivo
23 Nov 2012
50
0
0
hai ragione, infatti i segni di interputazione appartengono all'insieme a-z... fai così allora

PHP:
function is_char_or_null($chr)
 {
 	if ( empty($chr) ) return true;
 
 	return preg_match("/^\pL+$/u",$chr);
 }
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
prova così
PHP:
<?php
function is_char_or_null($chr){
    if ( empty($chr) ) return true;
    return preg_match("/^[A-Z]{1,}$/",$chr); 
}
$stringa=array("AABBKKZZ","aabbKKZZ","","AA..?KKZZ",NULL);
foreach($stringa as $val){
	if(is_char_or_null($val)){
		echo "la stringa $val è giusta o vuota<br />";
	}else{
		echo "la stringa $val è sbagliata<br />";
	}
}
?>
output
a stringa AABBKKZZ è giusta o vuota
la stringa aabbKKZZ è sbagliata
la stringa è giusta o vuota
la stringa AA..?KKZZ è sbagliata
la stringa è giusta o vuota
 
Discussioni simili
Autore Titolo Forum Risposte Data
JackIlPazzo Espressione regolare per effettuare match con URI PHP 1
A Espressione Regolare per verifica stringa PHP 14
A Espressione regolare per verifica password PHP 3
JellyBelly Espressione Regolare per controllo Orario Javascript 2
D Select con espressione regolare PHP 4
C L'espressione regolare non funziona Javascript 0
I espressione regolare Javascript 1
J espressione regolare PHP 2
D Espressione regolare e redirect Apache 0
S Password espressione regolare PHP 3
S Espressione Regolare PHP 7
emanuelevt espressione regolare PHP 9
borgo italia espressione regolare con numeri PHP 2
borgo italia espressione regolare PHP 4
Z Espressione regolare PHP 1
M Espressione regolare con eregi PHP 1
F espressione regolare e IE 6 Javascript 4
G [MS Access] Funzione ARROTONDA non definita nell'espressione MS Access 1
M Valutazione espressione postfissa C/C++ 0
A Creare una classe espressione Java 1
Nik Espressione regolari max e min caratteri Javascript 12
D Scrivere un'espressione condizionale in Access Visual Basic 0
L espressione aritmetica PHP 5
asevenx regolare larghezza e opacità del testo div HTML e CSS 2
V Regolare il volume Flash 1
felino Lubuntu 18.04 Requisiti per applicazione console .net core 7.0 Linux e Software 0
M pulsante per aprire una maschera che contiene controllo schede MS Access 0
E Aiuto per query PHP 8
E Il punto di riferimento italiano per Trailers cavalli Discussioni Varie 0
F CERCO Servizi SEO di Qualità per Agenzie di Servizi SEO e Posizionamento 3
D Miglior modo per estrarre le occorrenze di un elemento in un set di più file xml e quindi scrivere il risultato in una tabella Excel o magari in JSON XML 0
A Cerco programmatore/sviluppatore per creare forum Offerte e Richieste di Lavoro e/o Collaborazione 2
R Plugin di base per WordPress WordPress 0
D [COMPRO/CERCO] GUEST POST o scambio link per sito di Spiritualità ed Esoterismo. Vendere e Acquistare pubblicita' online 0
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
M Analisi sito per pulire codice inutile HTML e CSS 1
Paolo69 Risolto reCAPTCHA v2 per ASP Classic ASP 0
M Hosting VPS per server di gioco Minecraft Hosting 0
N Grazie per il benvenuto Presentati al Forum 0
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
R Filtri e plugin per photoshop Photoshop 0
AkTaRuS DIsabilitare il tasto destro tranne che per code e pre Javascript 1
0 [Retribuito] Cercasi programmatore per GdR PbC Offerte e Richieste di Lavoro e/o Collaborazione 0
A Adempimenti per magazine on line Leggi, Normative e Fisco 0
R Recupero di permalink di un sito che è stato eliminato per errore WordPress 5
I aiuto urgente per thunderbird Posta Elettronica 0
A Web master per semplice sito web Offerte e Richieste di Lavoro e/o Collaborazione 2
M [Cerco][Gratuito] Artista/designer per creazione grafica gioco di società Offerte e Richieste di Lavoro e/o Collaborazione 0
M Un saluto per cominciare Presentati al Forum 1
N MAX() + ADD_DATE - per update su Mysql MySQL 0

Discussioni simili