- Home
- Categorie
- Coding e Sistemistica
- Hosting e Cloud
- Easy PHP 3 - Non vengono passati valori tramite POST
-
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?
-
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; ?>:)
-
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.
-
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:
-
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.
-
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 vaCosa posso fare?
-
In aggiunta a quanto scritto sopra.
Ho caricato i due file su ARUBA e lì funziona tutto bene, quindi il problema è sul mio computerCome posso intervenire ?
Cosa devo andare a vedere
-
Provato con un altro browser?
Attento alle maiuscole eh eh.
-
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.
-
Era solo per fare un ulteriore test, tutto qui.
-
@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.
-
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.
-
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; ?>" />
-
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.