2013-04-10 44 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

如果沒有,則正則表達式嘗試驗證整個字符串(從開始到結束),所有字符都在給定字符集內。