使用mysqli_real_escape_string后未定义的索引

时间:2017-11-23 03:48:12

标签: php

我需要帮助修复我的PHP错误:undefined index id_user。我不知道为什么我的代码在使用id_user之后无法获得mysqli_real_escape_string

<?php 
session_start();

if (isset($_SESSION['login_user'])){
    include "connect.php";  
    $id_user_add = mysqli_real_escape_string($conn,$_POST['id_user_add']);
    $name_add = mysqli_real_escape_string($conn,$_POST['name_add']);
    $authority_add = mysqli_real_escape_string($conn,$_POST['authority_add']);
    $email_user_add = mysqli_real_escape_string($conn,$_POST['email_user_add']);
}
else
{
    echo '<script> alert("You Have No Privilege"); </script>';
    echo '<script>window.location.href = "../index.php";</script>';
}
?>

有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

你的帖子数组缺少该索引的值,mysqli_real_escape_string()的数量不会在它不首先存在的地方创建。

mysqli_real_escape_string()对您的阵列进行操作,它无法神奇地创建不存在的数组值。

我建议您打印出完整的$_POST数组,并检查您所需的所有数据是否确实存在。这可以通过

完成
var_dump($_POST); 

如果您在不知道帖子如何完成的情况下如何填写丢失的数据,则无法回答。

你可以通过多种方式检查它,甚至在它丢失时填写它。但是它是必需的,我不知道。

if( isset($_POST['id_user_add']) )
    ///do something

或者

$id_user_add = isset($_POST['id_user_add']) ? mysqli_real_escape_string($conn,$_POST['id_user_add']) : false;