2013-04-10 70 views
-1

您好,我希望使用Preg_Replace函数,只要我检查输入的用户是否输入任何值。如果没有给出这样的错误消息“请输入你的名字吗”,但不是这个我收到此错误:Preg_Replace在空值中给出错误

公告:未定义指数:用C buildingslabs:\ XAMPP \ htdocs中\ spdealers \管理员
面板\ Property_Insert_Page_exe.php上线24

这里是我的代码:

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

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

你应该总是对'Post'和'Get'值使用'isset',然后检查它们是否为'empty' – 2013-04-10 04:30:27

回答

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'; 
    } 
} 
+0

嘿家伙有没有在Dreamweaver中缩进代码的短裤。 – user2249348 2013-04-10 06:01:16

+0

@ user2249348我不在'dreamweaver'上工作,所以我不知道...... :( – 2013-04-10 06:02:43

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'; 
} 
+0

这是正常工作,但这对于定义43变量还是不错? 如果(空($ _ POST [ '物业ID'])) \t { $物业ID = preg_replace函数( “[^ A-ZA-z0-9-]”, “”,$ _POST [ '物业ID']) ; \t echo'请重新检查表单并重新提交了某些内容'; \t} \t别的 \t { \t回声 '确定'。; – user2249348 2013-04-10 04:33:42

+0

ya。这是正确的 – 2013-04-10 04:35:30

0
Notice: Undefined index: buildingslabs in C:\xampp\htdocs\spdealers\Admin   
Panel\Property_Insert_Page_exe.php on line 24 

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

0

的错误是没有的preg_replace。

使用

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

的preg_replace之前开始

+0

你的意思是我应该定义开放部分中的变量{VARIABLE IN HERE} – user2249348 2013-04-10 04:28:22

+4

@ user2249348 - **停止呐喊!** – 2013-04-10 04:28:52

+0

@ user2249348我的意思是你必须遵循所有编程语言的初始化规则 – 2013-04-10 04:32:48

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 
} 

如果该参数不贴(可以是GET请求或东西是从POST丢失),$labsnull

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