Re: php://input

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



15 jan 2012 kl. 06.18 skrev Adam Tong:

> Hi,
> 
> I am trying to read variables from input method.
> I am using this tuorial:
> http://www.lornajane.net/posts/2008/Accessing-Incoming-PUT-Data-from-PHP.
> Here is my code:
> <?php
> if($_SERVER['REQUEST_METHOD'] == 'GET') {
>    echo "this is a get request\n";
>    echo $_GET['fruit']." is the fruit\n";
>    echo "I want ".$_GET['quantity']." of them\n\n";
> } elseif($_SERVER['REQUEST_METHOD'] == 'PUT') {
>    echo "this is a put request\n";
>    parse_str(file_get_contents("php://input"),$post_vars);
>    echo $post_vars['fruit']." is the fruit\n";
>    echo "I want ".$post_vars['quantity']." of them\n\n";
> }
> ?>
> 
> I am using the firefox extension  "poster" to run this example. GET
> works fine but when using PUT, file_get_contents("php://input")
> returns an empty string.
> 
> I found a bug related to this: https://bugs.php.net/bug.php?id=51592
> 
> I am using xampp on win7 (
> + Apache 2.2.17
>  + MySQL 5.5.8 (Community Server)
>  + PHP 5.3.5 (VC6 X86 32bit) + PEAR)
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php

Hi Adam.

Although I've never worked with PUT/DELETE requests, here are my thoughts.

1) According to the manual, file_get_contents only allows URL's as filenames if "fopen wrappers" are enabled. Make sure that this is the case (have a look at the settings in your php ini file). Do you get any data when changing 'file_get_contents' to e.g. (as found here: http://php.net/manual/en/features.file-upload.put-method.php)?

<?php
/* PUT data comes in on the stdin stream */
$putdata = fopen("php://input", "r");

/* Open a file for writing */
$fp = fopen("myputfile.ext", "w");

/* Read the data 1 KB at a time
   and write to the file */
while ($data = fread($putdata, 1024))
  fwrite($fp, $data);

/* Close the streams */
fclose($fp);
fclose($putdata);
?>

2) Have a look in your Appache log files and make sure the client is actually making a valid PUT request.

/frank


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux