17

我正在尝试将值提交到数据库,但我收到一条错误消息

已弃用:第 20 和 27 行的 C:\wamp\www\OB\admin_add_acc.php 中不推荐使用函数 eregi()

这是代码:

<?php       

include 'db_connect.php'; 

if(isset($_POST['Submit']))           
{            
$acc_type=ucwords($_POST['acc_type']);
$minbalance=ucwords($_POST['minbalance']);                       
if (!eregi ("^[a-zA-Z ]+$", stripslashes(trim($acc_type))))//line 20 
{                 
echo "Enter Valid Data for Account Type!";                
exit(0);                 
}           
else 
{                  
if (!eregi ("^[0-9 ]+$", stripslashes(trim($minbalance))))//line 27
{                       
4

3 回答 3

24

eregi()自 PHP 5.3 起已弃用,请preg_match()改用。

请注意,只有在正则表达式中preg_match()传递修饰符时才区分大小写。i

include 'db_connect.php'; 
if(isset($_POST['Submit']))           
{            
    $acc_type=ucwords($_POST['acc_type']);
    $minbalance=ucwords($_POST['minbalance']);
    
    // Removed A-Z here, since the regular expression is case-insensitive                
    if (!preg_match("/^[a-z ]+$/i", stripslashes(trim($acc_type))))//line 20 
    {                 
        echo "Enter Valid Data for Account Type!";                
        exit(0);                 
    }           
    else 
    {                  
        // \d and 0-9 do the same thing
        if (!preg_match("/^[\d ]+$/", stripslashes(trim($minbalance))))//line 27
        {
        }
    }
} 
于 2013-08-29T11:37:50.460 回答
2

来自维基百科

弃用是应用于计算机软件功能、特性或实践的一种状态,表明它应该被避免,通常是因为它被取代。

查看eregi的 PHP 手册。如您所见,它有以下警告:

自 PHP 5.3.0 起,该函数已被弃用。强烈建议不要依赖此功能。

在页面下方有一些关于使用什么的建议:

自 PHP 5.3.0 起,eregi() 已弃用。带有 i (PCRE_CASELESS) 修饰符的 preg_match() 是建议的替代方法。

因此,您可以改用preg_match函数。

于 2013-08-29T11:39:13.897 回答
0

您可以在手册中找到答案。由于它在您使用的 php 版本中是一个已弃用的函数,您将收到该警告。ergi您可以使用而不是使用。请preg_match参阅手册以了解preg match

于 2013-08-29T11:37:29.447 回答