0

嗨,有人可以告诉我这段代码有什么问题吗?看起来不错,但它不起作用;单击按钮后,它应该通过帖子启动回声。

所以编辑了一些代码,现在看起来像:

<?php
error_reporting(E_ALL);
echo "<form class='upload' method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]?low=1'>
<input type='hidden' name='upload' value='go1' />
<input type='submit' value='low' />
</form>

<form class='upload' method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]?high=1'>
<input type='hidden' name='upload' value='go2' />
<input type='submit' value='high' />";

if ( $_POST['upload'] == 'go1' ) {
    if ( $_POST['low'] == '1' ) { echo 'low1'; }
};

if ( $_POST['upload'] == 'go2' ) {
    if ( $_POST['high'] == '1' ) { echo 'high1'; }
};
?>

但仍然出现错误:

[20-Jul-2013 02:00:11 Europe/Warsaw] PHP Notice:  Undefined index: upload in /home/file.php on line 12
[20-Jul-2013 02:00:11 Europe/Warsaw] PHP Notice:  Undefined index: upload in /home/file.php line 16
[20-Jul-2013 02:00:12 Europe/Warsaw] PHP Notice:  Undefined index: low in /home/file.php  on line 13
4

3 回答 3

0

如果启用错误报告,您将得到确切的错误,键入时会出现语法错误:

$_POST('upload')
      ^--      ^--

将其更改为:

$_POST['upload'] 

然后,您可以编写此行以在处理代码时启用错误报告:

error_reporting(E_ALL);

稍后当您上传到生产服务器时:

error_reporting(0);

或者只是将其注释掉

于 2013-07-19T23:22:07.603 回答
0

我认为您在表单中的操作使用了错误的PHP_SELF. 我想你想使用这个$_SERVER[PHP_SELF]变量。

于 2013-07-19T23:22:28.380 回答
0

1)第一个问题是你action='$_SERVER[PHP_SELF]?low=1'放入数组,而low不是. 所以也使用,或者代替,或者额外的隐藏字段。 2)第二个问题是你没有用isset()检查你的数组。您的表单在第一次运行时加载,尚未提交,数组为空。 3) 不要忘记关闭第二个表单标签。$_GET$_POST$_GET$_REQUEST

像这样的东西:

echo "<form class='upload' method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]?low=1'>
<input type='hidden' name='upload' value='go1' />
<input type='submit' value='low' />
</form>

<form class='upload' method='post' enctype='multipart/form-data' action='$_SERVER[PHP_SELF]?high=1'>
<input type='hidden' name='upload' value='go2' />
<input type='submit' value='high' />
</form>";

if ( isset($_REQUEST['upload']) && $_REQUEST['upload'] == 'go1' ) {
    if ( isset($_REQUEST['low']) && $_REQUEST['low'] == '1' ) { echo 'low1'; }
};

if ( isset($_REQUEST['upload']) && $_REQUEST['upload'] == 'go2' ) {
    if ( isset($_REQUEST['high']) && $_REQUEST['high'] == '1' ) { echo 'high1'; }
};
于 2013-07-20T07:51:36.210 回答