25

当我尝试将内容提交到我的表单时,我收到了以下错误消息。我该如何解决?

注意:未定义索引:第 4 行 D:\wamp\www\update.php 中的文件名

示例 Update.php 代码:

<?php

    $index = 1;
    $filename = $_POST['filename'];

    echo $filename;
?>

而 $_POST['filename'] 来自另一个页面:

<?php
    $db = substr($string[0],14) . "_" . substr($string[1],14) . "_db.txt";
?>

<input type="hidden" name="filename" value="<?php echo $db; ?>">
4

10 回答 10

48

Assuming您只需复制/粘贴相关代码,您的表格包括<form method="POST">


if(isset($_POST['filename'])){
    $filename = $_POST['filename'];
}
if(isset($filename)){ 
    echo $filename;
}

如果_POST未设置filename,则上述示例中的变量都不会出现。

另一种方法:

$filename = false;
if(isset($_POST['filename'])){
    $filename = $_POST['filename'];
 } 
    echo $filename; //guarenteed to be set so isset not needed

在此示例中,文件名的设置与_POST. isset这应该很好地展示了使用。

更多信息在这里: http: //php.net/manual/en/function.isset.php

于 2012-12-31T05:48:54.327 回答
7
if(isset($_POST['form_field_name'])) {
    $variable_name = $_POST['form_field_name'];
}
于 2017-03-26T19:39:39.433 回答
5

将 $_POST 更改为 $_FILES 并确保您的 enctype 是“multipart/form-data”

您的输入字段实际上是否在表单中?

<form method="POST" action="update.php">
    <input type="hidden" name="filename" value="test" />
</form>
于 2012-12-31T05:45:17.930 回答
2

简而言之,您可以使用三元运算符

$filename = !empty($_POST['filename'])?$_POST['filename']:'-';
于 2019-09-20T07:12:04.503 回答
1
if(!empty($_POST['filename'])){
$filename = $_POST['filename'];

echo $filename;
}
于 2012-12-31T05:45:40.067 回答
1

请试试这个

error_reporting = E_ALL & ~E_NOTICE

在 php.ini 中

于 2015-09-29T12:35:11.593 回答
0

简单地

if(isset($_POST['filename'])){
 $filename = $_POST['filename'];
 echo $filename;
}
else{
 echo "POST filename is not assigned";
}
于 2012-12-31T05:45:11.333 回答
0

用于isset此目的

<?php

 $index = 1;
 if(isset($_POST['filename'])) {
     $filename = $_POST['filename'];
     echo $filename;
 }

?>

于 2012-12-31T05:46:22.217 回答
0

用于empty()检查它是否可用。尝试 -

如果主机不在此处,将生成错误

if(!empty($_GET["host"]))
if($_GET["host"]!="")
于 2015-05-12T12:17:36.860 回答
-1
enctype="multipart/form-data"

提交前检查表单中的 enctype

于 2018-09-05T04:42:35.323 回答