相关疑难解决方法(0)

使用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万
查看次数

为什么最好使用filter_input()?

这应该是一个基本问题,但为什么更好地使用这样的东西:

$pwd = filter_input(INPUT_POST, 'pwd');
Run Code Online (Sandbox Code Playgroud)

而不仅仅是:

$pwd = $_POST['pwd'];
Run Code Online (Sandbox Code Playgroud)

PS:我知道过滤器扩展可以与更多参数一起使用,以提供额外的清理级别.

php security filter

20
推荐指数
1
解决办法
8608
查看次数

在不生成PHP通知的情况下访问未知数组元素的最佳方法是什么?

如果我有这个数组,

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

$arr = array(
  'id' => 1234,
  'name' => 'Jack',
  'email' => 'jack@example.com',
  'city' => array(
    'id' => 55,
    'name' => 'Los Angeles',
    'country' => array(
      'id' => 77,
      'name' => 'USA',
     ),
  ),
);
Run Code Online (Sandbox Code Playgroud)

我可以用

$name = $arr['city']['country']['name'];
Run Code Online (Sandbox Code Playgroud)

但是,如果国家/地区数组不存在,PHP将生成警告:

Notice: Undefined index ... on line xxx
Run Code Online (Sandbox Code Playgroud)

当然,我可以先进行测试:

if (isset($arr['city']['country']['name'])) {
  $name = $arr['city']['country']['name'];
} else {
  $name = '';  // or set to default value;
}
Run Code Online (Sandbox Code Playgroud)

但这是低效的。$arr['city']['country']['name'] 不生成PHP Notice 的最佳方法是什么(如果它不存在)?

php

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

Swift 4将POST请求发送为x-www-form-urlencoded

我想向php 7服务器发送POST请求,该服务器接受数据为application/x-www-form-urlencoded。我拥有的数据在Struct内部,提交时我想获取此结构的每个属性作为参数。

这是处理我的urlSession请求GET和POST的结构 XHR.swift

struct XHR {

    enum Result<T> {
        case success(T)
        case failure(Error)
    }

    func urlSession<T>(method: String? = nil, file: String, data: Data? = nil, completionHandler: @escaping (Result<T>) -> Void) where T: Codable {

        let file = file.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!

        // Set up the URL request
        guard let url = URL.init(string: file) else {
            print("Error: cannot create URL")
            return
        }

        var urlRequest = URLRequest(url: url)

        if method == "POST" {
            urlRequest.httpMethod = "POST";
            urlRequest.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
            urlRequest.httpBody = …
Run Code Online (Sandbox Code Playgroud)

xcode ios swift swift4

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

PHP PDO表不更新数据

我刚开始使用PHP进行编码,并且在尝试创建待办事项列表时,我在创建一个名为"add.php"的文件后撤消了,该文件应该向表中添加新数据.主文件index.php调用表元素ok并在浏览器上显示它们,但我无法添加新项.

add.php中的代码在这里:

<?php

require_once 'app/init.php';

if(isset($_POST['name'])) {
    $name = trim($POST['name']);

    if(!empty($name)) {
        $addedQuery = $db->prepare("
            INSERT INTO items (name, user, done, created) 
            VALUES (:name, :user, 0, NOW() )
                ");

        $addedQuery->execute([
            'name' => $name,
            'user' => $_SESSION['user_id']
            ]);
    }
}

header('location: index.php');




?> 
Run Code Online (Sandbox Code Playgroud)

如果它有帮助,我在WampServer 2.5上使用PHP 5.5.12和MySQL 5.6.17

php mysql pdo

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

标签 统计

php ×4

arrays ×1

filter ×1

ios ×1

mysql ×1

pdo ×1

security ×1

swift ×1

swift4 ×1

undefined-index ×1

variables ×1

warnings ×1

xcode ×1