投稿者「後藤 祐一」のアーカイブ

後藤 祐一 について

フリーランスとしてWebプログラミングを行っています。 宜しくお願いします。

banggoodでスマホを買ってみた

banggood

スマホについて

いろいろ調べてみてAndroid Snapdragon 855の中華スマホXiaomi K20 Proのグローバル版Mi 9T Proを購入することにしました。

Mi 9T Pro
nanoSIM
Snapdragon 855
ベンチ 約360,000
非防水
有機EL
11ac
USB Type-C(PDで充電)
42,000円(クーポンが謎の1万以上OFFだった)

いつもながら調べすぎなのですがCPUはFFのソシャゲやっているので最新のものを
有機ELは綺麗な画面でファンタジー感を味わいたくて
(画面焼きつくのかな?放置はしないけど焼きつきの報告もちらほら)
11acが使えれば電波干渉はいいかな
モバイルバッテリー等PDで急速充電(3A)できればいいかな

banggoodについて

・世界的に有名なので届かないことはあってもPayPayで返金してくれるとのこと
・問い合わせメールが英語
・商品が届くまで10日~30日かかること
・クレジット決済は海外扱い

クレジットカードが海外で使える設定じゃなかったのでクレカ止められました。
JCBからハガキがきてフリーダイヤルにかけて不正利用じゃないよと説明して本人確認で再度使えるようになりました。
クレカがダメとのことでコンビニ支払いで購入
コンビニ支払いでも返金はPayPayになるとのこと

届くまで

選択できる発送方法では
Air Parcel Register (252円 & 7-20 business days)
EMS Express Mail Service (1,064円 & 7-15 business days)
Air Parcel Registerが一番安かったので選択
遅いらしいけどね!
EMSとか選べば早く到着するみたいです。

保険は何もつけずに購入
Add Shipping Insurance to your order 1,139円
Broken Screen Service 1,094円
てか保険ってなに?届かなかったら返金されるんじゃないの?
途中紛失したり盗まれたら返金しないってことならその商売やりたい!
ガラス割れは今まで物を落としたことがないので平気。
実際割れたとして海外発送で直すの?とても面倒くさそう。
結果保険なしで冒険購入して到着したので疑問が残る。

追跡は17trackってサイトで追跡するらしい
https://www.17track.net/ja

番号:RGXXXXXXXBE
パッケージの状態:配達完了 (13 日)
国:ベルギー -> 日本
目的地:
2019-09-19 11:25, GIFU, OGAKI, 503-8799, Final delivery
2019-09-19 00:00, GIFU, OGAKI, 503-8799, Absence. Attempted delivery.
2019-09-18 14:00, GIFU, OGAKI, 503-8799, Processing at delivery Post Office
2019-09-18 01:00, KANAGAWA, KAWASAKIHIGASHI, 219-8799, Departure from inward office of exchange
2019-09-17 09:00, KANAGAWA, KAWASAKIHIGASHI, 219-8799, Held by import Customs
2019-09-16 18:47, KANAGAWA, KAWASAKIHIGASHI, 219-8799, Arrival at inward office of exchange
2019-09-12 03:38, BELGIUM, BRUSSELS EMC G, Dispatch from outward office of exchange
2019-09-11 19:53, BELGIUM, BRUSSELS EUROPEAN MAIL CENTRE, Arrival at outward office of exchange
発送元:
2019-09-18 14:00, Japan, Arrival distribution office
2019-09-18 01:00, Japan, Departure to distribution network
2019-09-17 09:00, Japan, Awaiting presentation to Customs
2019-09-16 18:47, Japan, Arrival from abroad
2019-09-12 03:38, Belgium, Departure to country of destination
2019-09-11 19:53, Belgium, bpost has received the item
2019-09-06 09:50, Item is announced / bpost received the information
======================================
Powered by www.17track.net

購入日とコンビニ支払いした日は8/30で9/19に無事到着
日本時間で土日祝日はステータスが変わらなかったからbpost(ベルギー郵政)は休みなのかもね。

Windows10 Winキーが押しっぱなしになるのを直す方法

たまに何かのアプリケーションを全画面で表示して終了するとWinキーが押しっぱなしになる問題が発生する。

Winキーが押しっぱなしになる解決策

一番楽で早いのが⊞ Win + XでWinキー押しっぱなし状態から抜けれます。
次に⊞ Win + L でロック画面を表示させてログインし直す方法
これはログインパスワードやPINコードが必要となるため自動ログインに設定している方はパスワードかPINコードが分かる場合のみ利用してください。

テキストなど文字が打てなくなる解決策

原因は多分SteamのGeForce Experienceだと思う。
これは呪いか。それとも罰か。
ニーア
Alt + Zで文字入力が出来るようになります。

追記、私の原因はyamyかもしれない。

summernoteで画像をアップロード

summernoteで画像をアップロードする方法を調べてみたが情報が古く自分で実装したのでまとめ。
画像をアップロードしたらエディタに画像を反映させるところまで解説します。

環境
summernote v0.8.12
XAMPP
PHP 7.3

読み込むファイル

<!-- include libraries(jQuery, bootstrap) -->
<link href="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.css" rel="stylesheet">
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script src="http://netdna.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.js"></script>
<!-- include summernote css/js -->
<link href="summernote-master/dist/summernote.css" rel="stylesheet">
<script src="summernote-master/dist/summernote.min.js"></script>
<script src="summernote-master/dist/lang/summernote-ja-JP.js"></script>

<form method="post" enctype="multipart/form-data" action="">
  <textarea id="summernote" name="editordata"></textarea>
<input type="submit" name="send" value="送信する">

bootstrapはCDNでsummernoteは日本語で読み込んでいます。

画像ファイルのアップロード部

$(document).ready(function() {
    $('#summernote').summernote({
      lang: 'ja-JP',
        height: 200,
        callbacks: {
            onImageUpload: function(files) {
                sendFile(files[0]);
            },
        }
    });
});

function sendFile(file) {
    data = new FormData();
    data.append("file", file);
    $.ajax({
        data: data,
        type: "POST",
        url: "upimg.php",
        cache: false,
        contentType: false,
        processData: false,
    }).done(function(data, textStatus, jqXHR){
        $('#summernote').summernote('insertImage', 'http://localhost/develop.git/img/' + file.name);
    });
}

sendFileに渡すデータはfileだけなのとsummernoteで画像をアップしたらエディタに反映させるのはinsertImageで画像URLを指定しています。
その他は先人の知恵をお借りしました。

upimg.php

    move_uploaded_file($_FILES['file']['tmp_name'], "img/". $_FILES['file']['name']);

画像をアップしているだけなので
ファイル名が重複しないようしたりリサイズなどはこのファイルでするようにしましょう。

Laravel ミドルウェアで独自のログイン機能を実装する

Laravelで二段階認証とか既存のAuthを使わずにミドルウェアでいろいろやったのでまとめ。

環境
Laravel:5.5 LTS

独自のAuthクラスを作成

app/Http/Middleware/Auth.php

<?php

namespace App\Http\Middleware;

use Illuminate\Support\Facades\Redirect;
use Closure;

class Auth
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!session()->has('loginFlg')) {
            return redirect('admin/login');
        }
        return $next($request);
    }
}

セッションのログインフラグが立ってなかったらログイン画面へリダイレクト。

自作したAuthクラスをルートへ登録

app/Http/kernel.php

    /**
     * The application's route middleware.
     *
     * These middleware may be assigned to groups or used individually.
     *
     * @var array
     */
    protected $routeMiddleware = [
//        'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
        'auth' => \App\Http\Middleware\Auth::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
    ];

既存のAuthと名前が被るのでコメントアウトして追加

ルートに対しミドルウェアを指定

routes/web.php

Route::group(['middleware' => ['auth']], function () {
    Route::get('admin/my', 'Admin\MyController@index')
    Route::get('/', function () {
        return view('welcome');
    });
});

管理画面はログインフラグが立ってないとログイン画面にリダイレクトさせたいので管理画面のルートはgroup内に追加していく。
welcomeはログインフラグが立ってない場合ログイン画面にリダイレクトするかのテスト。
myページとwelcomeページにアクセスしてログインフラグが立っていないときちんとリダイレクトしたのでこの書き方でまとめて記載していく。

PHP wkhtmltopdf SnappyでPDF出力

今までTCPDTやmPDFを使ってたのですがHTML5 + CSS3のWebページを丸ごとPDF化する必要がありレイアウトのズレが実装できるレベルじゃなかったのでwkhtmltopdf Snappyを調べました。

環境
Windows10
XAMPP
PHP7.3

require "knp-snappy/vendor/autoload.php";
use Knp\Snappy\Pdf;
$snappy = new Pdf('"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"');
// $snappy->setBinary('"C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe"')
$html = <<<EOF
<style></style>
<p>ここにHTMLを書く</p>
EOF;
// PDFをブラウザに出力
//header("Content-Type: application/pdf");
//echo $snappy->getOutputFromHtml($html);
// 保存
$snappy->generateFromHtml($html, 'download.pdf');

はまった点

setBinaryなどでバイナリのパスを渡すときはコマンド扱いになるのでダブルクォーテーションで囲むのを忘れていてはまりました。