Pagina 1 di 5 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 48

Discussione: form php e html

  1. #1

    form php e html

    Ciao ragazzi, ho un problemino nel gestire php, essendo un principiante su tale argomento.
    Ho creato un form, contenuto in documento html, specificando come action un file .php, il quale si occupa di verificare la correttezza della compilazione del form stesso in tutte le sue parti. In caso di errori di compilazione da parte degli utenti vorrei inviare un messaggio di notifica spiegando l'errore, e ho pensato di sfruttare il comando echo seguito da una string. Il problema è che quando viene effettuato il submit dei dati, la risposta viene visualizzata su un'altra pagina, ma io vorrei visualizzarla in un campo di tipo text con specifica readonly, posto subito sotto al form, nel documento html. Qualcuno potrebbe gentilmente aiutarmi??

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    devi gestire il form e la sua visualizzazione in un unico script, oppure da quello di controllo in caso di errore richiami l'altro che visualizza i dati passando come parametri le informazioni da mostrare come "avviso", magari con delle variabili di sessione: lo script che mostra il form controlla queste variabili e nei punti che vuoi mostra i contenuti dei messaggi se presenti (altrimenti, come nel caso della prima chiamata, non succede nulla e basta)

  3. #3
    anzitutto grazie per la risposta. però non so come richiamare l'altro file, ovvero l'html..potresti darmi due dritte sul codice oltre che sulla parte logica per favore?

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    P.es. (SOLO COME GUIDA):

    form.php:
    Codice PHP:
    <?php
    session_start
    ();
    $warning = ((isset($_SESSION['warning']))?($_SESSION['warning']):(array()));
    ?>
    ...
    <form action="submit.php" method="post">
    <div class="field01">
      <div class="warning"><?php if (isset($warning['field01'])) print $warning['field01']; ?></div>
      <input type="text" name="field01" />
    </div>
    </form>
    ...
    <?php
      
    unset($_SESSION['warning']);
    ?>

    submit.php:
    Codice PHP:
    <?php 
    session_start
    ();

    // controlli che vuoi... $controllo è il flag finale, p.es.
    // $_POST['field01'] contiene il valore immesso;
    if ($controllo) {
      
    $_SESSION['warning']['field01'] = 'Errore nel controllo del campo field01';
      
    header('location: form.php');exit;
    };

    header('location: tuttook.php');exit;
    ?>
    - form.php mostra il form e richama submit.php
    - submit.php fa i controlli e se c'è un problema memorizza i messaggi e richiama di nuovo form.php
    - all'inizio di form.php vengono prelevati i messaggi (se ce ne sono: al primo richiamo non ci sarà nulla, p.es.) e mostrati dove si vuole.
    - in submit.php se non ci sono errori si va a un'altra pagina

  5. #5
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Solitamente non mi piace dare questo genere di esempi ma non in questo caso non voglio complicarti troppo la vita. Il tuo file dovrebbe apparire pressapoco così:
    Codice PHP:
    <?php
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        
    // your code
        // if error
        
    $error 'This is an error message';
    }
    ?>
    <form id="myform" method="post">
        <input type="text" id="myfield" name="myfield" />
        <input type="text" id="myerror" name="myerror" readonly="true" value="<?php echo $error?>"/>
        <input type="submit" id="check" name="check" value="check" />
    </form>

  6. #6
    @_debo: ma se scrivo quella stringa nel campo value, visualizza esattamente quella stringa..non la interpreta come codice php..giustamente

    @eiyen: la tua soluzione sembra avvicinarsi molto alla mia idea, però io ho il form in un file .html..non in un .php..le cose cambiano o rimangono così? ripeto che di php so veramente pochissimo..e comunque l'idea sarebbe tenere separato l'html contenente il form, dal php che elabora i dati immessi..tutto in due file ben distinti

  7. #7
    il form contenuto nel documento html è una roba del tipo:

    <form id="registrazione" action="registrazione.php" method="post">
    Nome: </br><input type="text" name="nome"></br>
    Cognome: </br><input type="text" name="cognome"></br>
    Nickname: </br><input type="text" name="nickname"></br>
    Mail: </br><input type="text" name="mail"></br>
    Password: </br><input type="password" name="pass"></br>
    Ripeti Password: </br><input type="password" name="pass2"></br>
    <input type="submit" name="submit" value="Continua" />
    <input type="reset" value="Reset" /></br>
    <input readonly="true" type="text" name="dialogo" class="dialogo" value="Tutti i campi sono OBBLIGATORI"></br>
    </form>


    e il file registrazione.php, dopo i vari controlli, contiene:

    echo ("Complimenti registrazione effettuata con successo.");

    } else {

    echo ("Le password non corrispondono");

    }

    } else {

    echo ("Indirizzo mail gi&agrave; utilizzato.");

    }

    } else {

    echo ("La tua mail non &egrave; idonea, per la registrazione.");

    }

    } else {

    echo ("Tutti i campi sono obbligatori.");

    }




    nell'input readonly chiamato "dialogo" vorrei far comparire l'echo corrispondente all'errore che si verifica

  8. #8
    Utente di HTML.it L'avatar di _debo
    Registrato dal
    Mar 2012
    residenza
    London, UK
    Messaggi
    858
    Originariamente inviato da rastafermo
    @_debo: ma se scrivo quella stringa nel campo value, visualizza esattamente quella stringa..non la interpreta come codice php..giustamente
    E non è quello che vuoi?

  9. #9
    mi sono espresso male..se scrivo value="e qui dentro metto la stringa php che mi hai consigliato di mettere", questa stringa non viene interpretata come php, ma come testo puro..il risultato è che nella pagina html leggo del codice, in quanto non viene eseguito, ma letto come testo semplice

  10. #10
    preciso che la pagina in cui è contenuto il form è html, non php..e quindi non lo interpreta

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.