我正在运行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)
这些错误消息的含义是什么?
他们为什么突然出现?我曾经使用这个脚本多年,我从来没有遇到任何问题.
我该如何解决?
这是一个一般参考问题,供人们链接到重复,而不是一遍又一遍地解释这个问题.我觉得这是必要的,因为关于这个问题的大多数现实世界的答案都非常具体.
相关元讨论:
这应该是一个基本问题,但为什么更好地使用这样的东西:
$pwd = filter_input(INPUT_POST, 'pwd');
Run Code Online (Sandbox Code Playgroud)
而不仅仅是:
$pwd = $_POST['pwd'];
Run Code Online (Sandbox Code Playgroud)
PS:我知道过滤器扩展可以与更多参数一起使用,以提供额外的清理级别.
如果我有这个数组,
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 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) 我刚开始使用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