- Home
- Categorie
- Coding e Sistemistica
- Coding
- passaggio dati tra form e file php
-
passaggio dati tra form e file php
Salve a tutti. Mi chiamo edoardo e questo è il primo messaggio che posto a questo forum, anche se da tempo
lo seguo con interesse.Sono un neofita di php e sto provando a passare dati tra un form e il relativo file php.
Ho due file: un .html contenente la form con due cambi per immettere due numeri e un .php che elabora i dati.
Ecco il file "calcolo_modulo.html":<HTML> <HEAD> <TITLE>Modulo di calcolo</TITLE> </HEAD> <BODY> <HTML> <HEAD> <TITLE>Modulo di calcolo</TITLE> </HEAD> <BODY> <form method="post" action="calcolo.php"> <P>Valore n. 1: <input type="text" name="val1" size=10></P> <P>Valore n. 2: <input type="text" name="val2" size=10></P> <P><input type="submit" name="invio" value="Calcola"></P> </FORM> </BODY> </HTML>Ed ecco il relativo file "calcolo.php":
<HTML> <HEAD> <TITLE>Risultato del calcolo</TITLE> </HEAD> <BODY> <P> <?php $risultato = $val1 + $val2; echo "$risultato"; ?> </P> </BODY> </HTML>Quando inserisco i dati nella form di "calcolo_modulo.html" (es 2 e 6 ) mi si apre il file calcolo.php con il seguente errore:
Notice: Undefined variable: val2 in /var/www/calcolo2.php on line 11 Notice: Undefined variable: val1 in /var/www/calcolo2.php on line 11 0Io usu Ubuntu 12.04 e la Directoryroot di Apache è su /var/www (localhost).
i valori delle vaiabili non dovrebbe prenderli dai campi della form?
Come mai succede questo?
Grazie
-
Ciao, prova con $_POST['val1'] e $_POST['val2'], al posto di $val1 e $val2
-
Grazie mels......funziona!!!
A questo punto ti chiedo:
Il codice che avevo scritto io era forse per php4? Io sto usando il 5.3!
Lo script è stato preso da un libro del 2005 e mi sembra si riferisca a php4. Puo' essere?
-
Scusate.... devo mettere un RISOLTO da qualche parte o non si usa?
-
Credo che "grazie" sia sufficiente, se qualcuno ha qualche problema simile, entra qui e capisce che è risolto

Non so le differenze tra PHP4 e PHP5, ma quando passi i dati da un form POST, è come se tutte le variabili del formulario andassero a costituire un'array associativo $_POST, così le richiami con $_POST['name'], dove "name" è il name che hai dato nell'HTML agli input
-
Ok per la "netiquette" e grazie ancora.
Per concludere presumo che lo stesso discorso valga per il GET e quindi $_GET['var']...al di là del fatto sia meno "sicuro". Dico bene?
-
Dici bene. Il GET personalmente lo uso solo quando per passare informazioni da una pagina all'altra uso un link anzichè un form.
-
Vorrei porre un'altra questione sempre relativa al passaggio dati:
Ho questa form con un campo di testo e due radio button per scegliere se ottenere la lunghezza della stringa digitata
oppure la stringa digitata al contrario:<HTML> <HEAD> <TITLE>Modulo di input generico</TITLE> </HEAD> <BODY> <FORM METHOD="post" ACTION="visualizza_input.php"> <P><strong>Campo di testo:</strong><br> <TEXTAREA NAME="testo" COLS=45 ROWS=5 WRAP=virtual></TEXTAREA> </p> <P><strong>Funzioni di manipolazione delle stringhe:</strong><br> <INPUT TYPE="radio" NAME="funzione" VALUE="strlen"> lunghezza della stringa<br> <INPUT TYPE="radio" NAME="funzione" VALUE="strrev"> stringa al contrario<br> <P><INPUT TYPE="submit" NAME="invio" VALUE="Effettua l'operazione"></P> </FORM> </BODY> </HTML>ed il file php:
<?php $risultato = $funzione($_POST['testo']); ?> <HTML> <HEAD> <TITLE>Risultati di input generico</TITLE> </HEAD> <BODY> <? echo "$risultato"; ?> <p><a href="modulo_generico.html">Torna al modulo!</a></P> </BODY> </HTML>In output mi da l'errore:
Notice: Undefined variable: funzione in /var/www/visualizza_input.php on line 8 Fatal error: Function name must be a string in /var/www/visualizza_input.php on line 8Ho provato a sostituire $funzione con $_POST['funzione'] ma non funziona.
Grazie da subito per l'eventuale aiuto....
-
strlen e strrev ti arrivano come testi, non credo che sia possibile utilizzarli come le funzioni srtlen() e strrev(),
prova con:[PHP]
$risultato = $_POST['testo'];
if($_POST['funzione'] == "strrev")
{
$risultato = strrev($risultato);
}
if($_POST['funzione'] == "srtlen")
{
$risultato = strlen($risultato);
}
[/PHP]
-
Si infatti....il codice che hai scritto era la mia seconda scelta...e naturalmente funziona.
Come dicevo nel msg precedente , questi esempi li ho presi da "php per esempi" di Julie Meloni - Jackson libri.
Il libro si riferisce al php4.
Quindi se con php4 si poteva fare , vorrei capire perche' con php5 non s ipuo' piu'.......
per completezza posto i codici completi come da testo del libro:
file html:<HTML> <HEAD> <TITLE>Modulo di input generico</TITLE> </HEAD> <BODY> <FORM METHOD="post" ACTION="visualizza_input.php"> <P><strong>Campo di testo:</strong><br> <TEXTAREA NAME="testo1" COLS=45 ROWS=5 WRAP=virtual></TEXTAREA> </p> <P><strong>Funzioni di manipolazione delle stringhe:</strong><br> <INPUT TYPE="radio" NAME="funzione" VALUE="md5" checked> md5<br> <INPUT TYPE="radio" NAME="funzione" VALUE="strlen"> lunghezza della stringa<br> <INPUT TYPE="radio" NAME="funzione" VALUE="strrev"> stringa al contrario<br> <INPUT TYPE="radio" NAME="funzione" VALUE="strtoupper"> stringa in maiuscolo<br> <INPUT TYPE="radio" NAME="funzione" VALUE="strtolower"> stringa in minuscolo<br> <INPUT TYPE="radio" NAME="funzione" VALUE="ucwords"> stringa con le prime lettere delle parole in maiuscolo</P> <P><INPUT TYPE="submit" NAME="invio" VALUE="Effettua l'operazione"></P> </FORM> </BODY> </HTML>file php4:
<?php $risultato = $funzione($testo1); ?> <HTML> <HEAD> <TITLE>Risultati di input generico</TITLE> </HEAD> <BODY> <? echo "$risultato"; ?> <p><a href="modulo_generico.html">Torna al modulo!</a></P> </BODY> </HTML>Ecco...se tu melis o qualcun'altro sapesse togliermi questa curiosita' gliene sarei grato.
Comunque grazie ancora e ciao.
-
Ciao edo64,
non si tratta di un problema di versione di PHP, bensì di configurazione.
Trovi una spiegazione dettagliata, con il motivo per cui quella direttiva è stata per lungo tempo consigliata su OFF, ed è stata rimossa con PHP 5.4 qui:
http://www.giorgiotave.it/forum/scripting-e-risorse-utili/99967-pillola-consigli-sul-perche-mantenere-register_globals-su-off.html
-
Ciao TheDarkIta.....grazie....mi hai dato un bell'input.
Andando a leggere in file php.ini infatti , nella sezione apposita, dice:"Using form variables as globals can easily lead
to possible security problems..."Cerchero di capire bene come si gestiscono queste super variabili o array che dir si voglia...
Grazie ancora...