-1

您好,每当我检查用户输入是否输入任何值时,我都想使用 Preg_Replace 函数。如果没有给出错误消息,例如“请输入您的姓名”,但我收到的不是这个错误:

注意:未定义索引:第 24 行 C:\xampp\htdocs\spdealers\Admin
Panel\Property_Insert_Page_exe.php 中的buildinglabs

这是我的代码:

<?php
  $buildingslabs = preg_replace("[^A-Z a-z0-9]", "", $_POST['buildingslabs']);

  if(empty($buildingslabs)
  {
    echo 'Plese Enter the Buildings Labs';
  }
  else
  {
    echo 'successfully inserted';
  }
?>
4

5 回答 5

1

isset在这里使用

if(isset($_POST['buildingslabs'])) {
    $buildingslabs = preg_replace("[^A-Z a-z0-9]", "", $_POST['buildingslabs']);

    if(empty($buildingslabs)
    {
        echo 'Plese Enter the Buildings Labs';
    }
    else
    {
        echo 'successfully inserted';
    }
}
于 2013-04-10T04:25:25.243 回答
0
<?php
  if(!empty( $_POST['buildingslabs'])){
  $buildingslabs = preg_replace("[^A-Z a-z0-9]", "", $_POST['buildingslabs']);

  if(empty($buildingslabs)
  {
   echo 'Plese Enter the Buildings Labs';
  }
  else
  {
  echo 'successfully inserted';
  }
}
else{
echo 'Plese Enter the Buildings Labs';
}
于 2013-04-10T04:24:18.807 回答
0
Notice: Undefined index: buildingslabs in C:\xampp\htdocs\spdealers\Admin        
Panel\Property_Insert_Page_exe.php on line 24

它表明您在 $_POST['buildingslabs'] 中的索引不存在。尝试检查您输入的文本名称。

于 2013-04-10T04:25:06.027 回答
0

错误不在 preg_replace 中。

采用

if(empty($_POST['buildingslubs'])) $_POST['buildingslubs'] = '';

在 preg_replace 开始之前

于 2013-04-10T04:26:18.763 回答
0

通知不是来自preg_replace();相反,您正在尝试访问$_POST['buildinglabs']但未buildinglabs发布参数。

我会翻转正则表达式并使用filter_input()

$labs = filter_input(INPUT_POST, 'buildingslabs', FILTER_VALIDATE_REGEXP, [
    'options' => ['regexp' => '/^[A-Z a-z0-9]+$/'],
    'flags' => FITLER_NULL_ON_FAILURE,
]);

if ($labs !== null) {
    // do something
}

$labs如果未发布参数(可能是 GET 请求或 POST 中缺少某些内容),则为null.

如果不是,则正则表达式尝试验证整个字符串(从开始到结束),所有字符都在给定字符集中。

于 2013-04-10T04:30:38.143 回答