• User Newbie

    Easy PHP 3 - Non vengono passati valori tramite POST

    Buona giornata a tutti 😉
    ho un problema molto strano. Ho scritto alcune righe di codice per passare alcuni valori tramite un form.

    
     <form name="vista" method="POST" action="view_record.php">     
    <INPUT TYPE="HIDDEN" NAME="annos" VALUE="<? echo $annos ?>">     
    <INPUT TYPE="HIDDEN" NAME="classe" VALUE="<? echo $classe ?>">     
    <INPUT TYPE="HIDDEN" NAME="nome" VALUE="<? echo $nome ?>">     
    <INPUT TYPE="HIDDEN" NAME="cognome" VALUE="<? echo $cognome ?>">     
    <INPUT TYPE="HIDDEN" NAME="uteid" VALUE="<? echo $uteid ?>">     
    <INPUT TYPE="HIDDEN" NAME="ngiud_agg" VALUE="<? echo $ngiud_agg ?>"> 
    <table border="0" align="center" bgcolor="#ff66FF">           
    <tr>        
    <td>          
    <input name="vista" type="submit" id="invia32" value="guarda record">       
    </td>      
    </tr>    
    </table>        
    </form>    
    ```Il file che dovrebbe ricevere i dati, view_record.php, però non riceve nulla. Per verificarlo ho inserito
    
    

    $classe = $_POST['classe'];
    $annos = $_POST['annos'];
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $uteid = $_POST['uteid'];
    $ngiud_agg = $_POST['ngiud_agg'];

    echo "$classe , $annos , $nome , $cognome<br>";

    Cosa devo cambiare?

  • Consiglio Direttivo

    Ciao fabigno e benvenuto nel Forum GT. 🙂

    Proverei intanto con un codice un po' più pulito:
    [php]<form name="vista" method="post" action="view_record.php">
    <input type="hidden" name="annos" value="<? echo $annos; ?>" />
    <input type="hidden" name="classe" value="<? echo $classe; ?>" />
    <input type="hidden" name="nome" value="<? echo $nome; ?>" />
    <input type="hidden" name="cognome" value="<? echo $cognome; ?>" />
    <input type="hidden" name="uteid" value="<? echo $uteid; ?>" />
    <input type="hidden" name="ngiud_agg" value="<? echo $ngiud_agg; ?>" />
    <input type="submit" id="invia32" value="guarda record" />
    </form>[/php][php]<?
    $classe = $_POST['classe'];
    $annos = $_POST['annos'];
    $nome = $_POST['nome'];
    $cognome = $_POST['cognome'];
    $uteid = $_POST['uteid'];
    $ngiud_agg = $_POST['ngiud_agg'];

    echo $classe." , ".$annos." , ".$nome." , ".$cognome."<br>";
    ?>[/php]Se anche così non dovesse funzionare sinceramente non comprendo quale possa essere il problema, magari potresti iniziare a spiegare cosa contengono i vari ```
    value="<? echo $var; ?>

    :)

  • ModSenior

    Mi sa che quello che ti dico non risolverà niente ma prova ad aggiungere anche la parola id.

    <input type="hidden" name="ngiud_agg" id="ngiud_agg" .....

    Su tutti i campi.


  • User Newbie

    Grazie per i consigli 🙂

    Ho inserito prima del form "ripulito" alcuni dati, poi il form, poi un controllo sulle variabili trasmesse (come segue)

    
    <?php
    $class='calasse1';
    $anno='2009-2010';
    $nom='fabio';
    echo $class." , ".$anno." , ".$nom." <br>";   
    ?>
    <form name="vista" method="post" action="form_riceve1.php">     
    <input type="hidden" name="anno" id="anno" value="<?  echo $anno; ?>" />     
    <input type="hidden" name="class" id="class" value="<?  echo $class; ?>" />     
    <input type="hidden" name="nom" id="nom" value="<?  echo $nom; ?>" />     
    <input type="submit" id="invia" value="guarda record" />       
    </form>
    
    <?php     
    var_dump($class);
    var_dump($nom);
    var_dump($anno);
    
    ?>
    
    
    ```Quando lo eseguo ottengo
    
    
    calasse1 , 2009-2010 , fabio 
    -PULSANTE-
                                           string(8) "calasse1" string(5) "fabio" string(9) "2009-2010" 
     
    Se invio, ottengo solo le due virgole
    , ,
     
    
    Questo problema può essere legato al fatto che sto usando EasyPHP 3.0
    Va anche detto che non più tardi di una settimana fa questo stesso form funzionava perfettamente.  :cry::cry:

  • ModSenior

    Ciao,

    guardando il sorgente della pagina con il monulo, il value dei campi nascosti sono presenti correttamente?

    Prova a mette nella pagina di elaborazione print_r($_POST); e ci dici che cosa mostra.


  • User Newbie

    Ho inserito dopo
    var_dump($anno);

    print_r($_POST);

    Ed ho ottenuto
    string(9) "2009-2010" Array ( )

    Cioè un array vuoto!
    Evidentemente c'è qualcosa che non va :vai:

    Cosa posso fare?


  • User Newbie

    In aggiunta a quanto scritto sopra.
    Ho caricato i due file su ARUBA e lì funziona tutto bene, quindi il problema è sul mio computer :arrabbiato:

    Come posso intervenire ? :mmm:
    Cosa devo andare a vedere :mmm:


  • ModSenior

    Provato con un altro browser?
    Attento alle maiuscole eh eh.


  • User Newbie

    Non capisco cosa c'entri il browser se in locale non funziona e on line invece si.
    Tra l'altro uso sempre lo stesso browser (Firefox).

    Per la cronaca ho provato con explorer e il risultato non cambia.


  • ModSenior

    Era solo per fare un ulteriore test, tutto qui.


  • Consiglio Direttivo

    @fabigno said:

    Non capisco cosa c'entri il browser se in locale non funziona e on line invece si.
    Tra l'altro uso sempre lo stesso browser (Firefox).

    Per la cronaca ho provato con explorer e il risultato non cambia.
    Il browser potrebbe c'entrare, certe volte la cache fa brutti scherzi, siam quì per provare ad aiutarti. 🙂

    Ma a parte questo è evidente a questo punto che il problema è il tuo webserver locale.
    Cosa è successo al tuo PC da una settimana a questa parte? 🙂

    EDIT: sposto la discussione in area Server.


  • User Newbie

    Grazie per l'aiuto, qualcosa si sta chiarendo.:?

    Uso EasyPHP 3.0, non ho fatto alcun cambiamento al file .ini, sto lavorando (provando) in parallelo, in un'altra directory Joomla che per quel poco che ho iniziato a vedere non manifesta problemi 🙂

    Il primo problema si è presentato quando all'improvviso il form

    
    <FORM METHOD="POST" ACTION="<? echo $_SERVER['PHP_SELF'] ?>">
     <INPUT TYPE="TEXT" NAME="profid" SIZE="8"/>
     <input type="PASSWORD" name="profpw" size="15"/>
       <INPUT TYPE="SUBMIT" VALUE="Invia"/>
    </FORM>
    
    
    ```Non passava più i dati alla seconda parte del file dove $profid e $profpw venivano processati.
    In questo caso ho spezzato in due il file e ne ho creato uno solo con il form che chiamava in successione l'altro. Questo funziona (anche ora) e quindi ho pensato che ci fosse un problema in 
    

    $_SERVER['PHP_SELF']

    Fra i due form l'unica differenza sostanziale è che nel primo caso passa i dati che gli si dà al momento, nel secondo dovrebbe passare dati già presenti (hidden).
    Ho fatto una prova: ho inserito nel form che funzione una riga
    

    <input type="hidden" name="prova" value="<? echo $prova ?>"/>

    che fare? :bho:
    Spero qualcuno ci capisca qualcosa.

  • User Newbie

    :yuppi::yuppi::yuppi:
    Ho risolto.
    Sembra che quando si apre un tag php, specialmente in una situazione tipo

    
    <input type="hidden" name="anno" id="anno" value="<?**php**   echo $anno; ?>" />      
    
    ```EasyPHP vuole il tag completo e non 
    

    <input type="hidden" name="anno" id="anno" value="<? echo $anno; ?>" />


  • User Newbie

    Oppure si può settare ad on il valore della dichiarazione short_open_tag nel file php.ini

    
    short_open_tag = on
    
    ```Così non dà più errore e si può usare la notazione abbreviata.