Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    In caso di errore, ricaricare la pagina

    Ciao a tutti!

    Devo fare una cosa abbastanza di routine nei siti web, ma non so come fare.

    Ho la seguente pagina di iscrizione, molto semplice:

    http://www.hurricanebasketball.it/is...nesquadre2.php

    Vorrei che in caso di errore di inserimento dei dati (esempio mancato inserimento dei dati o inserimento dati errato, come e-mail senza chiocciola) venisse ricaricata la pagina con i dati inseriti dall'utente già scritti e un asterisco rosso di fianco al dato o ai dati inseriti scorrettamente o non inseriti.

    Qualcuno sa aiutarmi gentilmente?

    Grazie infinite!

  2. #2
    è piuttosto semplice: quando l'utente invia il form, e prima di caricare qualsiasi cosa, fai i tuoi controlli (ci sono tutti i campi? sono "puliti" i contenuti? l'e-mail è corretta? ecc), quindi

    se va tutto bene:
    stampi un messaggio che va tutto bene o invii la mail di conferma, ecc ecc

    se c'è qualche errore:
    ricarichi la pagina con il form mettendo un controllo per ogni campo (così vedi quale va bene e quale no) e stampando l'asterisco o notificando le parti mancanti/errate. Oppure ti salvi in una variabile l'esito dei controlli fatti a inizio pagina e la richiami dopo, come credi.
    Per quanto riguarda lo stampare i valori inseriti, basta che stampi quello contenuto nella variabile $_POST per ogni valore del form. Per esempio
    codice:
    <FORM>
    <INPUT name="NomeSquadra" value="<?php echo $_FORM['nomesquadra']; ?>" type="text">
    </FORM>
    L'unica accortezza che devi avere, come sempre quando tratti gli input sconosciuti, è di pulire le variabili che inserisce l'utente.

    p.s.(Ho riletto tutto il messaggio e, pur non essendo molto lineare, il contenuto c'è! se hai bisogno di spiegazioni chiedi pure!)
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  3. #3
    Grazie infinite!

    Il concetto l'ho abbastanza capito! Ora provo a metterlo in pratica!

    Nel caso, non abbandonarmi che di sicuro in giornata mi rifaccio vivo con qualche problema riscontrato lungo il percorso!!!

    Nel frattempo grazie infinite per la disponibilità!!!

  4. #4
    ah ecco cosa devo chiederti!

    Se in un form ho il seguente campo per l'inserimento del nome della squadra:

    <label>Nome Società: <input type="text" name="nome"></label>

    Io di solito quando vado nella pagina successiva uso la variabile $_POST per recuperare il valore del campo e poter fare i controlli.
    Quindi per fare i controlli devo comunque avviare una nuova pagina quando clicco su avanti? Poi questa pagina nel caso mi riapre quella di prima nel caso ci siano errori, giusto?

    Il controlli li scrivo sulla pagina successiva non su quella in cui c'è il campo no?

  5. #5
    Quella è una scelta che devi prendere tu, puoi fare in entrambi i modi. Io personalmente preferisco fare tutto in una stessa pagina: il codice è un po' più incasinato (a livello estetico, se come me non sei proprio ordinato), ma almeno hai tutto in uno stesso posto ed è più facile trovare gli errori. Ma, ribadisco, è una preferenza personale e dipende dalle esigenze.
    Ti faccio vedere come gestisco a livello logico i form come il tuo (per semplicità farò finta che ci sia una sola variabile):
    Codice PHP:
    <?php

    if( è impostato array post )
    {
      
    $moduloinviato TRUE;  // metodo migliorabile, ma per capirci andrà benissimo
       // controlla le variabili
      
    if(   vabene($_POST['nomesquadra']) )  // con vabene() immagino che tu possa controllare se un indirizzo e-mail esiste o se il campo inserito non è vuoto, ecc
      
    {
         
    // salva la variabile dopo averla pulita
      
    }
      else
      {
         
    // salva quale variabile ti ha dato l'errore
         
    $errori[] = "Nome della squadra";
      }

    if(
    sizeof($errori) > 0)
    {
      echo 
    "I seguenti campi sono obbligatori o presentano degli errori:";
      echo 
    "<UL>";
      for(
    scorri array) echo $errori[$i];
      echo 
    "[/list]";
    }
    else
    {
      
    // salva i dati puliti e mostra un messaggio di conferma
      // poi puoi fare morire lo script o usare un header() per rimandarlo ad un'altra pagina, o ristampare il form sotto, come credi...
    }

    }

    ?>
    <FORM method="POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <INPUT name="nomesquadra" <?php
    if($moduloinviato) echo 'value="' puliscivar($POST['nomesquadra']) . '"';
    ?>>
    </FORM>
    Spero di non aver scritto cazzate che sono un attimo di fretta
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  6. #6
    Ho capito, in teoria sta funzionando.
    Sinceramente tutto in una pagina non mi capisco bene!

    Sono ancora alle prima armi!!!
    E' la mia prima esperienza!

  7. #7
    Ho capito, in teoria sta funzionando.
    Sinceramente tutto in una pagina non mi capisco bene!

    Sono ancora alle prima armi!!!
    E' la mia prima esperienza!

  8. #8
    beh puoi dividerlo in due pagine: una con il form e una che pulisce i dati.
    In caso ci sia qualche errore salvi i dati nell'array $_SESSION[], stampi un link tipo "torna indietro e correggi" e quando torni alla pagina del form, nel campo "value", invece di usare l'array $_POST[] usa $_SESSION per richiamare i valori...
    Ricordati poi di pulire l'array una volta che l'utente finisce la procedura (o finita di caricare la pagina del modulo, a seconda di quello che ti serve.
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

  9. #9
    E' esattamente quello che ho fatto, e sembra funzionare perfettamente!
    Grazie! ihih!

    Già che ci sono ne approfitto per chiederti un altro dettaglio.

    Ho altri due form così in altre 2 pagine diverse, uno per l'istruttore e uno per l'aiuto.

    Cliccando su un link compare il primo form (quello dell'istruttore), lo si compila (con gli stessi controlli della squadra più o meno), e si va avanti (passando i dati alla pagina dopo con hidden) e compare il form dell'aiuto.
    Qui sorge il problema: l'aiuto non sempre c'è quindi l'utente dovrebbe poterlo saltare questo form, e pensavo di fare un tasto che "nessun aiuto istruttore" per passare alla pagina dopo.
    Però così facendo non so come passare i dati riguardanti l'istruttore avanti ancora, non potendo usare ancora hidden perchè il form non viene compilato e non si clicca sul tasto submit.

    Qualche consiglio?

  10. #10
    non ho capito bene il tuo problema, forse perchè non ho visto come stai sviluppando il sito.
    Però ti basti sapere due cose:
    1. Le variabili hidden ti conviene usarle il meno possibile e sicuramente NON per dati sensibili (un utente un minimo smaliziato te le cambia al volo)
    2. Se puoi, per passare dati che non devono essere modificati (o per l'inutilità della modifica o, come detto prima, per sicurezza) usa le sessioni. Salva tutto nell'array $_SESSION, lo porti avanti finchè ti serve, e poi lo pulisci quando finalmente salvi i dati.

    Se invece vuoi continuare con le hidden perchè ormai hai iniziato così crea un form in cui le cacci tutte dentro e l'unico controllo possibile è il tasto submit.
    Questa e' la mia firma! Lo so, e' una mezza schifezza.
    Un sito
    - skype non è per consulenze online -

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.