我真的不明白为什么没有定义这个var。
if(isset($_POST['test']))
{
$directory = 'C:/Users/Oscar/Documents/test/';
$files = array_diff(scandir($directory), array('..', '.'));
foreach($files as $file):?>
<table border="2px">
<tr>
<td>
<form method="post">
<input type="submit" value="<?php echo $file; ?>" name="file" />
</form>
</td>
</tr>
</table>
<?php endforeach;
}
if(isset($_POST['file']))
{
//print_r($_POST['file']);
echo file_get_contents($directory.$_POST['file']);
}
目录var未定义,我在最后一个“if”上调用它。不知道为什么
答案 0 :(得分:3)
将您的代码更改为
$directory = 'C:/Users/Oscar/Documents/test/';
if(isset($_POST['test']))
{
$files = array_diff(scandir($directory), array('..', '.'));
.....
我希望你能理解这里发生的事情。你的条件基本上是(根据实际逻辑而不是代码)if {} else {}
移动第一个条件块共享的var可确保它在两个块中都可用。
答案 1 :(得分:0)
因为if语句是假的。
把$ directory ='C:/ Users / Oscar / Documents / test /';在这一行之上:if(isset($ _ POST ['test']))
答案 2 :(得分:0)
所以$ post ['test']返回false,然后$ directory未定义。