Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885

    errore su espressioni regolari

    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
    codice:
    <?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>';
    Mentre questa è la classe controlli.php
    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;
        }
         }
    però non cicla un bel nulla , si inchioda quando entra nell'if segnato in rosso.
    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

  2. #2
    Un po' troppa roba per una cosa semplice

    Codice PHP:


    class controlli {

        function 
    alfabetico($str){ //true se strettamenta alfabetico e non nullo
           
    return eregi('^[a-z ]+$'trim($str));
         }


        function 
    numerico($str){ //true se strettamenta numerico e non nullo
           
    return eregi('^[0-9]+$'trim($str));
         }


    Fidatevi del dottor Auz!
    http://dottorauz.blogspot.com

  3. #3
    Utente di HTML.it L'avatar di tapu
    Registrato dal
    May 2008
    Messaggi
    885
    scusa la domanda "banale" , ma non dovrei ciclare la stringa per la verifica?

    in java ho sempre "smontato" la stringa in char e successivamente verificare ogni carattere!

    poi mi potresti chiarire una cosa...

    tu hai inserito: '^[a-z]+$'
    questo pezzo ^[a-z] dovrebbe significare: la stringa deve iniziare con una lettera compresa tra A e Z.
    poi con il $ diciamo che l parola deve finire con una lettera sempre compresa tra A e Z , ma perchè il +?

    grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.