Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 注意未定义的索引_Php - Fatal编程技术网

Php 注意未定义的索引

Php 注意未定义的索引,php,Php,可能重复: 注意:C:\xampp\htdocs\CMS\includes\login.php中未定义的索引:ac 第6行 注意:未定义索引:已登录 第13行C:\xampp\htdocs\CMS\includes\login.php 我收到上述通知,代码如下。如何定义索引?我知道有一种方法可以使用ISSET,但我不知道如何使用$\u会话记录和用户;因为有多个值。我如何以正确的方式清除上述错误,而不只是抑制通知/错误 <?php session_start(); // initiali

可能重复:

注意:C:\xampp\htdocs\CMS\includes\login.php中未定义的索引:ac 第6行

注意:未定义索引:已登录 第13行C:\xampp\htdocs\CMS\includes\login.php

我收到上述通知,代码如下。如何定义索引?我知道有一种方法可以使用ISSET,但我不知道如何使用$\u会话记录和用户;因为有多个值。我如何以正确的方式清除上述错误,而不只是抑制通知/错误

<?php
session_start(); // initialize session
include($_SERVER['DOCUMENT_ROOT'] . 
        '/CMS/CMSController.php');

if ($_POST["ac"]=="log") { /// do after login form is submitted  
     if ($USERS[$_POST["username"]]==$_POST["password"]) { /// check if submitted username and password exist in $USERS array 
          $_SESSION["logged"]=$_POST["username"]; 
     } else { 
          echo 'Incorrect username/password. Please, try again.'; 
     }; 
}; 
if (array_key_exists($_SESSION["logged"],$USERS)) { //// check if user is logged or not  
    echo "You are logged in.";
    header('Location: /CMS/index.php');
} else { //// if not logged show login form 
     echo '<form action="login.php" method="post"><input type="hidden" name="ac" value="log"> '; 
     echo 'Username: <input type="text" name="username" />'; 
     echo 'Password: <input type="password" name="password" />'; 
     echo '<input type="submit" value="Login" />'; 
     echo '</form>'; 
}; 
?>

您可以检查是否与您提到的内容相符。像这样使用它:

if(isset($_POST["ac"])) {
    //Code using ac here
}
<?php
session_start(); // initialize session
include($_SERVER['DOCUMENT_ROOT'] . 
        '/CMS/CMSController.php');

// This is one way to do it - it will give AC a value if it does not exist
// Do this for each $_POST value that may NOT have a value when executing this
// PHP file, for example: $_POST['username'] and $_POST['password']

if (!isset($_POST['ac'])) $_POST['ac'] = FALSE;

这样,如果
ac
索引中没有任何内容,则使用它的代码将执行<代码>isset本身不会引起通知。

您可以将其更改为以下内容:

if(isset($_POST["ac"])) {
    //Code using ac here
}
<?php
session_start(); // initialize session
include($_SERVER['DOCUMENT_ROOT'] . 
        '/CMS/CMSController.php');

// This is one way to do it - it will give AC a value if it does not exist
// Do this for each $_POST value that may NOT have a value when executing this
// PHP file, for example: $_POST['username'] and $_POST['password']

if (!isset($_POST['ac'])) $_POST['ac'] = FALSE;

这两种方法都很好。

非常常见的问题,这里有很多例子。简而言之,
if(isset($\u POST['ac'])&&&$\u POST['ac']='log'){}
当您的页面最初加载时,
$\u POST
尚未填充,因此您需要加以防范。这非常有效。非常感谢。