Visualizzazione risultati 1 fino 17 di 17

Discussione: [js... o php?] controllare se c'è uno spazio

  1. #1
    Guest

    Exclamation [js... o php?] controllare se c'è uno spazio

    ho fatto un form x la registrazione, e per motivi di ordine e sicurezza preferirei che il nickname sia senza spazi... tipo:

    sommo (si)
    sommo death (no)
    sommo_death (si)

    mi servirebbe un codice che faccia uscire una finestra tipo "alert" prima di inviare i dati se c'è uno spazio nel nick...
    ho postato qui perchè mi sembrava di averlo già visto in javascript, ma se si può fare in php è meglio...

    grazie
    Ultima modifica di LigaSpagnola : 03-02-2006 alle ore 18.49.01

  2. #2
    Guest

    Predefinito

    Potresti usare php:
    Codice PHP:
    <?
    str_replace
    (" ","_",$oggetto);
    ?>
    dove $oggetto è il campo da controllare.
    Immagino e sono sicuro che esistano soluzioni migliori, ma questa è la prima che mi viene in mente...

    Ciao!

  3. #3
    Ospite Guest

    Predefinito

    puoi mettere
    if (!eregi("[A-Z0-9._-"], $nickname){

    echo"brutta cosa!";
    }

  4. #4
    Guest

    Predefinito

    Citazione Originalmente inviato da farlimas
    puoi mettere
    if (!eregi("[A-Z0-9._-"], $nickname){

    echo"brutta cosa!";
    }
    il . sarebbe da backslashare xke altrimenti da solo significa tutti i caretteri compresi gli spazi quindi è da fare cosi:
    Codice PHP:
    if( !eregi("[A-Z0-9\.-_]", $nickname) )
    {
    echo
    "brutta cosa!";
    }

  5. #5
    Ospite Guest

    Predefinito

    mmmmmm sei sicuro? non penso che devi fare così dentro le [ ], credo non serva la /
    Ultima modifica di twisterdark : 04-02-2006 alle ore 13.27.17

  6. #6
    Guest

    Predefinito

    gli ho provati tutti... non fungono..

  7. #7
    Ospite Guest

    Predefinito

    guarda in effetti avevo provato anch'io sia come diceva lui che come dicevo io.. a parte che c'erano le virgollette messe male... e tutti e 2 non tolgono gli spazi :(

    cmq secondo me ti conviene fare con replace..a dire il vero a parte che sono un po' scoppiata io di solito in quel campo accetto solo i caratteri alfanumerici...o fai così oppure fai replace..
    questo che tiene solo i caratteri alfanumerici funziona sicuramente, poi magari lo puoi cambiare quando trovi qualcosa anche per gli spazi...

    if(!eregi("([a-z0-9])",$nome)

  8. #8
    Guest

    Predefinito

    Codice PHP:
    if(eregi('[^a-z0-9.-_]+', $nickname)) {
    echo
    "brutta cosa!";
    }

  9. #9
    Guest

    Predefinito

    Perche' non ci scrivi qualcosa tipo 'niente spazi'?

    :-)

    L.

  10. #10
    Guest

    Predefinito

    Citazione Originalmente inviato da Lucio
    Perche' non ci scrivi qualcosa tipo 'niente spazi'?
    :-)
    Einstein disse:
    "Solo due cose sono infinite, l'universo e la stupidità umana. Ma sulla prima ho qualche dubbio..."

    intendo??
    a parte gli scherzi... se l'utente scrive uno spazio nel nick non mi crea la tabella nel database..

  11. #11
    Guest

    Predefinito

    Citazione Originalmente inviato da LigaSpagnola
    se l'utente scrive uno spazio nel nick non mi crea la tabella nel database..
    allora è meglio se togli anche il punto dalla regex...

  12. #12
    Guest

    Predefinito

    Alla fine della fiera il codice funzionante è questo:
    Codice PHP:
    <?
    if(eregi('[^a-z0-9]',$nome)) {
    echo
    "Il nickname può essere formato solo da lettere o numeri!!!";
    }
    da notare il simbolo ^, senza non funge..
    @inverno: a cosa serve il + dopo la parentesi quadra chiusa? ho provato a toglierlo e funge comunque..

    GRAZIE a TUTTI

  13. #13
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    Citazione Originalmente inviato da LigaSpagnola
    ho fatto un form x la registrazione, e per motivi di ordine e sicurezza preferirei che il nickname sia senza spazi... tipo:
    [omissis]
    ho postato qui perchè mi sembrava di averlo già visto in javascript, ma se si può fare in php è meglio...

    grazie
    Sono solo gli spazi che ti preoccupano? Puoi fare così (sul meccanismo del submit ho però qualche dubbio...)
    Codice HTML:
    <SCRIPT LANGUAGE="JavaScript">
    function check_spaces (string)
    {
       if (string.indexOf (' ') >= 0)
       {
          alert ("Errore: uno dei campi contiene uno spazio!");
          return false; // questo in teoria dovrebbe bloccare l'invio del modulo...
       }
       else
          return true;
    }
    </SCRIPT>
    ...
    <FORM NAME="myForm" ACTION="..." onSubmit="check_spaces(document.myForm.dangerText.value)">
    ...
    <INPUT TYPE="text" NAME="dangerText">
    ...
    </FORM>
    Stammi bene...

    P.S. Non ho notato la conclusione...
    Ultima modifica di dementialsite : 04-02-2006 alle ore 11.46.01
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  14. #14
    Guest

    Predefinito

    Citazione Originalmente inviato da LigaSpagnola
    @inverno: a cosa serve il + dopo la parentesi quadra chiusa? ho provato a toglierlo e funge comunque..
    premetto che eregi non lo uso quasi mai (è troppo lento il più delle volte è meglio preg_match) ed ha una sintassi per le regex leggermente differente dalle funzioni preg_ (perl compatibili)
    Cmq indica "1 o +", nel tuo caso non serve, in quanto il riconoscimento può tranquillamente fermarmarsi al primo carattere non valido... non sò neanche io perchè l'ho messo, forse un lapsus

  15. #15
    Guest

    Predefinito

    Citazione Originalmente inviato da dementialsite
    Sono solo gli spazi che ti preoccupano? Puoi fare così (sul meccanismo del submit ho però qualche dubbio...)
    Codice HTML:
    <SCRIPT LANGUAGE="JavaScript">
    function check_spaces (string)
    {
       if (string.indexOf (' ') >= 0)
       {
          alert ("Errore: uno dei campi contiene uno spazio!");
          return false; // questo in teoria dovrebbe bloccare l'invio del modulo...
       }
       else
          return true;
    }
    </SCRIPT>
    ...
    <FORM NAME="myForm" ACTION="..." onSubmit="check_spaces(document.myForm.dangerText.value)">
    ...
    <INPUT TYPE="text" NAME="dangerText">
    ...
    </FORM>
    Stammi bene...

    P.S. Non ho notato la conclusione...
    puoi modificare il codice cosi:
    Codice HTML:
    <SCRIPT LANGUAGE="JavaScript">
    function check_spaces (string)
    {
       if (string.indexOf (' ') >= 0)
       {
          alert ("Errore: uno dei campi contiene uno spazio!");
          return false; // questo in teoria dovrebbe bloccare l'invio del modulo...
       }
       else
          document.myForm.submit();
    }
    </SCRIPT>
    ...
    <FORM NAME="myForm" ACTION="...">
    ...
    <INPUT TYPE="text" NAME="dangerText">
    <input type="button" name="submit" onclick="check_spaces(document.myform.dangerText.value)">
    ...
    </FORM>
    Ultima modifica di jostock : 04-02-2006 alle ore 15.39.10

  16. #16
    L'avatar di dementialsite
    dementialsite non è connesso Super Moderatore
    Data registrazione
    19-10-2004
    Residenza
    fuori Padova
    Messaggi
    5,046

    Predefinito

    [4 jostock] Ecco, così vai sul sicuro... devi però mettere anche il .value nel gestore di evento onClick, altrimenti farà il controllo sull'oggetto dangerText (causando molto probabilmente errore, visto che indexOf() è un metodo di stringa...) e non sul testo in esso contenuto...

    Statemi bene...
    Le questioni tecniche hanno risposte migliori nel forum pubblico, non trovi?

    When you don't know your next step... improvise

    ALTERVISTA WANTS YOU!
    Vuoi diventare moderatore su AlterVista? Scopri come...

  17. #17
    Ospite Guest

    Predefinito

    Citazione Originalmente inviato da LigaSpagnola
    Alla fine della fiera il codice funzionante è questo:
    Codice PHP:
    <?
    if(eregi('[^a-z0-9]',$nome)) {
    echo
    "Il nickname può essere formato solo da lettere o numeri!!!";
    }
    da notare il simbolo ^, senza non funge..
    @inverno: a cosa serve il + dopo la parentesi quadra chiusa? ho provato a toglierlo e funge comunque..

    GRAZIE a TUTTI
    non funge senza ^ perché significa "tutto quello che non è " a-z0-9 , quibdi se mettevi
    if(!eregi('[a-z0-9]',$nome))

    era la stessa cosa, cioè se..non trova questo ...è come dire se trova tutto quello che non è questo.

Regole di scrittura

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