ウェブサイト – WeChat – バックエンドエラー報告メカニズム [オリジナル]
プロジェクト開発のニーズに基づいて、異常なエラー プロンプト ページやログイン ページに戻った後のバウンス問題など、Web サイト開発における一般的な例外のリマインダーをまとめました。どちらも簡単な対処方法ですが、それぞれに明らかな点があります。不具合や通話トラブルなど。そこで、開発とデモンストレーションの後、Web サイト プロジェクト用のバックエンド エラー報告メカニズムを構築しました。現時点では機能は単一ですが、これは良い方向だと思います。
以下のコードはSymfonyフレームワークに基づいて書かれたソースコードです
呼び出し終了
エラー報告のためのポイント参照メソッド、必要なパラメータを渡してエラー処理プロセスに入る
/** * 异常处理机制 * * @param bool|false $default 是否跳转默认的路由 true真 flase 假 * @param string $message 错误信息 ''自动跳到登录页面 不为空则跳到提示页面 * @param array $data 记录访问此路由的post的参数用于回跳--需要注意的是post提示中不得有文件类型和数组类型否则回调必然会报参数丢失(传参_POST) * @param string $url 默认为空 当defaulet设置为true时此参数生效,用户替换已设置的默认路由 * @param int type 默认为1 1为返回页面 其余则代表返回路由用户ajax请求 * @return \Symfony\Component\HttpFoundation\RedirectResponse */ public function exception_handling($default = false, $message = '', $data = array(), $url = '', $type = 1) { if ($message != '') { //这里的强制处理,是避免程序因为某个参数的丢失陷入死循环 $default = true; } //封装参数 $info = array( 'data' => $data, ); if ($default == true) { //跳转到默认的路由 if ($url == '') { $info['url'] = $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('wx_index');//需要重新设置替换 } else { $info['url'] = $url; } $info['data'] = array(); } else { $http_host = $_SERVER['HTTP_HOST']; $php_self = $_SERVER['PHP_SELF']; $query = $_SERVER['QUERY_STRING']; $info['url'] = 'http://' . $http_host . $php_self; if ($query != '') { $info['url'] .= '?' . $query; } } //对原有的值进行封装 if (!empty($data)) { $i = 0; foreach ($data as $index => $value) { $info['info'][$i]['key'] = $index; $info['info'][$i]['value'] = $value; $i++; } } //将数据序列化打包 unset($info['data']); $info = urlencode(base64_encode(@serialize($info))); if ($message == '') { //跳转到登录页面 if ($type == 1) { return $this->redirect($this->generateUrl('wx_auth_login', array('info' => $info)));//需要重新设置替换 } else { return $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('wx_auth_login', array('info' => $info));//需要重新设置替换 } } else { //跳转到错误页面 if ($type == 1) { return $this->redirect($this->generateUrl('api_wx_other_err', array('message' => $message, 'info' => $info))); //需要重新设置替换 } else { return $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('api_wx_other_err', array('message' => $message, 'info' => $info)); //需要重新设置替换 } } }
受信側の処理メソッド
1: の処理とジャンプルーティング パラメータ情報 転送メソッド [このメソッドは主に、ジャンプバックする必要がある関連ページにログインするために使用されます]
/** * @param $info 报错机制传递来封装参数info * @return string 返回url */ public function login_ok_url($info) { if (!is_array(@unserialize(base64_decode(urldecode($info))))) { $url = $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('wx_index');//需要重新设置替换 默认页 } else { $url = $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('api_wx_other_postJump', array('info' => $info)); //需要重新设置替换 报错回跳处理器 } return $url; }
2: エラー プロンプト ページ ジャンプ ロジック
/** * 错误提示页面 * * @param $message * @param $info * @return \Symfony\Component\HttpFoundation\Response */ public function errAction($message , $info){ //得到传来的post参数用于页面再次提交 $url = $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('api_wx_other_postJump', array('info' => $info)); //回跳按钮上面的字 $info = @unserialize(base64_decode($info)); if(!is_array($info) || $info['url'] == $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('wx_index')) { //需重新配置 $url = $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('wx_index'); $text = '返回首页'; }else{ $text = '返回上一页'; } return $this->render('@Api/Default/wx_message.html.twig',array('data' => array('message' => $message, 'url' => $url ,'text' => $text))); }
エラー コールバック処理コントローラー (コア メソッド) – を逆アセンブルするために使用されます。対応するリクエストのジャンプ
/** * 内部post请求 * * @param $info * @return \Symfony\Component\HttpFoundation\RedirectResponse|Request */ public function postJumpAction($info){ //将数组转换 $info = @unserialize(base64_decode(urldecode($info))); if(!is_array($info)) { $url = $this->get('request')->getSchemeAndHttpHost() . $this->generateUrl('wx_index'); //重新配置 }else{ $url = $info['url']; } if(empty($info['info'])){ return $this->redirect($url); }else{ return $this->render('@Api/Default/postJump.html.twig', array('data' => $info));//重新配置 } }
2 つの重要なテンプレート
1: postJump.html.twig テンプレート – ユーザーはターゲット ルートに post リクエストを再度送信します
<html><head> <meta charset="UTF-8"> <title>正在跳转...</title></head><body><div id = 'hide'><form id="myForm" action= '{{ data.url }}' method="post" > {% for item in data.info %} <input type="hidden" name= "{{ item.key }}" value="{{ item.value }}" > {% endfor %} <input type="submit" id="submit" value="正在跳转..."> </form> </div><script src="{{ asset('js/jquery-1.11.3.min.js') }}"></script><script> $(function () { $('#submit').trigger("click"); })</script></body></html>
2: プロンプト テンプレート wx_message.html.twigコントローラーとそれ自体 プロジェクトの特性をネストして値を返すだけです
data.url 回跳的URl data.message 错误信息 data.text 回跳按钮上的字
より良い提案がある場合は、投稿の下にメッセージを残してください。積極的に耳を傾けます
この記事の永久アドレス: http:/ /blog.it985.com/16380.html
この記事はIT985ブログからのものであり、転載する場合は出典と該当リンクを明記してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











PHPでは、Password_hashとpassword_verify関数を使用して安全なパスワードハッシュを実装する必要があり、MD5またはSHA1を使用しないでください。 1)password_hashセキュリティを強化するために、塩値を含むハッシュを生成します。 2)password_verifyハッシュ値を比較して、パスワードを確認し、セキュリティを確保します。 3)MD5とSHA1は脆弱であり、塩の値が不足しており、最新のパスワードセキュリティには適していません。

PHPタイプは、コードの品質と読みやすさを向上させるためのプロンプトがあります。 1)スカラータイプのヒント:php7.0であるため、基本データ型は、int、floatなどの関数パラメーターで指定できます。 3)ユニオンタイプのプロンプト:PHP8.0であるため、関数パラメーターまたは戻り値で複数のタイプを指定することができます。 4)Nullable Typeプロンプト:null値を含めることができ、null値を返す可能性のある機能を処理できます。

PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

PHPは、多数のWebサイトとアプリケーションをサポートし、フレームワークを通じて開発ニーズに適応するため、近代化プロセスで依然として重要です。 1.PHP7はパフォーマンスを向上させ、新機能を紹介します。 2。Laravel、Symfony、Codeigniterなどの最新のフレームワークは、開発を簡素化し、コードの品質を向上させます。 3.パフォーマンスの最適化とベストプラクティスは、アプリケーションの効率をさらに改善します。

PHPの中心的な利点には、学習の容易さ、強力なWeb開発サポート、豊富なライブラリとフレームワーク、高性能とスケーラビリティ、クロスプラットフォームの互換性、費用対効果が含まれます。 1)初心者に適した学習と使用が簡単。 2)Webサーバーとの適切な統合および複数のデータベースをサポートします。 3)Laravelなどの強力なフレームワークを持っています。 4)最適化を通じて高性能を達成できます。 5)複数のオペレーティングシステムをサポートします。 6)開発コストを削減するためのオープンソース。

phphassiblasifly-impactedwebdevevermentandsbeyondit.1)itpowersmajorplatformslikewordpratsandexcelsindatabase interactions.2)php'sadaptableability allowsitale forlargeapplicationsusingframeworkslikelavel.3)
