-1

我有一个 php 页面:

<?php


$stats = file_get_contents('http://localhost/test/stats/$name.txt');
$name = $_POST['stat'];
echo "$stats";
echo "$name";

?>
<form action="index.php" method="POST">
    <input type="text" name="stat" />
    <input type="submit" value="Upload" />
</form>

我想通过输入文件名从文本表单中获取自定义文件,但我的代码不起作用。谢谢!

4

3 回答 3

1
<?php
if(isset($_POST['stat'])) {
  $name = $_POST['stat'];
  // note the double quote here
  $stats = file_get_contents("http://localhost/test/stats/$name.txt");
  echo "$stats";
  echo "$name";
}
?>
<form action="index.php" method="POST">
    <input type="text" name="stat" />
    <input type="submit" value="Upload" />
</form>

不要忘记保护您的文件(不包括 "../" )

于 2013-06-15T17:00:37.460 回答
0

是的,此代码将不起作用。试试下面的代码:

<?php
    $name = $_POST['stat'];

    $stats = file_get_contents("http://localhost/test/stats/$name.txt");

?>

你犯了两个错误。

首先,您在需要文件名的代码之后取文件名。

第二: php 当您将 php 变量名称放在单引号“''”中时,就像您的情况一样,它会按原样呈现,而它的值不会被呈现。但是如果你把 php 变量放在双引号中,它的值就会被渲染/显示。

现在试试这个,如果你还有任何问题,请告诉我。

谢谢

于 2013-06-15T17:00:54.527 回答
0
<?php

// switch the order around
$name = $_POST['stat'];
// and remove the variable from a single quoted string.
$stats = file_get_contents('http://localhost/test/stats/'.$name.txt);
echo "$stats";
echo "$name";

?>
<form action="index.php" method="POST">
    <input type="text" name="stat" />
    <input type="submit" value="Upload" />
</form>
于 2013-06-15T17:03:54.837 回答