ホームページ CMS チュートリアル PHPCMS phpcms で WeChat ログインを実装する方法

phpcms で WeChat ログインを実装する方法

Mar 09, 2023 am 09:33 AM
微信 phpcms

Wechat ログインを実装するための phpcms メソッド: 1. ルート ディレクトリに新しい「wechat.php」を作成します; 2. 「public function wechat() {. ..}」を追加します; 3. wechat 関数を使用します「foreground.class.php」ファイル内で、ユーザーがログインしているかどうかを判断します。

phpcms で WeChat ログインを実装する方法

このチュートリアルの動作環境: Windows 10 システム、phpcms v9 バージョン、DELL G3 コンピューター

WeChat ログインの実装方法phpcmsで?

phpcms は WeChat ログインを実装します (登録不要、直接デポジット)

アイデア: コールバック パラメーター、直接登録 (コードは十分に標準化されていないため、自分で整理します)

ルートで新しいディレクトリ wechat.php を作成します

次の場所にアクセスします: http://www.xxxxxx.cn/wechat.php

コールバック アドレスに注意してください

phpcms WeChat ログインを実装します (登録は必要ありません、直接デポジットします)

wechat.php

<?php
if(!empty( $_GET[&#39;code&#39;]) && !empty( $_GET[&#39;state&#39;])){
    $code = $_GET[&#39;code&#39;];
    $state = $_GET[&#39;state&#39;];
    $url = "http://www.xxxxxx.cn/index.php?m=member&c=index&a=wechat&code=$code&state=$state";
    header(&#39;location:&#39;.$url);
    exit;
}
$appid = &#39;wx5a3878682fa32bd5&#39;;
$url = "https://open.weixin.qq.com/connect/qrconnect?appid=$appid&redirect_uri=http://www.xxxxxx.cn/wechat.php&response_type=code&scope=snsapi_login&state=1&connect_redirect=1#wechat_redirect";
header(&#39;location:&#39;.$url);
?>

\phpcms\modules\member\index.php を追加し、

注: 登録ステータス$status を出力すると、エラー メッセージ変更パラメーターの内容に従ってエラー情報を返すことができます。

ユーザー名とパスワードは単純に区別され、実際の状況に応じて変更されます。メール アドレスは必須フィールドなので、1 つだけ入力してください初期化。

<?php
public function wechat() {
        $this->_session_start();
        //获取用户siteid
        $siteid = isset($_REQUEST[&#39;siteid&#39;]) && trim($_REQUEST[&#39;siteid&#39;]) ? intval($_REQUEST[&#39;siteid&#39;]) : 1;
        //定义站点id常量
        if (!defined(&#39;SITEID&#39;)) {
           define(&#39;SITEID&#39;, $siteid);
        }
        //加载用户模块配置
        //加载用户模块配置
        $member_setting = getcache(&#39;member_setting&#39;);
        if(!$member_setting[&#39;allowregister&#39;]) {
            showmessage(L(&#39;deny_register&#39;), &#39;/login.html&#39;);
        }
        /*----------------------微信获取用户信息------------------------*/
        //换成自己的接口信息
        $code = $_GET[&#39;code&#39;];
        $state = $_GET[&#39;state&#39;];
        $appid = &#39;xxxxxxxx&#39;;
        $appsecret = &#39;xxxxxxxx&#39;;
        if (empty($code)) $this->error(&#39;授权失败&#39;);
        $token_url = &#39;https://api.weixin.qq.com/sns/oauth2/access_token?appid=&#39;.$appid.&#39;&secret=&#39;.$appsecret.&#39;&code=&#39;.$code.&#39;&grant_type=authorization_code&#39;;
        $token = json_decode(file_get_contents($token_url));
        if (isset($token->errcode)) {
            showmessage(L(&#39;<br/><h2>错误信息:</h2>&#39;.$token->errmsg), HTTP_REFERER);
            exit;
        }
        $access_token_url = &#39;https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=&#39;.$appid.&#39;&grant_type=refresh_token&refresh_token=&#39;.$token->refresh_token;
        //转成对象
        $access_token = json_decode(file_get_contents($access_token_url));
        if (isset($access_token->errcode)) {
            showmessage(L(&#39;<br/><h2>错误信息:</h2>&#39;.$access_token->errmsg), HTTP_REFERER);
            exit;
        }
        $user_info_url = &#39;https://api.weixin.qq.com/sns/userinfo?access_token=&#39;.$access_token->access_token.&#39;&openid=&#39;.$access_token->openid.&#39;&lang=zh_CN&#39;;
        //转成对象
        $user_info = json_decode(file_get_contents($user_info_url));
        if (isset($user_info->errcode)) {
            showmessage(L( &#39;<br/><h2>错误信息:</h2>&#39;.$user_info->errmsg), HTTP_REFERER);
            exit;
        }
        $rs =  json_decode(json_encode($user_info),true);//转换成数组
        /*------------------------获取用户信息代码结束-----------------------*/
        header("Cache-control: private");
        $checkname = trim($rs[&#39;nickname&#39;])."_".substr(md5($rs[&#39;unionid&#39;]),0,5) ;
        $this->_init_phpsso();
        $cstatus = $this->client->ps_checkname($checkname);
        //如果存在用户 用户登陆   
        if($cstatus == -4 || $cstatus == -1) {
            $username = $rs[&#39;nickname&#39;]."_".substr(md5($rs[&#39;unionid&#39;]),0,5) ;
            $password = substr(md5($rs[&#39;unionid&#39;]),0,10);
            //is_password($_POST[&#39;password&#39;]) && is_badword($_POST[&#39;password&#39;])==false ? trim($_POST[&#39;password&#39;]) : showmessage(L(&#39;password_format_incorrect&#39;), HTTP_REFERER);
            $cookietime = intval($_POST[&#39;cookietime&#39;]);
            $synloginstr = &#39;&#39;; //同步登陆js代码
            if(pc_base::load_config(&#39;system&#39;, &#39;phpsso&#39;)) {
                $this->_init_phpsso();
                $status = $this->client->ps_member_login($username, $password);
                $memberinfo = unserialize($status);
                if(isset($memberinfo[&#39;uid&#39;])) {
                    //查询帐号
                    $r = $this->db->get_one(array(&#39;phpssouid&#39;=>$memberinfo[&#39;uid&#39;]));
                    if(!$r) {
                        //插入会员详细信息,会员不存在 插入会员
                        $info = array(
                                    &#39;phpssouid&#39;=>$memberinfo[&#39;uid&#39;],
                                    &#39;username&#39;=>$memberinfo[&#39;username&#39;],
                                    &#39;password&#39;=>$memberinfo[&#39;password&#39;],
                                    &#39;encrypt&#39;=>$memberinfo[&#39;random&#39;],
                                    &#39;email&#39;=>$memberinfo[&#39;email&#39;],
                                    &#39;regip&#39;=>$memberinfo[&#39;regip&#39;],
                                    &#39;regdate&#39;=>$memberinfo[&#39;regdate&#39;],
                                    &#39;lastip&#39;=>$memberinfo[&#39;lastip&#39;],
                                    &#39;lastdate&#39;=>$memberinfo[&#39;lastdate&#39;],
                                    &#39;groupid&#39;=>$this->_get_usergroup_bypoint(),    //会员默认组
                                    &#39;modelid&#39;=>10,  //普通会员
                                    );
                        //如果是connect用户
                        if(!empty($_SESSION[&#39;connectid&#39;])) {
                            $userinfo[&#39;connectid&#39;] = $_SESSION[&#39;connectid&#39;];
                        }
                        if(!empty($_SESSION[&#39;from&#39;])) {
                            $userinfo[&#39;from&#39;] = $_SESSION[&#39;from&#39;];
                        }
                        unset($_SESSION[&#39;connectid&#39;], $_SESSION[&#39;from&#39;]);
                        $this->db->insert($info);
                        unset($info);
                        $r = $this->db->get_one(array(&#39;phpssouid&#39;=>$memberinfo[&#39;uid&#39;]));
                    }
                    $password = $r[&#39;password&#39;];
                    $synloginstr = $this->client->ps_member_synlogin($r[&#39;phpssouid&#39;]);
                } else {
                    if($status == -1) {    //用户不存在
                        showmessage(L(&#39;user_not_exist&#39;), &#39;/login.html&#39;);
                    } elseif($status == -2) { //密码错误
                        showmessage(L(&#39;password_error&#39;), &#39;/login.html&#39;);
                    } else {
                        showmessage(L(&#39;login_failure&#39;), &#39;/login.html&#39;);
                    }
                }
            } else {
                //密码错误剩余重试次数
                $this->times_db = pc_base::load_model(&#39;times_model&#39;);
                $rtime = $this->times_db->get_one(array(&#39;username&#39;=>$username));
                if($rtime[&#39;times&#39;] > 4) {
                    $minute = 60 - floor((SYS_TIME - $rtime[&#39;logintime&#39;]) / 60);
                    showmessage(L(&#39;wait_1_hour&#39;, array(&#39;minute&#39;=>$minute)));
                }
                //查询帐号
                $r = $this->db->get_one(array(&#39;username&#39;=>$username));
                if(!$r) showmessage(L(&#39;user_not_exist&#39;),&#39;/login.html&#39;);
                //验证用户密码
                $password = md5(md5(trim($password)).$r[&#39;encrypt&#39;]);
                if($r[&#39;password&#39;] != $password) {                
                    $ip = ip();
                    if($rtime && $rtime[&#39;times&#39;] < 5) {
                        $times = 5 - intval($rtime[&#39;times&#39;]);
                        $this->times_db->update(array(&#39;ip&#39;=>$ip, &#39;times&#39;=>&#39;+=1&#39;), array(&#39;username&#39;=>$username));
                    } else {
                        $this->times_db->insert(array(&#39;username&#39;=>$username, &#39;ip&#39;=>$ip, &#39;logintime&#39;=>SYS_TIME, &#39;times&#39;=>1));
                        $times = 5;
                    }
                    showmessage(L(&#39;password_error&#39;, array(&#39;times&#39;=>$times)), &#39;/login.html&#39;, 3000);
                }
                $this->times_db->delete(array(&#39;username&#39;=>$username));
            }
            //如果用户被锁定
            if($r[&#39;islock&#39;]) {
                showmessage(L(&#39;user_is_lock&#39;));
            }
            $userid = $r[&#39;userid&#39;];
            $groupid = $r[&#39;groupid&#39;];
            $username = $r[&#39;username&#39;];
            $nickname = empty($r[&#39;nickname&#39;]) ? $username : $r[&#39;nickname&#39;];
            $updatearr = array(&#39;lastip&#39;=>ip(), &#39;lastdate&#39;=>SYS_TIME);
            //vip过期,更新vip和会员组
            if($r[&#39;overduedate&#39;] < SYS_TIME) {
                $updatearr[&#39;vip&#39;] = 0;
            }       
            //检查用户积分,更新新用户组,除去邮箱认证、禁止访问、游客组用户、vip用户,如果该用户组不允许自助升级则不进行该操作        
            if($r[&#39;point&#39;] >= 0 && !in_array($r[&#39;groupid&#39;], array(&#39;1&#39;, &#39;7&#39;, &#39;8&#39;)) && empty($r[vip])) {
                $grouplist = getcache(&#39;grouplist&#39;);
                if(!empty($grouplist[$r[&#39;groupid&#39;]][&#39;allowupgrade&#39;])) {   
                    $check_groupid = $this->_get_usergroup_bypoint($r[&#39;point&#39;]);
                    if($check_groupid != $r[&#39;groupid&#39;]) {
                        $updatearr[&#39;groupid&#39;] = $groupid = $check_groupid;
                    }
                }
            }
            //如果是connect用户
            if(!empty($_SESSION[&#39;connectid&#39;])) {
                $updatearr[&#39;connectid&#39;] = $_SESSION[&#39;connectid&#39;];
            }
            if(!empty($_SESSION[&#39;from&#39;])) {
                $updatearr[&#39;from&#39;] = $_SESSION[&#39;from&#39;];
            }
            unset($_SESSION[&#39;connectid&#39;], $_SESSION[&#39;from&#39;]);
            $this->db->update($updatearr, array(&#39;userid&#39;=>$userid));
            if(!isset($cookietime)) {
                $get_cookietime = param::get_cookie(&#39;cookietime&#39;);
            }
            $_cookietime = $cookietime ? intval($cookietime) : ($get_cookietime ? $get_cookietime : 0);
            $cookietime = $_cookietime ? SYS_TIME + $_cookietime : 0;
            $phpcms_auth = sys_auth($userid."\t".$password, &#39;ENCODE&#39;, get_auth_key(&#39;login&#39;));
            param::set_cookie(&#39;auth&#39;, $phpcms_auth, $cookietime);
            param::set_cookie(&#39;_userid&#39;, $userid, $cookietime);
            param::set_cookie(&#39;_username&#39;, $username, $cookietime);
            param::set_cookie(&#39;_groupid&#39;, $groupid, $cookietime);
            param::set_cookie(&#39;_nickname&#39;, $nickname, $cookietime);
            //print_r($_COOKIE);
            //exit;
            //param::set_cookie(&#39;cookietime&#39;, $_cookietime, $cookietime); 
            //https 与 http 传递用户名   跨域跳转cooike
            $forward = isset($_POST[&#39;forward&#39;]) && !empty($_POST[&#39;forward&#39;]) ? urldecode($_POST[&#39;forward&#39;]) : &#39;index.php?m=member&c=index&#39;;
            $url = "http://www.zhiliaoke.com.cn/set_cookie_www.php?nickname=".$_COOKIE[&#39;vuGYB__nickname&#39;]."&username=".$_COOKIE[&#39;vuGYB__username&#39;]."&userid=".$_COOKIE[&#39;vuGYB__userid&#39;]."&groupid=".$_COOKIE[&#39;vuGYB__groupid&#39;];
            header("Location: ".$url.""); 
        } 
        //如果不存在用户注册
            $userinfo = array();
            $userinfo[&#39;encrypt&#39;] = create_randomstr(6);
            $userinfo[&#39;username&#39;] = $rs[&#39;nickname&#39;]."_".substr(md5($rs[&#39;unionid&#39;]),0,5) ;
            $userinfo[&#39;nickname&#39;] = $rs[&#39;nickname&#39;]."_".substr(md5($rs[&#39;unionid&#39;]),0,5) ;
            $userinfo[&#39;email&#39;] = time().&#39;@yangpeili.com&#39;;
            $userinfo[&#39;password&#39;] = substr(md5($rs[&#39;unionid&#39;]),0,10);
            $userinfo[&#39;modelid&#39;] = isset($_POST[&#39;modelid&#39;]) ? intval($_POST[&#39;modelid&#39;]) : 10;
            $userinfo[&#39;regip&#39;] = ip();
            $userinfo[&#39;point&#39;] = $member_setting[&#39;defualtpoint&#39;] ? $member_setting[&#39;defualtpoint&#39;] : 0;
            $userinfo[&#39;amount&#39;] = $member_setting[&#39;defualtamount&#39;] ? $member_setting[&#39;defualtamount&#39;] : 0;
            $userinfo[&#39;regdate&#39;] = $userinfo[&#39;lastdate&#39;] = SYS_TIME;
            $userinfo[&#39;siteid&#39;] = $siteid;
            $userinfo[&#39;connectid&#39;] = isset($_SESSION[&#39;connectid&#39;]) ? $_SESSION[&#39;connectid&#39;] : &#39;&#39;;
            $userinfo[&#39;from&#39;] = isset($_SESSION[&#39;from&#39;]) ? $_SESSION[&#39;from&#39;] : &#39;&#39;;
            //手机强制验证
            //附表信息验证 通过模型获取会员信息
            if($member_setting[&#39;choosemodel&#39;]) {
                require_once CACHE_MODEL_PATH.&#39;member_input.class.php&#39;;
                require_once CACHE_MODEL_PATH.&#39;member_update.class.php&#39;;
                $member_input = new member_input($userinfo[&#39;modelid&#39;]);     
                $_POST[&#39;info&#39;] = array_map(&#39;new_html_special_chars&#39;,$_POST[&#39;info&#39;]);
                $user_model_info = $member_input->get($_POST[&#39;info&#39;]);                                       
            }
            if(pc_base::load_config(&#39;system&#39;, &#39;phpsso&#39;)) {
                $this->_init_phpsso();
                $status = $this->client->ps_member_register($userinfo[&#39;username&#39;], $userinfo[&#39;password&#39;], $userinfo[&#39;email&#39;], $userinfo[&#39;regip&#39;], $userinfo[&#39;encrypt&#39;]);
                echo $status;
                if($status > 0) {
                    $userinfo[&#39;phpssouid&#39;] = $status;
                    //传入phpsso为明文密码,加密后存入phpcms_v9
                    $password = $userinfo[&#39;password&#39;];
                    $userinfo[&#39;password&#39;] = password($userinfo[&#39;password&#39;], $userinfo[&#39;encrypt&#39;]); 
                    $userid = $this->db->insert($userinfo, 1);
                    if($member_setting[&#39;choosemodel&#39;]) {   //如果开启选择模型
                        $user_model_info[&#39;userid&#39;] = $userid;
                        //插入会员模型数据
                        $this->db->set_model($userinfo[&#39;modelid&#39;]);
                        $this->db->insert($user_model_info);
                    }
                    if($userid > 0) {
                        //执行登陆操作
                        if(!$cookietime) $get_cookietime = param::get_cookie(&#39;cookietime&#39;);
                        $_cookietime = $cookietime ? intval($cookietime) : ($get_cookietime ? $get_cookietime : 0);
                        $cookietime = $_cookietime ? TIME + $_cookietime : 0;
                        if($userinfo[&#39;groupid&#39;] == 7) {
                            param::set_cookie(&#39;_username&#39;, $userinfo[&#39;username&#39;], $cookietime);
                            param::set_cookie(&#39;email&#39;, $userinfo[&#39;email&#39;], $cookietime);                           
                        } else {
                            $phpcms_auth = sys_auth($userid."\t".$userinfo[&#39;password&#39;], &#39;ENCODE&#39;, get_auth_key(&#39;login&#39;));
                            //$this->db->update(array(&#39;groupid&#39;=> "6"), array(&#39;userid&#39;=>$userid));
                            $sql = "UPDATE `v9_member` SET `groupid`=&#39;6&#39; WHERE `userid` = $userid ";//修改用户级别为注册用户
                            mysql_query($sql);
                            param::set_cookie(&#39;auth&#39;, $phpcms_auth, $cookietime);
                            param::set_cookie(&#39;_userid&#39;, $userid, $cookietime);
                            param::set_cookie(&#39;_username&#39;, $userinfo[&#39;username&#39;], $cookietime);
                            param::set_cookie(&#39;_nickname&#39;, $userinfo[&#39;nickname&#39;], $cookietime);
                            param::set_cookie(&#39;_groupid&#39;, $userinfo[&#39;groupid&#39;], $cookietime);
                            param::set_cookie(&#39;cookietime&#39;, $_cookietime, $cookietime);
                            $forward = isset($_POST[&#39;forward&#39;]) && !empty($_POST[&#39;forward&#39;]) ? urldecode($_POST[&#39;forward&#39;]) : &#39;index.php?m=member&c=index&#39;;
                            //https 与 http 传递用户名   跨域跳转cooike
                            $url = "http://www.zhiliaoke.com.cn/set_cookie_www.php?nickname=".$_COOKIE[&#39;vuGYB__nickname&#39;]."&username=".$_COOKIE[&#39;vuGYB__username&#39;]."&userid=".$_COOKIE[&#39;vuGYB__userid&#39;]."&groupid=".$_COOKIE[&#39;vuGYB__groupid&#39;];
                            header("Location: ".$url.""); 
                        }
                    }
                }
            } else {
                showmessage(L(&#39;enable_register&#39;).L(&#39;enable_phpsso&#39;), &#39;/login.html&#39;);
            }
            showmessage(L(&#39;operation_failure&#39;), HTTP_REFERER);
        }
?>

追加の最後のステップ

は非常に重要ですが、無視するのが最も簡単です。 ! !

何人かがここで立ち往生しています!

phpcms\modules\member\classes\foreground.class.php ファイルの 21 行目あたりで、ユーザーが wechat 機能を介してログインしているかどうかを判断する必要があります

phpcms で WeChat ログインを実装する方法

##PHP 中国語 Web サイト、多数の無料

PHPCMS チュートリアル 、オンライン学習へようこそ!

以上がphpcms で WeChat ログインを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

通貨サークルでの最新ニュースアプリのランキングの推奨事項(2025年の権威あるリリース) 通貨サークルでの最新ニュースアプリのランキングの推奨事項(2025年の権威あるリリース) Apr 21, 2025 pm 09:33 PM

最高の暗号通貨取引および分析プラットフォームには、次のものが含まれます。1。OKX:トレーディングボリュームの世界のナンバーワン、複数のトランザクションをサポートし、AI市場分析とチェーン上のデータ監視を提供します。 2。Binance:世界最大の交換、詳細な市場条件と新しい通貨の初めての提供を提供します。 3。SESAMEオープンドア:スポット取引とOTCチャネルで知られている、自動取引戦略を提供します。 4。CoinMarketCap:20,000通貨をカバーする権威ある市場データプラットフォーム。 5。COINGECKO:コミュニティの感情分析で知られることは、DefiおよびNFTトレンドの監視を提供します。 6。非小口座:国内の市場プラットフォーム。Aシェアと通貨市場の間の連携の分析を提供します。 7。オンチェーンファイナンス:ブロックチェーンニュースに焦点を当て、毎日詳細なレポートを更新します。 8。ゴールデンファイナンス:24小

Tiktok Webバージョン入学ログインリンクアドレスhttps tiktok webバージョン入学ウェブサイト無料 Tiktok Webバージョン入学ログインリンクアドレスhttps tiktok webバージョン入学ウェブサイト無料 May 22, 2025 pm 04:24 PM

Douyin Webバージョンのログインポータルはhttps://www.douyin.com/です。ログイン手順には次のものが含まれます。1。ブラウザを開きます。 2。URLを入力してくださいhttps://www.douyin.com/; 3. [ログイン]ボタンをクリックして、ログインメソッドを選択します。 4.アカウントのパスワードを入力します。 5。完全にログインします。 Webバージョンは、ブラウジング、検索、インタラクション、ビデオのアップロード、個人用ホームページ管理などの機能を提供し、大画面エクスペリエンス、マルチタスク、便利なアカウント管理、データ統計などの利点があります。

これらのC2Cトランザクションはバイナンスのリスクがありますか? これらのC2Cトランザクションはバイナンスのリスクがありますか? Apr 30, 2025 pm 06:54 PM

Binance C2Cトランザクションにより、ユーザーは暗号通貨を直接売買し、カウンターパーティ、支払い、価格の変動のリスクに注意を払うことができます。高クレジットユーザーを選択して安全な支払い方法を選択すると、リスクを減らすことができます。

コピーコミック(公式ウェブサイトの入り口)_COPYコミック(NBA)本物のオンライン読書ポータル コピーコミック(公式ウェブサイトの入り口)_COPYコミック(NBA)本物のオンライン読書ポータル Jun 05, 2025 pm 04:12 PM

コミックのコピーは間違いなく見逃せない宝物です。ここでは、情熱的で刺激的な競争力のあるストーリーからリラックスしたユーモラスな毎日のコメディまで、さまざまなスタイルのバスケットボールコミックを見つけることができます。クラシックを追体験したいか、新しい作品を発見したいかにかかわらず、漫画をコピーすることであなたのニーズを満たすことができます。 Copy Comicsが提供する本物のオンライン読書ポータルを通じて、海賊版のリソースのトラブルに別れを告げ、高解像度とスムーズな読書体験を楽しんで、お気に入りのコミック作家をサポートし、本物のコミックの発展に貢献できます。

UCブラウザまたはQQブラウザのどちらが良いですか? UCおよびQQブラウザーの詳細な比較と評価 UCブラウザまたはQQブラウザのどちらが良いですか? UCおよびQQブラウザーの詳細な比較と評価 May 22, 2025 pm 08:33 PM

UCブラウザまたはQQブラウザの選択は、ニーズに依存します。1。UCブラウザは、高速負荷とリッチなエンターテイメント機能を追求するユーザーに適しています。 2。QQブラウザは、Tencent製品との安定性とシームレスな接続が必要なユーザーに適しています。

gate.ioセサミドア最新の公式アプリアドレス gate.ioセサミドア最新の公式アプリアドレス Apr 22, 2025 pm 01:03 PM

公式gate.ioアプリは、次の方法でダウンロードできます。1。公式Webサイトgate.ioにアクセスしてダウンロードします。 2。AppStoreまたはGoogle Playで「gate.io」を検索してダウンロードします。安全性を確保するには、公式チャンネルからダウンロードしてください。

トップ10 AIライティングソフトウェアランキングは、どのAIライティングソフトウェアが無料であるかを推奨しています トップ10 AIライティングソフトウェアランキングは、どのAIライティングソフトウェアが無料であるかを推奨しています Jun 04, 2025 pm 03:27 PM

2025年の最新の業界動向と多次元評価データを組み合わせることで、以下は、一般的な創造、学術研究、商業マーケティングなどの主流のシナリオをカバーしながら、中国の最適化とローカリゼーションサービスを考慮しながら、包括的なAIライティングソフトウェアの推奨事項のトップ10です。

無料のコミックについては、NISコミックのオンラインで公式ページをご覧ください。 NIS Comicsログインページの無料エントリWebサイト 無料のコミックについては、NISコミックのオンラインで公式ページをご覧ください。 NIS Comicsログインページの無料エントリWebサイト Jun 12, 2025 pm 08:18 PM

コミック愛好家のために作成することに専念する没入型の読書体験プラットフォームである素敵なコミックは、自宅と海外で多数の高品質のコミックリソースを集めます。コミックリーディングプラットフォームであるだけでなく、コミックアーティストや読者をつなぎ、コミック文化を共有するコミュニティでもあります。 NES Comicsを使用すると、シンプルで直感的なインターフェイスデザインと強力な検索機能を通じて、お気に入りの作品を簡単に見つけて、スムーズで快適な読書体験を楽しむことができます。長い待っていて退屈な作戦に別れを告げ、すぐに素敵な漫画の世界に入り、コミックの旅を始めましょう!

See all articles