ダークエリア

SEのお仕事の備忘録や、ゲームの話などなどを記事に放り込む!!

javascript jQueryで、フォームの入力を保存する

フォームの入力が毎回マンドクセって時のために作ったjQuery

これをめんどくさがりのワイはF12のコンソールにそのままはっつけちゃう。

function clipboardform() {
  let copystr = "";
  $('[name]').each(function(){
    let namestr = $(this).attr('name').replace('[', '\\\\[').replace(']', '\\\\]');
    if ($(this).attr('type') == 'checkbox' || $(this).attr('type') == 'radio') {
      if ( $(this).is(':checked') ) {
        copystr = copystr + "$('[name="+namestr+"]').filter('[value="+$(this).val()+"]').prop('checked', true);\n";
      }
      return true;
    }
    copystr = copystr + "$('[name="+namestr+"]').val('"+$(this).val()+"');\n";
  });
  let textareatest = $('<textarea></textarea>');textareatest.appendTo('body'); textareatest.val(copystr);textareatest.select();document.execCommand("copy");textareatest.remove();
  true;
};clipboardform();

そうすると最後の行でコピーまでしてるので、クリップボードにそのまま

$('[name=namae]').val('atai'); のリストが出てくるという。

ブックマークにするともっと楽なのかもしれない。(しなさそう~)(後日した)

 

変数名にtestやらstrを使っているのは、id回避。

べ、べつに適当につけたわけじゃないんだからね…っ!

Laravel メールの実装、Gmailを利用

LinuxCentOS7 Laravel6 PHP7

 

メール送信の実装

・envにメールの設定

MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME={gmailアカウント名}@gmail.com
MAIL_PASSWORD={gmailアカウントパスワード}
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS={gmailアカウント名}@gmail.com
MAIL_FROM_NAME="${APP_NAME}"

・Mailクラス作成

php artisan make:mail {クラス名}

・Mailクラス実装、viewの用意

フィールド変数、__constructメソッド、buildメソッドを内容に応じて修正。

また、メール内容をviewに記述。

・メールを送信する処理

Mail::to( $client->mail )->send(new {クラス名}($client));

 

Gmailを使う場合、ここをONにすること

Account settings: Your browser is not supported.

 

Let's Encryptを使ってHTTPをHTTPSにする

・AmazonLinux2

Apache

HTTPSにしてみた。ドメインもらえたからね!

 

下記ページを参考に、certbot-auto certonlyを実行する

Amazon Linux2でLet's Encryptを使う方法

 

しかし、うまくいかない。AuthorizationErrorが起きる。

ログにはunauthorizedDetail: Invalid response from ~と出ていた。

Let's Encrypt 証明書取得時に「Problem binding to port 80: Could not bind to IPv4 or IPv6.」発生時の対処法 | mebee

Apache及びhttpdを起動しているとだめらしいので止める。

systemctl stop httpd

 

実はいろいろ悩んで試行錯誤したのに、これですんなり行った

( 'ω` 、)もう…

 

後はhttpをhttpsに転送する設定

httpからhttpsにリダイレクトする方法と注意点について | キーワードファインダー

httpdのconfで、<VirtualHost *:80>に

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

を入れるよ。

 

はぁ…終わった…サーバと向き合うのつかれぴよ。

LinuxCentOS7再起動したらSamba等々が動かなくなった話

Linux CentOS7初心者が

サーバを再起動したら、いろいろ不具合が起きた。

 

【不具合】

・httpアクセスがうまくいかなくなった

・samba設定しているはずなのに、エクスプローラが見れなくなった

 

【原因】

SELinuxが有効になっていた(無効にする固定設定していなかった)

mysqlが起動していなかった(自動起動を設定してなかった)

 

【対処】

SELinux

 $ sudo vi /etc/selinux/config

 SELINUX=disabled を SELINUX=permissive に変更

mysql

 $ chkconfig mysqld on

 MySQLを自動起動設定にするコマンドの使い方(chkconfig) | ねたこれ

※AmazonLinux2では、コマンドが自動で直される

Note: Forwarding request to 'systemctl enable mysqld.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /usr/lib/systemd/system/mariadb.service.

 

初心ながら、再起動して確認するのも必要だなーとか思ったのであった。

PHPで動画ファイルを変換したい【ffmpeg】

動画のアップロード時、絶対画面に出せるように変換をかけた。

※前提

・AmazonLinux2

・PHP7 Laravel6

 

拡張子多すぎ問題!!!!

みんな平和に再生できればいいのに…(´・ω・`)

 

続きを読む

PHPで画像ファイルを変換したい【ImageMagick】

( ´-`).。oO(マジックのつづり…ckだっけ…?)

※前提

・AmazonLinux2

・PHP7 Laravel6

 

今回、システム開発で画像アップロードを実装したんだけども、

ふつうに想定される拡張子「jpg,jpeg,png,gif」に加え、

iOS11で使っていたらしい「heic」を扱うことに。

 

しかしこのheic(heif、ヒーフ)、、ブラウザ上では表示されないらしい。

 

ならばheic⇒jpgなど変換が必要であろう。

今回本番環境に作成したAmazonLinux2でやってみた。

続きを読む

ファイルアップロードのチェック【ファイルタイプ】

ファイルの種類をチェックしたい。

そのため、最初はサーバ側でバリデーションを実装していたのだけど…

バリデーションが実行されるのは、ファイルがアップロードされてから。

つまりファイルサイズが大きいと、それだけくっそ遅いのだった。。

 

ということで、画面上でチェックする必要があった。下記を参考に実装した。

javascript — jQueryでアップロード時のファイルタイプを制限するにはどうすればよいですか?

 

1.input[type=file]要素の値(.val()や.value)に対して、下記で拡張子を取得

var ext = $('#my_file_field').val().split('.').pop().toLowerCase();

または

var ext = this.value.match(/\.(.+)$/)[1];

2.チェックを実施

if($.inArray(ext, ['gif','png','jpg','jpeg']) == -1)