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.042
149
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.042
149
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
M Sintassi "personalizzata" per mysql workbench? MySQL 0
D Troviamo gratuitamente influencer per collaborazioni Annunci servizi di Social Media Marketing 0
MarcoGrazia Categorie per settore merceologico di Google SEO e Posizionamento 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
matteoraggi Local seo per un B&B di Forli SEO e Posizionamento 3
D Ical: Sto realizzando un gestionale per i miei appartamenti di casa vacanza PHP 0
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
P Aiuto per rendere un Bot Telegram Privato PHP 1
V Query per una somma PHP 2
A Tabella con bottoni per aggiornamento record PHP 6
G Consigli SEO per scrittura e struttura pagine SEO e Posizionamento 6
P Passare solo alcuni parametri a script per CSV PHP 0
A Consiglio per creazione sito web CMS (Content Management System) 0
A Regex per isolare link interni con rel noopener PHP 0
L form immagini per il database PHP 0
S CREAZIONE DI SITO PER CORSI DI FORMAZIONE WordPress 2
I [cerchiamo][retribuito] Grafico/a per stickers Offerte e Richieste di Lavoro e/o Collaborazione 0
R Cercarsi programmatore per GDR PBC Offerte e Richieste di Lavoro e/o Collaborazione 0
L Sessione e array per utenti PHP 0
A Sottoquery con group by per mese MySQL 0
G Appicazione HTML per inserimento dai in Database Access Microsoft HTML e CSS 0
V [Cerco] Socio e Sviluppatore per App PlacesFinder Offerte e Richieste di Lavoro e/o Collaborazione 0
M user agent per il download di api PHP 0
B Stringa sql per ricerca su più campi Database 1
Cosina Upload multiplo con invio allegati per email PHP 0

Discussioni simili