Discuz! Passport 通行证整合

发表于 5年以前  | 总阅读数:4744 次

解决办法:
第一步: 到dz的数据库表cdb_settings 找到下面这几行修改为

第二步: 删除dz安装目录/forumdata/cache/cache_settings.php
第三步: 重新访问论坛

登陆和注册整合流程
用户从登陆或注册表单提交帐号密码信息 ==>
主站程序检验用户登陆或注册,成功(注册需要生成新用户)则 ==>
设置主站自身的cookie或session ==>
url传递 返回地址forward和编码后的用户信息和其他信息 到dz/api/passport.php

整合之前请先仔细阅读官方passport技术文档: http://www.discuz.net/usersguide/advanced_passport.htm
<?php
//该文档保存为login.php
//首先将接口技术文档里的加密解密函数拷贝
//为了不让代码太乱,我拷贝到文档的结尾处
//假设自己的用户数据库表里用户名字段为UserName, 密码字段为Pwd, Email字段为 Email
//注册页实现方法差不多,可自行实现,疑问加我QQ:2666556

$act=(isset($_GET['act']))?$_GET['act']:"login";
if(function_exists($act)) $act();else login();

function login()
{
$ErrMsg=UserCheck();
if($ErrMsg!="")echo $ErrMsg;
//后面加上显示你的登陆表单的代码 如
?>
<form action=login.php?act=login method=post>
用户名:
密码:

}//end function

function logout()//登出
{
$passportkey="1234567890";//这里换成你论坛通行证设置的passportkey
$auth=$_COOKIE['auth'];
setcookie("auth", "",time() - 3600);
$forward=$_GET['forward'];
if($forward=="")$forward="../../index.php";//这里换成你的主页绝对地址或相对地址
$verify = md5('logout'.$auth.$forward.$passportkey);
$auth=rawurlencode($auth);
$forward=rawurlencode($forward);
header("Location: bbs/api/passport.php?action=logout&auth;=$auth&forward;=$forward&verify;=$verify");
}

function UserCheck()
{
$passportkey="1234567890";//这里换成你论坛通行证设置的passportkey

    //===========验证输入=====================  
    if(!isset($_POST['submit'])) return; // login表单的按钮需要与此同名  
    $usnm=$_POST['username'];//username换成你登陆表单里的用户名域                          
    $pwd=$_POST['password'];//password换成你登陆表单里的密码域                          
    if($usnm=="") return "请输入用户名!";  
    if($pwd=="") return "请输入密码!";  

    //=========数据库处理==========================  
    $db=mysql_connect("localhost", "root", "");  
    mysql_select_db("your_db_name");  

$sql="Select * from user where UserName='".$usnm."' Limit 1";
$rs = mysql_query($sql,$db) ;
$row = mysql_fetch_array($rs);
if(!$row)return "该用户不存在";
if($row["Pwd"]!=md5($pwd))return "密码错误";
mysql_free_result($rs);

    //==============header到bbs=====================          
    $member = array  
    (  
                    'time'     => time(),  
                    'username' => $row["UserName"],  
                    'password' => $row["Pwd"],  
                    'email'    => $row["Email"]  
    );  
    $auth = passport_encrypt(passport_encode($member), $passportkey);  
    setcookie("auth",$auth,($_POST["Cookie"]? time()+(int)$_POST["Cookie"] :0));  
    $forward=$_POST['forward'];  
    if($forward=="")$forward="../../index.php";                                          
    $verify = md5('login'.$auth.$forward.$passportkey);  
    $auth=rawurlencode($auth);  
    $forward=rawurlencode($forward);  
    header("Location: bbs/api/passport.php?action=login&auth;=$auth&forward;=$forward&verify;=$verify");                       

}

//=============================================================
//=============以下为拷贝过来的函数============================
function passport_encrypt($txt, $key) {
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));
$ctr = 0;
$tmp = '';
for($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
}
return base64_encode(passport_key($tmp, $key));
}

function passport_decrypt($txt, $key) {
$txt = passport_key(base64_decode($txt), $key);
$tmp = '';
for ($i = 0; $i < strlen($txt); $i++) {
$tmp .= $txt[$i] ^ $txt[++$i];
}
return $tmp;
}

function passport_key($txt, $encrypt_key) {
$encrypt_key = md5($encrypt_key);
$ctr = 0;
$tmp = '';
for($i = 0; $i < strlen($txt); $i++) {
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
}
return $tmp;
}

function passport_encode($array) {
$arrayenc = array();
foreach($array as $key => $val) {
$arrayenc[] = $key.'='.urlencode($val);
}
return implode('&', $arrayenc);

}
//=========================================================================
//===========================拷贝结束======================================
?>

第二篇:php168 v3.5与discuz v4.10的整合
168整站 与 discuz的passport整合

php168整站v3.5与discuz v4.1.0的整合(带视频)

使用说明
请注意自己所用的程序的版本号
login.php 登陆和退出的整合
register.php 注册的整合

整合前请先核对一下你使用的php168的login.php 和 register.php 是否和 整合文件.rar中[原文件] 文件夹下的文件相同
如果不同..请不要整合

(一)准备工作
1.下载php168 v3.5
2.下载discuz bbs v4.1.0

(二)安装和整合 (请参考视频安装)

1.安装php168 v3.5 (如已安装 到第2步) (如何安装请参考php168的安装说明)
2.进入php168的后台管理界面关闭168的论坛整合功能 (新安装可跳过)
3.在php168的安装目录下建立名称为bbs的文件夹
4.下载安装discuz bbs v4.1.0的upload/下的所有文件拷贝到bbs文件夹下
5.运行discuz bbs的install.php 进行安装
6.到discuz的后台管理设置开启通行证
具体参数如下
启用通行证: 是
应用程序 URL 地址: http://localhost/php168/ 根据具体情况设置
通行证私有密匙: 1234567890 (如果这里改了..两个整合文件中的$passportkey的值也必须改成相同的值)
验证字串有效期(秒): 3600
应用程序注册地址: register.php
应用程序登录地址: login.php
应用程序退出地址: login.php?action=quit
积分同步选项: 不同步积分
7.将整合压缩包中的login.php 和 register.php替换 php168下同名的文件
安装完成

/请保留以下信息,以方便其他网友在整合时遇到问题可以获得更多帮助
//整合贡献者: huozhe3136 疑问请加我qq: 2666556 (提供整合效果的演示)
//视频贡献: 一热心网友
//关于整合的更多内容请访问http://www.discuz.net/thread-304838-1-1.html

程序打包下载地址:http://www.photoxtd.com/chinaylrc/php168_discuz.rar
视频演示下载地址:http://www.photoxtd.com/chinaylrc/php168vcr.rar
apmserv5.12 下载地址: http://down.chinaz.com/s/7558.asp
/tech/uploadfile/200702/20070227023513192.rar

第三篇: asp程序与discuz v4.10的整合方法
1.文件discuz_passport.asp
<%
'请保留以下信息以备出现问题时使用
'贡献者 huozhe3136 QQ:2666556
'=====================================================
'============仿discuz passport编码函数================
'=====================================================

function passport_encrypt(txt, key)
dim encrypt_key, encrypt_key_ary,txt_ary
dim ctr,tmp,i
Randomize
encrypt_key=md5(Int(32000* Rnd),32)
encrypt_key_ary=strtoary(encrypt_key)
txt_ary=strtoary(txt)
ctr = 0
tmp = ""
for i = 0 to StrLength(txt)-1
if ctr=len(encrypt_key) then ctr=0 else ctr=ctr
tmp = tmp & encrypt_key_Ary(ctr) & mxor(txt_ary(i),encrypt_key_ary(ctr))
ctr=ctr+1
next
passport_encrypt=strAnsi2Unicode(base64Encode(passport_key(tmp, key)))
end function

'=====================================================
'============仿discuz passport解码函数================
'=====================================================
function passport_decrypt(txt, key)
Dim txt_ary,tmp,i
txt = passport_key(base64Decode(strUnicode2Ansi(txt)), key)
txt_ary = AnsiToAry(txt)
' 变量初始化
tmp = ""
for i = 0 To lenb(txt)-1
tmp = tmp & mxor(txt_ary(i),txt_ary(i+1))
i=i+1
next
passport_decrypt = strAnsi2Unicode(tmp)
end function

'=====================================================
'==========仿discuz Passport 密匙处理函数=============
'=====================================================
function passport_key(ansitxt, encrypt_key)
dim encrypt_key_tmp,encrypt_key_ary,txt_ary
dim ctr,tmp,i
encrypt_key_tmp = md5(encrypt_key,32)
encrypt_key_ary=StrToAry(encrypt_key_tmp)
txt_ary=AnsiToAry(ansitxt)
ctr = 0
tmp = ""
for i=0 to lenb(ansitxt)-1
if ctr=len(encrypt_key_tmp) then ctr=0 else ctr=ctr
tmp= tmp & mxor(txt_ary(i),encrypt_key_ary(ctr))
ctr=ctr+1
next
passport_key=tmp
end function

'=====================================================
'=================将字符串转换为Ansi数组==============
'=====================================================
function StrToAry(str)
dim ary(),length,tmpstr,i
tmpstr=strUnicode2Ansi(str)
length=lenb(tmpstr)
redim ary(length)
for i=0 to length-1
ary(i)=midb(tmpstr,i+1,1)
next
StrToAry=ary
end function

'=====================================================
'=================将Ansi字符串转换为Ansi数组==========
'=====================================================
function AnsiToAry(str)
dim ary(),length,i
length=lenb(str)
redim ary(length)
for i=0 to length-1
ary(i)=midb(str,i+1,1)
next
AnsiToAry=ary
end function

'=====================================================
'=================异或操作============================
'=====================================================
function mxor(chrb1,chrb2)
if chrb1<>"" and chrb2 <>"" then
mxor=chrb(ascb(chrb1) xor ascb(chrb2))
end if
end function

Function StrLength(str)
ON ERROR RESUME NEXT
Dim WINNT_CHINESE
WINNT_CHINESE = (len("中国")=2)
If WINNT_CHINESE Then
Dim l,t,c
Dim i
l=len(str)
t=l
For i=1 To l
c=asc(mid(str,i,1))
If c<0 Then c=c+65536
If c>255 Then
t=t+1
End If
Next
strLength=t
Else
strLength=len(str)
End If
If err.number<>0 Then err.clear
End Function

%>

2.文件 login.asp

<%
'asp的整合方法已更新,,中文注册乱码问题已解决
'================================================================
'=====================用法示例==疑问加我QQ:2666556===============
'================================================================
dim PassportKey,YourAspWeb_Url,DiscuzBbs_Url
PassportKey="1234567890" '这里换成你discuz论坛通行证设置的passportkey
YourAspWeb_Url="http://localhost/test2/login.asp" '这里换成你的主页绝对地址或相对地址
DiscuzBbs_Url="http://localhost:8080/discuz/" '这里换成你的discuz论坛绝对地址或相对地址

select case request.QueryString("act")
case "login" call login()
case "logout" call logout()
end select

if request.Cookies("username")<>"" then
dim str
str=request.Cookies("username") & " 你好 你已登陆成功" &
" <a href=""t3.asp?act=logout"">点击这里退出登陆" &

" <a href="""& DiscuzBbs_Url & """>点击这里访问论坛
"
response.Write(str)
end if

function logout()
dim auth,forward,verify
auth=request.Cookies("auth")
response.Cookies("username")=""
response.Cookies("auth")=""
forward=request.QueryString("forward")
if forward="" then forward=YourAspWeb_Url
verify = md5("logout"& auth & forward & PassportKey ,32)
auth=server.URLEncode(auth)
forward=server.URLEncode(forward)
response.Redirect(DiscuzBbs_Url & "api/passport.php?action=logout&auth;=" & auth & "&forward;=" & forward & "&verify;=" & verify)
end function

function login()
dim auth,forward,verify,member_info
'需根据实际情况修改,这里只作最简单的验证
if request.Form("username")="admin" and request.Form("password")="123456" then
'设置自己的cookie 或 session
response.Cookies("username")=request.Form("username")

            '========================================================  
            '===============passport 整合开始========================  
            '========================================================  
            '假设从用户数据库里取出email 为abc@hotmail.com  
            member_info="time="  & datediff("s","1970-1-1 00:00:00",now) &_  
                                                    "&username;=" & request.Form("username") &_  
                                                    "&password;=" & md5(request.Form("password"),32) &_  
                                                    "&email;="    & "abc@hotmail.com"    
            auth = passport_encrypt(member_info , PassportKey)                  
            response.Cookies("auth")=auth  
            forward=request.form("forward")   
            if forward="" then forward=YourAspWeb_Url          
            verify = md5("login" & auth & forward & PassportKey,32)  
            auth=server.URLEncode(auth)  
            forward=server.URLEncode(forward)          
            response.Redirect(DiscuzBbs_Url & "api/passport.php?action=login&auth;=" & auth & "&forward;=" & forward & "&verify;=" & verify)                          
            '========================================================  
            '===============passport 整合结束========================  
            '========================================================  

    else  
                    response.Write("登陆失败<br>")  
    end if  

end function

%>

用户名:
密 码:
">    

/tech/uploadfile/200702/20070227024221846.rar

第四篇 :Asp整合实例-PowerEasy2006 SP2普及版 与 discuz v4.10的整合

PowerEasy下载地址:http://www.powereasy.net/Soft/PE_soft/181.html

步骤1:
下载安装powerEasy,下载安装discuz v4.10

步骤2:
将user_chklogin.asp 覆盖到 powereasy安装根目录/user/user_chklogin.asp
将user_logout.asp 覆盖到 powereasy安装根目录/user/user_logout.asp
将user_regpost.asp 覆盖到 powereasy安装根目录/reg/user_regpost.asp
拷贝discuz_passport文件夹到Powereasy安装根目录

步骤3: 修改discuz_passport里的config.asp文件部分变量
Discuz_PassportKey="1234567890" '这里换成你discuz论坛通行证设置的passportkey
Discuz_YourAspWeb_Url="http://localhost:8080/" '这里换成你的主页绝对地址或相对地址
Discuz_Bbs_Url="http://localhost/discuz/" '这里换成你的discuz论坛绝对地址或相对地址

步骤4:
到discuz论坛后台通行证设置开启通行证
启用通行证: 是
应用程序 URL 地址: http://localhost:8080/ '这里换成你的主页绝对地址或相对地址
通行证私有密匙: 1234567890 '这里必须与Discuz_Passportkey的值相同
验证字串有效期(秒): 3600
应用程序注册地址: Reg/User_Reg.asp
应用程序登录地址: index.asp
应用程序退出地址: User/User_Logout.asp
具体请参照论坛设置图片

第五篇 主站与discuz同服务器无需Passport的整合方法

<?php
//discuz同服务器下无passport登陆整合方法
//贡献:huozhe3136 QQ:2666556
//假设discuz安装在网站根目录下的bbs/中
//用法事例
error_reporting(E_ALL);

$path_bbs="bbs/";//请修改为你的论坛的相对路径
$check_username="admin";//测试时这个用户名必须在论坛里也存在
$check_password="123456";
define('IN_DISCUZ', TRUE);//为了包含discuz下的文件这个必须定义
require_once "$path_bbs/config.inc.php";//获得论坛数据库的配置
require_once "$path_bbs/include/db_mysql.class.php";

if(@$_GET[act]=="logout"){
foreach ($_COOKIE as $key => $value) {
setcookie($key,'',time() - 3600,$cookiepath,$cookiedomain,0);
header("Location:".$_SERVER['PHP_SELF']);
}
}
if(isset($_POST["submit"])){//检查是否点击了提交按钮
$username=trim($_POST['username']);
$pwd=trim($_POST['password']);
//主站验证登陆,为简单起见,这里只作简单的示范
if($username==$check_username && $pwd==$check_password){//测试时这个用户名必须在论坛里也存在
$db = new dbstuff;
$db->connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect);//$dbhost,$dbuser,$dbpw,$dbname,$pconnect是在bbs/config.inc.php里定义的变量
$sql="select * from {$tablepre}members where username='$username'";
$rs = $db->query($sql);
if($dzmember = $db->fetch_array($rs)){
setcookie('myusername',$username,time()+3600,$cookiepath,$cookiedomain,0);//设置主站自身的cookie
setcookie("{$tablepre}sid",'',time() - 3600,$cookiepath,$cookiedomain,0);//让discuz的sid过期是为了让discuz重新分配一个新的sid
setcookie("{$tablepre}auth", authcode("$dzmember[password]\t$dzmember[secques]\t$dzmember[uid]", 'ENCODE'),time()+3600,$cookiepath,$cookiedomain,0);//$cookiepath和$cookiedomainbbs/config.inc.php里定义的变量
header("Location:".$_SERVER['REQUEST_URI']);
}
}
}

//下面这个函数是discuz的用户cookie编码函数,已修改,原型在$path_bbs/include/global.func.php
function authcode($string, $operation) {
global $_SERVER, $_DCACHE,$path_bbs;
require_once "$path_bbs/forumdata/cache/cache_settings.php";//需要获取论坛的authkey
$discuz_auth_key = md5($_DCACHE['settings']['authkey'].$_SERVER['HTTP_USER_AGENT']);
$coded = '';
$keylength = strlen($discuz_auth_key);
$string = $operation == 'DECODE' ? base64_decode($string) : $string;
for($i = 0; $i < strlen($string); $i += $keylength) {
$coded .= substr($string, $i, $keylength) ^ $discuz_auth_key;
}
$coded = $operation == 'ENCODE' ? str_replace('=', '', base64_encode($coded)) : $coded;
return $coded;
}
?>
<?php
if(@$_COOKIE['myusername']==''){
?>

用户名:测试用户名为admin,请更改为你的用户名
密码:测试密码为123456
请到论坛检查登陆
退出登陆 "); ?>

第六篇 C#与discuz5.0的整合实例

using System;
using System.Security.Cryptography;
using System.Text;

///


/// c#与discuz的passport整合事例
/// 请保留以下信息以备出现问题时使用
/// 整合贡献:huozhe3136 QQ:2666556
/// 调试工具:Microsoft Visual Web Developer 2005
///

public partial class _Default : System.Web.UI.Page {
//------------------------需要修改的设置---------------------------------
string webUrl = "http://localhost:1627/webapp/Default.aspx";//这里修改为你的测试主站的地址,不要缺少最后的'/'号
string dzUrl = "http://localhost:8080/discuz/";//这里修改为你的dz地址,不要缺少最后的'/'号
string dzPassportKey = "1234567890";//这里修改为你的dz后台通行证设置里的possportkey
string dzForward = "";
string dzAuth = "";
string dzVerify = "";

protected void Page_Load(object sender, EventArgs e){  
    dzForward = Request.QueryString["forward"];  
    if (Request.QueryString["act"] == "logout") logout();  
    if(Session["username"]!=null) Response.Write(Session["username"].ToString()+ "登陆成功! <a href=\"default.aspx?act=logout\">点击这里退出登陆</a> <a href="+dzUrl+" target=_blank>访问论坛</a><br>");  
}

protected void logout(){  
    Session["username"] = null;  
    dzForward           = Request.QueryString["forward"];//获取返回地址  
    if (dzForward == "") dzForward = webUrl;//如果返回地址为空,则返回设置的页  
    dzVerify            = md5("logout" + dzForward + dzPassportKey);  
    dzForward           = Server.UrlEncode(dzForward);  
    Response.Redirect(dzUrl + "api/passport.php?action=logout&auth;=&forward;=" + dzForward + "&verify;=" + dzVerify);  

}


protected void Button1_Click(object sender, EventArgs e){  
    string postUsername;  
    string postPwd;  
    postUsername        = username.Text.ToString().Trim();  
    postPwd             = password.Text.ToString(); 

    if(postUsername=="admin" && postPwd=="123456"){  
        Session["username"]=postUsername;//设置主站自身的cookie或session;

        //---------------------------passport注册或登陆整合开始-----------------------------  
        string memberInfo = "username=" + postUsername  
                    \+ "&password;=" + md5(postPwd)  
                    \+ "&time;="+ time()//获取当前时间与格林威治的秒差  
                    \+ "&email;="+"abc@abc.com";//需要email的值,实际整合通常情况是从数据库里获取用户email  
        dzAuth          = passport_encrypt(memberInfo , dzPassportKey);  
        dzForward       = forward.Value.ToString().Trim();//获取返回地址  
        if(dzForward=="") dzForward = webUrl;//如果返回地址为空,则返回设置的页  
        dzVerify        = md5("login" + dzAuth + dzForward + dzPassportKey);  
        dzAuth          = Server.UrlEncode(dzAuth);  
        dzForward       = Server.UrlEncode(dzForward);  
        Response.Redirect(dzUrl + "api/passport.php?action=login&auth;=" + dzAuth + "&forward;=" + dzForward + "&verify;=" + dzVerify);  
        //---------------------------passport注册或登陆整合结束-----------------------------  
    }else Response.Write("登陆失败<br>");  
}


//------------------------------------以下为一些关键函数------------------------------  
// 将字符串转换为byte数组       
public byte[] strToByteAry(string str){  
    return Encoding.Default.GetBytes(str);  
}  

// c# dz通信证编码函数
public string passport_encrypt(string txt, string key){
byte[] randomNumber = new byte[1];
RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider();
Gen.GetBytes(randomNumber);
int rand = Convert.ToInt32(randomNumber[0]);
string encrypt_key = md5(rand.ToString());

    byte[] txtAry = strToByteAry(txt);  
    byte[] encryAry = strToByteAry(encrypt_key);  
    int j = 0;  
    int ctr = 0;  
    byte[] tmp = new byte[2 * txtAry.Length];  
    for (int i = 0; i < txtAry.Length; i++)  
    {  
        ctr = ctr == encryAry.Length ? 0 : ctr;  
        tmp[j++] = encryAry[ctr];  
        tmp[j++] = xor(txtAry[i], encryAry[ctr++]);  
    }  
    return Convert.ToBase64String(passport_key(tmp, key));  
}


// c# dz通行证解码函数  
public string passport_decrypt(string txt, string key){  
    byte[] t = Convert.FromBase64String(txt);  
    byte[] btxt = passport_key(t, key);  
    byte[] btmp = new byte[btxt.Length];  
    int j = 0;  
    for (int i = 0; i < btxt.Length; i++, j++)  
        btmp[j] = xor(btxt[i], btxt[++i]);  
    return Encoding.Default.GetString(btmp);  
}



// c# dz通行证密匙处理函数      
public byte[] passport_key(byte[] btxt, string key){  
    key = md5(key);  
    byte[] keyAry = strToByteAry(key);  
    int ctr = 0;  
    byte[] tmp = new byte[btxt.Length];  
    for (int i = 0; i < btxt.Length; i++){  
        ctr = (ctr == keyAry.Length) ? 0 : ctr;  
        tmp[i] = xor(btxt[i], keyAry[ctr++]);  
    }  
    return tmp;  
}


// 针对byte的异或       
public byte xor(byte a, byte b){  
    return Convert.ToByte(a ^ b);  
}  

// 获取UNIX时间戳      
public string time(){  
    DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));  
    DateTime dtNow = DateTime.Parse(DateTime.Now.ToString());  
    TimeSpan toNow = dtNow.Subtract(dtStart);  
    string timeStamp = toNow.Ticks.ToString();  
    timeStamp = timeStamp.Substring(0, timeStamp.Length - 7);  
    return timeStamp;  
}


// md5加密  
public string md5(string str){  
    MD5 md5Hasher = MD5.Create();  
    string re="";  
    byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(str));  
    for (int i = 0; i < data.Length; i++)  
        re += data[i].ToString("x2");          
    return re;  
}  

}

/tech/uploadfile/200702/20://www.tenwe.com/tech/uploadfile/200702/20070227024435342.rar" target=_blank>/tech/uploadfile/200702/20070227024435342.rar

070227024435342.rar

 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:1年以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:1年以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:1年以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:1年以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:1年以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:1年以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:1年以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:1年以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:1年以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:1年以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:1年以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:1年以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:1年以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:1年以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:1年以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:1年以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:1年以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:1年以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:1年以前  |  398次阅读  |  详细内容 »
 相关文章
PHP分页显示制作详细讲解 5年以前  |  5012次阅读
Discuz! Passport 通行证整合 5年以前  |  4745次阅读
Apache2 httpd.conf 中文版 5年以前  |  2662次阅读
使用WAMP搭建PHP本地开发环境 5年以前  |  2640次阅读
 目录