PHP

I form: inviare informazioni con il metodo POST

by Andrea Spera

Invio di form con il metodo POST
L'invio di dati tramite form è una delle funzionalità più comuni sul web. Il metodo POST viene utilizzato per inviare informazioni sensibili o più complesse dal client al server, poiché consente di trasmettere i dati in modo sicuro e con una quantità di informazioni maggiore rispetto al metodo GET.
Nel contesto di una form, il metodo POST invia i dati all'URL specificato nel campo action del form HTML. Questi dati non vengono inclusi nell'URL stesso, ma vengono inviati nel corpo della richiesta HTTP, il che rende il metodo POST ideale per l'invio di dati come credenziali di login, caricamenti di file, o altri contenuti complessi.
La pagina presentata utilizza JavaScript per controllare il comportamento del form e inviare i dati alla pagina PHP che li riceverà. Attraverso un semplice script, è possibile modificare dinamicamente l'azione del form e il target, permettendo così di gestire diversi scenari, come l'invio a un iframe o ad altre destinazioni.
Form HTML:
  • La form è definita con l'attributo enctype="multipart/form-data", necessario per gestire correttamente l'invio di file insieme ai dati.
  • Il metodo POST è utilizzato per inviare i dati in modo sicuro, e l'azione viene gestita dinamicamente in base alla destinazione definita nello script.
Script JavaScript:
  • La funzione formSubmit permette di impostare il target e la destinazione del form in modo flessibile, consentendo di cambiare dinamicamente dove inviare i dati (ad esempio, a un iframe o a un'altra pagina PHP).
  • Quando viene premuto il pulsante INVIA, la funzione fnct_formSubmit viene eseguita, che a sua volta richiama formSubmit e invia i dati alla pagina PHP designata per riceverli.
Uso di PHP per gestire i dati inviati:
  • La pagina PHP che riceve i dati tramite POST sarà in grado di elaborare le informazioni inviate e fare ulteriori operazioni come il salvataggio dei dati, l'invio di email, o il caricamento di file.
Codice (pagina che invia i dati)
<!DOCTYPE html>
<html>
<head>
<script>
function formSubmit(formId,destination)
	{
	document.getElementById(formId).target = "iframe_receive";
	//in questo caso è il riferimento all'inner frame
	//normalmente il target sarà _self o _blank
	document.getElementById(formId).action = destination;
	document.getElementById(formId).submit();
	}
</script>
</head>
<body>
<form id="formId" enctype="multipart/form-data" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" target="_self">
	<input type="text" name="myField" value="">
	<input type="button" id="submitBtn" value="INVIA">
</form>
<script>
function fnct_formSubmit()
	{
	formSubmit('formId','_php_formReceive.php');
	//inserire il nome del file php di destinazione
	}
document.getElementById("submitBtn").addEventListener("click", fnct_formSubmit);
</script>
</body>
</html>
Codice (pagina che riceve i dati)
<?php
$myField=$_POST["myField"];
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>Contenuto del campo "myField": <?php echo $myField;?></div>
</body>
</html>