Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Informazione sulla creazione di una pagina di Registrazione

    Salve! sto creando una pagina per permettere agli utenti di registrarsi presso il mio sito internet. Per sicurezza sto cercando di forzare le persone a inserire i dati come li voglio io... un esempio è la data che deve avere la seguente forma: gg/mm/aaaa
    Per fare ciò creo un form nella pagina di registrazione dove l'utente scrive la data e poi questa viene elaborata nel file login.php del server che vede se la forma della data coincide con lo standard che voglio attraverso la funzione preg_match, altrimenti redirezione l'utente di nuovo nella pagina di registrazione dove comparirà l'errore che la data inserita non è corretta.

    Questi sono i passi del codice per la data :
    codice:
    <?php
    if ($_POST['Data']!=0 AND !preg_match('/[0-9]{2}\/[0-9]{2}\/[0-9]{4}, $_POST['Data']){
    echo("Il campo data non è corretto");
    ?>
    <form name="datiUtenti"action="paginaRisposta.php">
    Data:<input name="Data" type="text" value=""> 
    
    .
    .
    .
    Quindi prima scrivo la data, la invio al server e il server controlla che sia corretta... se è corretta mi accetta la registrazione (ovviamente questa procedura la faccio per tutti i dati con condizioni diverse) altrimenti mi rimanda alla pagina di registrazione dove il codice grazie alla variabile di post $_POST['Data'] mi riesce a confrontare nuovamente la stringa data con la condizione del preg_match per scrivermi cosa ho sbagliato a compilare durante la registrazione.
    Ora domanda: esiste un metodo + veloce? magari qualcosa che posso fare solo dal lato client per verificare ciò che do in input attraverso il preg_match senza dover ricorrere al post e alla comunicazione col server? Grazie mille!

  2. #2
    A prescindere da tutto, ti comunico che sono alquanto novellino, per cui cerco di aiutarti come posso, ma tu prendi ciò che ti dico con le pinze... ad ogni modo...

    Cioè, intendi dire che ti visualizzi l'errore sempre nella stessa pagina, quindi prima che la pagina comunichi col server?
    Prova a mettere tutte le condizioni nella pagina (dopo l'input) con un valore booleano (del tipo: se il form rispetta le condizioni 'true', altrimenti 'false') e alla fine, prima di inviare tutto, fa un controllo di tutte le condizioni... così, se c'è una condizione 'false' restituisci l'errore riferito a quell'input, se sono tutte 'true' invii...

    Spero di esserti stato d'aiuto, ma ripeto, prendi quello ke dico con le pinze, perché di esperienza non ne ho moltissima..

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    lol dalle... è stupendo come ogni tuo post inizi sempre con la stessa identica frase :P

    per quanto sappi che gradisco decisamente che uno che stia imparando avvisi gli altri di non prendere quello che dice come oro colato...

    ad ogni modo venendo al problema di Vittorio, la cosa che ti conviene fare è far fare i controlli una sola volta.

    se il controllo su un campo non passa popola un array chiave/valore dove la chiave è il nome del campo che ha cannato la validazione e il valore è il messaggio di errore, poi quando rimandi indietro alla pagina del form utilizza i dati di questo array per popolare gli errori nella pagina in maniera tale che l'utente li veda.

    in questo modo eviti di fare due volte la stessa validazione lato server in maniera del tutto gratuita.
    sometimes it's just like teaching pigs how to fly

  4. #4
    Vi ringrazio tantissimo per le risposte! farò come dite e creerò un array

  5. #5
    lol dalle... è stupendo come ogni tuo post inizi sempre con la stessa identica frase :P
    ahahahahaha non è mica reato... io dico solo la verità perché preferisco metterlo in chiaro piuttosto che far credere che quello che io dico sia PER FORZA CORRETTO...

  6. #6
    Vorrei sfruttare sempre questo post per chiedere un'altra cosa se è possibile...
    sto creando la funzione che mi controlla il formato della email durante la registrazione al sito web. ho usato questa espressione regolare nella funzione preg_metch e funziona a dovere se non per la fine... cioè alla fine, ovvero nell'estensione del dominio (.it, .com ecc...) questa espressione regolare da la possibilità di inserire tutti i caratteri speciali che uno vuole e che io non vorrei far inserire... sapete aiutarmi? grazie mille!

    codice:
    preg_match('/^[a-zA-Z0-9][a-zA-Z0-9\.\_]{1,100}@[a-zA-Z0-9]{1,100}\.[a-zA-Z0-9\.]{0,20}/', $email);
    Spiegandola brevemente questa funzione regolare dovrebbe all'inizio porre l'obbligo di usare uno tra i caratteri a-z, A-Z o 0-9 poi do anche la possibilità di usare il . e il trattino basso (anche se vorrei, se fosse possibile, impedire anche che sia il . che il _ basso possano essere inseriti immediatamente prima della @). Subito dopo la @ do la possibilità di scrivere con i caratteri a-z, A-Z e 0-9 e infine dopo il punto dovrei dare la possibilità di usare solo i caratteri che vanno da a-z, A-Z, 0-9 e il . ma se digito il ? o qualsiasi altro carattere speciale la funzione mi restituisce true lo stesso... come mai? Grazie

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    qui si sta cercando di reinventare totalmente la ruota :P
    tolto il fatto che cercando su google trovi milioni di copie di quell'espressione regolare, php fornisce in automatico il controllo della mail

    http://php.net/manual/en/function.filter-var.php
    sometimes it's just like teaching pigs how to fly

  8. #8
    Fantastico!!!! grazie infinite!

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.