Ciao,
ho un problema sulla sintassi delle espressioni regolari.
ho letto una sfilza di testi che trattano questo argomento, ma non ho ancora capito bene come funzionano.
ho una classe registrazione.php, ovviamente serve per inviare verso un db i dati di un'utente per la registrazione.
dovrei svolgere dei controlli sui campi è leggendo qua e la ho capito che devo usare le espressioni regolari.
ho creato quindi un'altra classe controlli.php dove ho inserito le n funzioni che mi restituiranno vero o false in registrazione.php
non essendo una cima in php ma dovendoci lavorare vi chiedo aiuto
Questo è il frammento di registrazone.php che richiama le funzioni
Mentre questa è la classe controlli.phpcodice:<?php include ("utility\controlli.php"); $prova = new controlli(); echo '<form action="registrazione.php" method="post"> <table id="registra" name="registra"> <thead> <tr> <td> Registrati </td> </tr> <thead> '; $name = $_POST['nome'] = isset($_POST['nome']) ? $_POST['nome'] : ''; $user = $_POST['user'] = isset($_POST['user']) ? $_POST['user'] : ''; $mail = $_POST['mail'] = isset($_POST['mail']) ? $_POST['mail'] : ''; $pass = $_POST['password'] = isset($_POST['password']) ? $_POST['password'] : ''; $repass = $_POST['repassword'] = isset($_POST['repassword']) ? $_POST['repassword'] : ''; echo '<tr> <td>NOME :</td> <td><input name="nome" id="nome" type="text" value=""/></td>'; $verifica = $prova->cartteri($name); if ($verifica == true){ echo "<td>passato</td>"; }else{ echo "<td>errore</td>"; } echo '</tr>';
però non cicla un bel nulla , si inchioda quando entra nell'if segnato in rosso.codice:class controlli { function cartteri($str){ //ho contato i caratteri della stringa passata $conta = strlen($str); //se ce qualcosa ... if ($conta != ""){ //... divido la stringa in singoli caratteri che metto in un array $taglio = str_split($str, 1); //ciclo per tutta la lunghezza della stringa for($i = 0 ; $i < $conta ; $i++){ /*se nell'indice non ci sono lettere ritorna false se presenti le lettere e non numeri restituisce true*/ if (ereg("\^[^a-zA-Z]\$", $taglio[$i])){ return false; }else{ return true; } } }else{ return false; } }
suppongo che sia il pattern sbagliato , ma leggendo i vari manuali non sono riuscito a farlo funzionare , qualcuno mi può gentilmente dare una mano a capire come funziona?
grazie ancora ciao


Rispondi quotando