Visualizzazione risultati 1 fino 5 di 5

Discussione: [php] Controllare caratteri stringa

  1. #1
    Guest

    Predefinito [php] Controllare caratteri stringa

    Ciao a tutti

    Ho un probema con una funzione che dovrebbe controllare se una stringa contiene o meno caratteri speciali (è,à,ù,%,£, ecc..) e, nel caso li trovasse mi reindirizzi alla index.php

    Ecco la mia funzione che, però, sostituisce i caratteri speciali e restituisce l'user "pulito".
    Ma.. Se non volessi sostituirli ma semplicemente controllare la loro presenza?

    Codice PHP:
    function controlla_user(&$user)
    {


    $find = array(' ','&','\r\n','\n','/','\\','+');
    $user = str_replace ($find, '-', $user); // sostituisce con un - tutti i
    // caratteri contenuti nell'array
    // $find.

    $find = array(' ','�','�','�','�');
    $user = str_replace ($find, 'e', $user);


    $find = array(' ','�','�','�','�');
    $user = str_replace ($find, 'o', $user);


    $find = array(' ','�','�','�','�');
    $user = str_replace ($find, 'a', $user);


    $find = array(' ','�','�','�','�');
    $user = str_replace ($find, 'i', $user);


    $find = array(' ','�','�','�','�');
    $user = str_replace ($find, 'u', $user);


    $find = array('/[^a-z0-9\-<>\.]/','/[\-]+/','/<[^>]*>/');
    $repl = array('','-','');
    $user = preg_replace ($find, $repl, $user);


    return
    $user;
    }

    grazie in anticipo :)
    Ultima modifica di dandelion : 26-03-2009 alle ore 19.58.49

  2. #2
    Guest

    Predefinito

    Puoi fare una cosa di questo tipo
    Codice PHP:
    <?php

    $user
    = "ciao&no";

    if(
    controlla_user($user))
    echo
    "Caratteri non validi";
    else echo
    "OK";

    function
    controlla_user(&$user) {
    $find = array(' ','&','\r\n','\n','/','\\','+'); //qui metti tutti gli altri caratteri che vuoi
    for($i=0;$i<strlen($user);$i++)
    if(
    in_array($user[$i],$find))
    return
    true;

    return
    false;
    }

    ?>

  3. #3
    Guest

    Predefinito

    ho eliminato il mio precedente messaggio perchè provando il codice funzionava. Ma se aggiungo alla $find nuovi caratteri non va.

    Se scrivo
    $find = array(' ','&','\r\n','\n','/','\\','+','è');

    e $user='ciaourrè';

    non da "errore".

    Perchè? :-(

    grazie

  4. #4
    Guest

    Predefinito

    Ne sei sicuro? A me non da quel problema. Ho provato lo stesso codice di prima, con l'aggiunta del carattere 'è' nell'array.

  5. #5
    Guest

    Predefinito

    si... boooh :S

    grazie cmq :-)
    gentilissimo

    EDIT: ho risolto con il controllo inverso. Ho elenacato i caratteri leciti e controllo che siano presenti solo quelli.
    Ultima modifica di dandelion : 27-03-2009 alle ore 23.03.36

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •