problema con la funzione preg_match postato il 04/07/2015 21:12:32 nel forum programmazione, gdrcd e open source
Salve a tutti.
Come da titolo ho un problema con la funzione preg_match() di php.
Nella pagina di registrazione di un sito che sto creando voglio impedire agli utenti di iscriversi usando caratteri accentati, spazi e caratteri speciali. Voglio cioè consentire agli utenti di avere esclusivamente account con caratteri alfanumerici.
Una volta inserito il nome dell'account nell'input text sottostante
Pagine → 1
04/07/2015 21:17:12 e modificato da dyrr il 04/07/2015 21:20:17
preg_match($criterio , $testo , $matches);
questa è la sintassi della funzione, devi fare il controllo sull'array $matches non sulla funzione.
Fonte http://php.net/manual/it/function.preg-match.php http://php.net/manual/it/function.preg-match.php
Nel senso puoi farlo anche sulla funzione direttamente ma di solito è meglio verificare l'array per capire se la regex funziona
Dopo controllo la regex perchè sono sempre stato negato nel controllarle al volo
04/07/2015 21:25:01
Al posto di $criterio devo sostituire "/[a-zA-Z0-9]+/si"
Al posto di $testo devo sostituire il testo in cui effettuare il controllo, ossia $_POST['nome'], poiché deve fare il controllo sul nome inserito dall'utente
Ma al posto di $matches cosa devo sostituire? Onestamente non l'ho capito.
04/07/2015 21:38:37 e modificato da dyrr il 04/07/2015 21:41:27
$matches, resta quello, ti serve per verificare cosa rileva preg_match con un print_r($matches) dopo la regex.
Comunque è sbagliata quella regex secondo me perchè da esito positivo sia che tu analizzi per esempio:
Davide che Davidè
mentre a te serve che il secondo caso non sia valido.
Potresti provare ad usare questa:
#([^a-zA-Z0-9]+?)#si
contando che rispetto a quella è invertita ovvero ti rileva come positive tutte le parole dove c'è almeno una lettera accentata
Il test della seconda regex è qui:
https://regex101.com/r/sO2uQ2/1 https://regex101.com/r/sO2uQ2/1
Quello della prima qui
https://regex101.com/r/eQ8lE5/1 https://regex101.com/r/eQ8lE5/1
04/07/2015 21:45:08 e modificato da astro991 il 04/07/2015 21:46:53
Ho capito, grazie mille per l'aiuto. Seguendo il tuo suggerimento sono riuscito nel mio intento utilizzando questo:
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum
Brightest Star: Dopo tutto questo tempo… la riapertura!