Questo
post fa parte di una serie preparata qualche anno fa per
delle lezioni su PHP.
Limiti dei browser
Normalmente i browser implementano solo i metodi GET e POST. Se si prepara un form con l'attributo method che non vale "GET" o "POST" il browser fa una richiesta tramite GET.Utilizzare Javascript per PUT e DELETE
Se si vuole fare un PUT o un DELETE si può però chiedere al browser di utilizzare Javascript. Questo codice, con un po' di adattamenti, è preso da "Not just Post and Get".<html>
<title>HTTP Methods example</title>
<head>
<script language="Javascript">
<!--
var xmlhttp;
function execute($method,$url)
{
xmlhttp=new XMLHttpRequest();
xmlhttp.open($method,$url,true)
xmlhttp.send(null);
}
function testmethod($method)
{
alert('Executing ' + $method + '...');
execute($method, 'info.php');
}
-->
</script>
</head>
<body>
<?php foreach(array('get', 'post', 'put', 'delete') as $method): ?>
<input
type="button"
value="<?php echo $method ?>"
onclick="testmethod('<?php echo $method ?>');"
/>
<?php endforeach ?>
</body>
</html>
Il codice HTML che si ottiene per il body è il seguente:
<body> <input type="button" value="get" onclick="testmethod('get');" /> <input type="button" value="post" onclick="testmethod('post');" /> <input type="button" value="put" onclick="testmethod('put');" /> <input type="button" value="delete" onclick="testmethod('delete');" /> </body>Lo script PHP che riceve i dati può limitarsi, giusto per darci la conferma che i metodi PUT o DELETE sono stati ricevuti, a scrivere una specie di file di log:
<?php
// file info.php
$fp= fopen('log.txt', 'a');
fwrite($fp, $_SERVER['REQUEST_METHOD']. "\n");
fclose($fp);
?>
Nessun commento:
Posta un commento