标签: undefined-index

使用PHP"注意:未定义的变量","注意:未定义的索引"和"通知:未定义的偏移量"

我正在运行PHP脚本,并继续收到如下错误:

注意:未定义的变量:第10行的C:\ wamp\www\mypath\index.php中的my_variable_name

注意:第11行的未定义索引:my_index C:\ wamp\www\mypath\index.php

第10行和第11行看起来像这样:

echo "My variable value is: " . $my_variable_name;
echo "My index value is: " . $my_array["my_index"];
Run Code Online (Sandbox Code Playgroud)

这些错误消息的含义是什么?

他们为什么突然出现?我曾经使用这个脚本多年,我从来没有遇到任何问题.

我该如何解决?

这是一个一般参考问题,供人们链接到重复,而不是一遍又一遍地解释这个问题.我觉得这是必要的,因为关于这个问题的大多数现实世界的答案都非常具体.

相关元讨论:

php arrays variables warnings undefined-index

1119
推荐指数
20
解决办法
163万
查看次数

带有$ _POST的未定义索引

我正在尝试重新学习一些PHP基础知识来制作一个简单的登录脚本,但是我得到了一个我之前没有收到的错误(我在一年多前制作了相同的脚本并且从未出现过这个错误.我简化了代码我可以测试哪个区域有问题,这是问题所在:

<?php
$user = $_POST["username"];
if($user != null)
{
    echo $user;
    echo " is your username";
}
else
{
    echo "no username supplied";
}
?>
Run Code Online (Sandbox Code Playgroud)

现在,当我将一个变量发送到脚本时,这段代码工作正常,但是当没有提供变量时,它会发出错误.理论上这很好,因为如果没有提供用户名/传递,那么预计会出错.在代码发送到脚本之前,我将检查以确保这一点,但是我担心不知何故空字符串可能泄漏并吐出一些未知错误.这是我得到的错误:

( ! ) Notice: Undefined index: username in C:\wamp\www\verify_login.php on line 2

Call Stack

    Time    Memory  Function    Location
1   0.0003  668576  {main}( )   ..\verify_login.php:0
Run Code Online (Sandbox Code Playgroud)

没有提供用户名

你可以看到代码寄存器没有提供变量,但它给出了错误,我假设意味着没有找到一个变量是预期的或类似的东西.有人可以帮我澄清一下吗?

php login undefined-index

38
推荐指数
4
解决办法
17万
查看次数

Symfony2中$ em-> clear()时未定义的索引错误

我编写了一个Symfony命令来从API导入一些数据.它的工作原理但问题是当我在数据库中插入一个大的JSON时,我的PHP内存使用量会增加.并且我的unitOfWork在每次激活导入后增加"2".

我已经取消了所有用过的对象,当你想做大量的批处理时,我已经阅读了Symfony2的文档:http://www.doctrine-project.org/blog/doctrine2-batch-processing.html

但是当我使用$em->clear()我的实体管理器时会出现此错误:

注意:未定义的索引:000000007b56ea7100000000e366c259在path-to-application\vendor\doctrine\lib\Doctrine\ORM\UnitOfWork.php第2228行中

这是我的完整代码:

 /**
 * @see Command
 */
protected function configure() {
  $this
    ->setName('ks:user:runkeepersync')
    ->setDescription('Synchroniser les activités d\'un utilisateur runkeeper')
    ->setDefinition(array(
      new InputArgument('access_token', InputArgument::REQUIRED, 'Access token'),
    ))
}

/**
 * @see Command
 */
protected function execute(InputInterface $input, OutputInterface $output) {
  $accessToken = $input->getArgument('access_token');
  $em = $this->getContainer()->get('doctrine')->getEntityManager();
  $UserHasServices = $em->getRepository('KsUserBundle:UserHasServices')->findOneByToken($accessToken);
  if (!is_object($UserHasServices) ) {
    echo "Impossible de trouver l'utilisateur qui possède le jeton ".$accessToken."";
  }
  $user    = $UserHasServices->getUser();
  $service = $UserHasServices->getService();
  echo "avant de …
Run Code Online (Sandbox Code Playgroud)

php unit-of-work memory-limit undefined-index symfony

19
推荐指数
2
解决办法
5091
查看次数

为什么在布尔值上访问数组索引不会引发任何类型的错误?

当我尝试通过该数组中不存在的键访问数组时,php将引发"未定义索引"通知错误.当我尝试对字符串执行相同操作时,会出现"非法字符串偏移"警告.这是一种预期的行为,我知道如何处理它.

但是当我在布尔值或整数值上尝试这个时,没有任何反应:

ini_set('display_errors', 1);
error_reporting(E_ALL);

$var = false;
var_dump($var['test']);
Run Code Online (Sandbox Code Playgroud)

我希望看到一些错误消息,但$var['test']只是静默设置为NULL.

那么为什么php允许通过数组键访问布尔值而没有任何迹象表明你做错了什么?洞"通过数组键访问布尔值"这句话对我来说听起来非常奇怪,但你可以在php中完成.

php arrays boolean undefined-index

12
推荐指数
1
解决办法
1145
查看次数

PHPMyAdmin未定义索引:行

我在使用phpMyAdmin时收到以下错误.每次我创建任何表时都会发生这种情况.

Notice in ./libraries/structure.lib.php#1881
 Undefined index: Rows

Backtrace

./libraries/structure.lib.php#2382: getHtmlForRowStatsTable(
array,
NULL,
boolean false,
boolean false,
string '',
string '',
)
./libraries/display_structure.inc.php#263: PMA_getHtmlForDisplayTableStats(
string '',
NULL,
NULL,
boolean false,
NULL,
string '?db=btc_orders&amp;table=Rep&amp;token=09aa3ad5cb85e33dad2a2098ed2874e2&amp;goto=tbl_structure.php&amp;back=tbl_structure.php',
NULL,
)
./tbl_structure.php#163: require_once(./libraries/display_structure.inc.php)
Run Code Online (Sandbox Code Playgroud)

它只发生在PHPMyAdmin中的一个Datadase上,没有任何错误弹出任何其他数据库.

我已删除所有表并再次完成它们,每次添加新表时仍会出现错误.

mysql phpmyadmin undefined-index

9
推荐指数
1
解决办法
2万
查看次数

Javascript:如何从数组中清除未定义的值

我正在尝试遍历数组并删除并跳过元素,直到只有一个存在.我已经尝试过拼接,但是它弄乱了我的循环,因为来自arr [1]的元素变成了arr [0]等.

假设有10个人.我想删除1号人员然后保留2号人员然后移除3号人员并保留4号人员.此模式将一直持续到只剩下一人.

任何形式的帮助都可以.

javascript arrays undefined-index

4
推荐指数
3
解决办法
2万
查看次数

如何修复此未定义的索引错误?Jquery Ajax到PHP

我正在使用Jquery,Ajax和PHP来尝试发送一个要在mysql数据库中编写的变量.正在进行Ajax请求,但php没有获取变量.我不知道为什么会这样.

使用firebug和console.log()我可以看到对write_results.php进行了POST

如果我检查响应它说

注意:未定义的索引:第2行的E:\ write_results.php中的testscore

这是我的PHP

<?php 
  $testscore=$_POST['testscore'];  //get testscore from Ajax 
  include 'DB.php';
  $con = mysql_connect($host,$user,$pass);
  $dbs = mysql_select_db($databaseName, $con); 
     if (isset($_POST['testscore'])) {  
       $addClient  = "INSERT INTO variables (`id` ,`name`) VALUES (NULL,'$testscore')";  
       mysql_query($addClient) or die(mysql_error());  
       }

?>  
Run Code Online (Sandbox Code Playgroud)

这是我的ajax脚本

<script type="text/javascript">
$(document).ready(function() {  
testscore ="tryagain"; //testvalue to enter into the mysql database
  $.ajax({  
    type: "POST",  
    url: "write_results.php",  
    data: testscore,      
    success: function(){  
      $('#box2').html("success");
    } 
  })
}); 
</script>
Run Code Online (Sandbox Code Playgroud)

我的问题

  1. 为什么$ testscore没有从ajax脚本接收值?
  2. 我怎样才能解决这个问题?

php jquery post undefined-index

3
推荐指数
1
解决办法
2万
查看次数

$ _POST无法正常工作."注意:未定义的索引:用户名..."

可能重复:
PHP:"注意:未定义的变量"和"通知:未定义的索引"

所以,我目前正在学习PHP并正在阅读一本关于密码的md5函数的书,所以我决定尝试一下,看看它是怎么回事.我还决定使用POST方法而不是GET,因为我看到人们说它更安全,并且不会让变量出现在URL上.

对于我的测试项目,我做了一个非常简单的表格,如下:

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <form action="dologin" method="POST">
            <table border="0">
                <tbody>
                    <tr>
                        <td>Username:</td>
                        <td><input type="text" name="username"></td>
                    </tr>
                    <tr>
                        <td>Password:</td>
                        <td><input type="password" name="password"></td>
                    </tr>
                </tbody>
            </table>
            <input type="submit" value="Login">
        </form>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

问题是当我在BOTH字段中输入值并单击"Login"时,我在另一个PHP文件上得到以下输出.

Notice: Undefined index: username in C:\xampp\htdocs\md5\home\dologin\index.php on line 11
Username non existent
Run Code Online (Sandbox Code Playgroud)

以下是"/dologin/index.php"文件的代码

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
            mysql_connect("localhost", "root") or die(mysql_error());
            mysql_select_db("test") or die(mysql_error());
            $query = "SELECT password FROM users …
Run Code Online (Sandbox Code Playgroud)

php http-post undefined-index

3
推荐指数
1
解决办法
9万
查看次数

PHP:即使检查了IsSet,也未定义索引

我已经阅读了其他问题,没有人回答也没有帮助我。

这是我的问题,我有一个对象/数组,其中包含一个也是对象/数组的属性。

我已经通过以下方式成功访问了类似的属性:

$variable[propertyObject][property]
Run Code Online (Sandbox Code Playgroud)

但是,我已经收到错误通知:最近未定义索引

这是代码:

$extensionData = $data['Data'];
echo '<p>' . isset($extensionData['Calories']) ? $extensionData['Calories'] : '' . '</p>';
Run Code Online (Sandbox Code Playgroud)

但是,这仍然会引发相同的错误。即使我检查:

isset($extensionData['Calories']),它始终解析为1 / True,这意味着该属性应该存在,那么如何定义索引呢?

当我执行的var_dump或print_r时$extensionData,这就是我得到的:

Array
(
    [Calories] => 295
    [WebDesktopImage] => https://clutch-asset-management.s3.amazonaws.com/elevation-burger/IMG_0760-Edit.jpg
    [WebMobileImage] => https://clutch-asset-management.s3.amazonaws.com/elevation-burger/IMG_0760-Edit.jpg
    [WebDescription] => BLT image
)
Run Code Online (Sandbox Code Playgroud)

php arrays indexing undefined-index

3
推荐指数
1
解决办法
2496
查看次数

未定义索引有多严格?

我已经打开了所有错误报告,以清理一些未定义的索引,只是为了使我制作的应用程序更加简洁。我注意到一种奇怪的行为:

假设我有以下数组: $a = array('test' => false, 'foo' => 'bar')

如果这样if ($a['nothere']),我会适当的通知Undefined index: nothere

但是,如果这样做if ($a['test']['nothere']),我不会收到通知。完全没有 尽管nothere绝对不是的索引$a['test']

现在,如果我这样做了$a['test'] = array('baz' => 'poof'),那么运行if ($a['test']['nothere']) 确实会发出通知。

未定义索引检查是否不检查空数组中的索引?这是在PHP 5.2.8上。

php multidimensional-array undefined-index

2
推荐指数
1
解决办法
451
查看次数