Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472

    Controlli dei dati immessi tramite form

    Ecco (in breve) la falsariga Javascript:

    <form name="form" method="post">
    [i vari input]
    <input type="button" value="Invia" onclick="funzione()">
    <<script language="javascript">
    function funzione() {........}

    in "funzione" ci sono i dati i controlli sul nome, sulla password e via dicendo...

    io vorrei fare lo stesso con php però senza mettere <form name="form" method="post" method="myurl.php"> cioè vorrei fare i controlli sulla stessa pagina.

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Per esempio, io vorrei realizzare uno script tipo questo (file prova.php)

    <form name="form" method="post" action="prova.php">
    Nome<input type="text" name="nome">
    <input type="submit" value="Invia">
    <?
    if ($nome=='') {
    echo("Il nome non è espresso in modo corretto!");
    }
    ?>

    L'ho stringato al massimo per semplificare la vita a chi volesse darmi una risposta.

    Il fatto è che se io faccio così mi viene scritto in basso "il nome non è espresso in modo corretto".

    Come fare?

  3. #3

    ........

    Ciao.
    Nel php.ini il valore di register_globals
    deve essere su Off.
    register_globals = Off
    Codice PHP:
    <?php 
    if(isset($_POST['frmInput']))
    {
        if(empty(
    $_POST['frmInput']))
        {
            echo 
    "Il campo frmInput è vuoto";
        }
    }
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="frm">
    <input name="frmInput" type="text" value="">
    <input name="frmSubmit" type="submit" value="Schizza !">
    </form>
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Il fatto non è quello delle register global...non dipende da quello...

    io vorrei che il controllo avvenisse nella STESSA PAGINA.

    Facendolo con Javascript anzichè mettere l'action nel form metto un bottone semplice e lo faccio fungere sa submit attivando la funzione onclick...

    Come faccio a fare questo in PHP?

    Se la tua risposta si riferisce a questo ti chiederei di dirmi se $_SERVER è una variabile che va usata così com'è e cosa significa PHP_SELF ed eventualmente come va sostituito.

    Grazie.

  5. #5
    allora il codice che ha postato whiser serve per verificare la correttezza del modulo, ma cmq il controllo parte sempre DOPO che hai già inviato il modulo.

    invece con il javascript il controllo lo fai "on the fly" e puoi impedire l'invio del modulo se questo non è corretto.

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Ho cercato di semplificare le cose così vi è più facile darmi una risposta visto che sto partendo dalle basi....

    Quello che devo fare io è semplicemente:
    - inserire dei dati attraverso i form
    - verificare la correttezza dei dati
    - inviarli al data base MySql

    Ho provato in diversi modi:

    1) nel file “prova” ho messo il il form, i controlli in javascript che stanno sotto una funzione ma poi come faccio a richiamare il php?

    < form name=”form” method=”post”>
    nome<input type=”text” name=”nome”>

    <input type=”button” value=”invia” onclick=”funzione()”>
    <script language=”javascript”>
    function funzione() {
    nome=document.form.nome.value;
    if (nome==””) {alert (“hai inserito il nome in modo non corretto”);
    document.form.nome.value=””;
    document.form.nome.focus();
    return false;
    }
    //qua avrei bisogno di inserire il la funzione di php che mi immettesse i dati nel db
    }
    </script>

    Avevo pensato al posto del rigo rosso di mettere una variabile tipo az=1
    E poi sotto la chiusura dello script mettere il codice php
    <?
    If ($az == 1) {
    // registra dati
    }
    ma il valore della variabile non passa fra Js e Php.



    2) nel file “prova.php” c’è il form...

    < form name=”form” method=”post” action=”azione.php>
    nome<input type=”text” name=”nome”>

    <input type=”submit” value=”invia”>

    ... e il controllo dei dati viene fatto nella pagina azione.php

    <?
    If ($nome=””) { echo (“Il nome è inserito in modo non corretto”)}
    Else //registrazione
    ?>
    Ho omesso le varie fasi di ritorno alla pagina di inserimento...

    Questa andrebbe bene, però ha l’incoveniente che quando si sbaglia ad inserire i dati mi ritorna la pagina prova.php ma tutta in bianco.
    Ho provato a fare così in prova.php
    <input type=”text” name=”nome” value=”<? echo $nome ?>”>
    però la prima volta mi dà il codice html della scritta di errore dentro il rettangolino del form.



    3) Un unico file in php con action sul file stesso

    <form name=”form” method=”post” action”prova.php”>
    qua avrei il vantaggio di rimanere su questa pagina, però come fare?




    Adesso chiedo qual è il modo migliore?
    Io preferirei il primo perchè preferirei fare i controlli in javascript (anche perché poi dovrò fare un lavoro simile) ma se non è possibile o fosse troppo complicato mi andrebbe bene anche in uno degli altri 2 modi...l’importante è che i dati inseriti dall’utente anche se in parte sbagliati fossero lo stesso visibili!

  7. #7

    ............

    Esempio di base.
    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script language="JavaScript" type="text/JavaScript">
    function validateForm()
    {

        if (document.forms[0].elements[0].value == "")
        {
            alert ("Il campo frmInput è vuoto");
            return false;
        }
        return true;
    }
    </script>
    </head>
    <body>
    <?php 
    if(isset($_POST['frmInput']))
    {
        if(empty(
    $_POST['frmInput']))
        {
            echo 
    "Il campo frmInput è vuoto";
        }
        else
        {
            
    $value $_POST['frmInput'];
            
    //INSERISCI $value nel DB
        
    }
    }
    ?>
    <form onSubmit="return validateForm();" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="frm">
    <input name="frmInput" type="text" value="">
    <input name="frmSubmit" type="submit" value="Schizza !">
    </form>
    </body>
    </html>



    Per le cose che non conosci consulta la guida on line di php
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Ok, allora provo a fare così, però vorrei sapere alcune cose:

    1) per fare i controlli in js devo scrivere document.form[0].elements[0], poi fare elements[1] per il secondo e così via o posso mettere anche direttamente frmInput cioè il nome?
    2) per quanto riguarda il php, vedo che c'è ancora un controllo per il campo frmInput, ma se i campi sono 5 devo ripetere anche qua i controlli?
    3) alla action dell'html devo mantenere uguale ?php echo $_SERVER['PHP_SELF'];?> ??

    Scusami ma come vedi sono agli inizi

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    472
    Ho provato a modificare così lo script per 2 campi, io ho visto che gira come voglio e quindi mi va bene, però ditemi se c'è qualcosa che si può modificare, per esempio quel $sw credo che possa essere tolto in qualche modo...però da quello che ho capito l'ulteriore controllo di php serve per controllare sia dal lato client che dal lato server...

    I controlli principali avverrebbero dunque in Js (per esempio che la email contenga la chiocchiola...) mentre in php mi limiterei solo a constatarne l'"isset" cioè se i campi sono stati "riempiti"... giusto?


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script language="JavaScript" type="text/JavaScript">
    function validateForm()
    {

    if (document.forms[0].elements[0].value == "")
    {
    alert ("Il campo nome è vuoto");
    return false;
    }


    if (document.forms[0].elements[1].value == "")
    {
    alert ("Il campo pw è vuoto");
    return false;
    }
    return true;
    }
    </script>
    </head>
    <body>
    <?php
    $sw = 0;
    if ((isset($_POST['nome'])) && (isset($_POST['pw'])))
    { $sw=1;
    if(empty($_POST['nome']))
    {
    echo "controllo php - il campo nome è vuoto"; $sw=0;
    }
    else
    {
    $nome = $_POST['nome'];
    }


    if(empty($_POST['pw']))
    {
    echo "controllo php - il campo pw è vuoto"; $sw=0;
    }
    else
    {
    $pw = $_POST['pw'];
    }
    }

    if ($sw == 1 )
    {
    //INSERISCI i dati nel DB

    echo ("nome " . $nome . "
    ");
    echo ("pw " . $pw);
    // ho messo la stampa a video giusto per controllo
    }

    ?>
    <form onSubmit="return validateForm();" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="frm">
    <input name="nome" type="text" value="">

    <input name="pw" type="password" value="">

    <input name="frmSubmit" type="submit" value="Schizza !">
    </form>
    </body>
    </html>

  10. #10

    ....

    però da quello che ho capito l'ulteriore controllo di php serve per controllare sia dal lato client che dal lato server...

    I controlli principali avverrebbero dunque in Js (per esempio che la email contenga la chiocchiola...) mentre in php mi limiterei solo a constatarne l'"isset" cioè se i campi sono stati "riempiti"... giusto?
    No i controlli vanno fatti lato server
    nel caso il client avesse i js disabilitati.
    Puoi fare entrambi ma quello indispensabile
    è fatto lato server.

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

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.