首页 > php开发

php利用cookie防止重复提交解决办法

原理是
如果数据通过了上边的两次验证,说明数据是合法有效的数据。这时候我们把提交的数据串接为一个字符串,并用MD5加密后得到一个MD5的值,接着我们把这个值通过Cookie放进客户端,当用户下一次提交表单的时候我们就重新操作这一步,并且读出Cookie中的MD5值,进行比较,如果相同就可断定用户提交两次提交的表单是相同的,否则替换这个Cookie!

阅读全文

php中实现定时执行计划任务方法

使用php让浏览器刷新需要解决几个问题
如果客户端浏览器关闭,程序可能就被迫终止,解决办法:ignore_user_abort即使关闭页面依然正常执行
如果程序一直执行很有可能会消耗大量的资源,解决办法使用sleep使用程序休眠一会,然后在执行
PHP定时执行的代码:

阅读全文

php中数字转换成货币格式实现代码

function format_money( $STR )
{
        if ( $STR == "" )
        {
                return "";
        }
        if ( $STR == ".00" )
        {
                return "0.00";
        }
        $TOK = strtok( $STR, "." );
        if ( strcmp( $STR, $TOK ) == "0" )
        {
                $STR .= ".00";
        }
        else
        {
                $TOK = strtok( "." );
                $I = 1;
                for ( ;    $I <= 2 - strlen( $TOK );    ++$I    )
                {
                        $STR .= "0";
                }
        }
        if ( substr( $STR, 0, 1 ) == "." )
        {
                $STR = "0".$STR;
        }
        return $STR;
}

阅读全文

php中获取真实IP地址与IP地址验证函数

获取用户真实IP地址

function get_client_ip( )
{
        if ( getenv( "REMOTE_ADDR" ) && strcasecmp( getenv( "REMOTE_ADDR" ), "unknown" ) )
        {
                $onlineip = getenv( "REMOTE_ADDR" );
                return $onlineip;
        }
        if ( isset( $_SERVER['REMOTE_ADDR'] ) && $_SERVER['REMOTE_ADDR'] && strcasecmp( $_SERVER['REMOTE_ADDR'], "unknown" ) )
        {
                $onlineip = $_SERVER['REMOTE_ADDR'];
                return $onlineip;
        }
        if ( getenv( "HTTP_CLIENT_IP" ) && strcasecmp( getenv( "HTTP_CLIENT_IP" ), "unknown" ) )
        {
                $onlineip = getenv( "HTTP_CLIENT_IP" );
                return $onlineip;
        }
        if ( getenv( "HTTP_X_FORWARDED_FOR" ) && strcasecmp( getenv( "HTTP_X_FORWARDED_FOR" ), "unknown" ) )
        {
                $onlineip = getenv( "HTTP_X_FORWARDED_FOR" );
        }
        return $onlineip;
}

阅读全文

php中数字与关联数组顺序打乱

 解决方法如下:关联数组和索引数组都可以用

function array_shuffle($array)
{
    //不是数组
    if(!is_array($array)) {
        return array();
    }
    //如果为空或者只有1项
    if(($count=count($array))<=1){
        return $array;
    }
    
    //得到打乱的键
    $rand_keys = array_rand($array, count($array));
    $newArr=array();
    foreach($rand_keys as $v) {
        $newArr[$v] = $array[$v];
    }
    return $newArr;
}

阅读全文