ajaxはクロスドメインを許していないのでこうするしかない?わけではないけれど(提供会社による)

ライブドアが提供している天気予報APIをJSだけで
なんとか出来ないかと思ったので試してみたけれど無理でしたので、
一回、PHPで読み込んでその情報を取得するという事で解決。

昔はYahooがそういう事を提供してたみたいですが
提供終了してました。

<div style="display: table;">
        <div style="display: table-cell;">
            今日の天気::<br>
            <img id="weather_0" src="">
        </div>
        <div style="display: table-cell;">
            明日の天気<br>
            <img id="weather_1" src="">
        </div>
    </div>

 

<script>
$(function(){
    $.ajax({
        type: 'GET',
        //'http://weather.livedoor.com/forecast/webservice/json/v1?city=390010',
        url: 'https://zip358.com/weather/',
        data:null,
        dataType: 'json'
    }).done(function(data){
        $("#weather_0").attr("src",data.forecasts["0"].image.url);
        $("#weather_1").attr("src",data.forecasts["1"].image.url);
    });
});
</script>

Standard PHP Library(SPL)というライブラリーには便利な関数が入っている。

The Standard PHP Library (SPL) は、標準的な問題を解決するためのインターフェイスやクラスを集めたものですと公式ページに書かれている通り
便利な関数です。例としてspl_autoload_registerを紹介。
ぐぐるとどんな機能なのか書かれているので割愛してます。

<?php
spl_autoload_register(function($name){
    include __DIR__ . DIRECTORY_SEPARATOR ."class" . DIRECTORY_SEPARATOR . $name . '.php';
});

$class_demo = new class_demo();

ネームスペースの利点はこれだと思っている。

ネームスペースの利点はこれだと思っている。
複数人で開発とかしているときに関数名やクラスなどが
かぶってしまう可能性ある、そういうのを
解決してくれるのがネームスペースということです。

<?php
namespace test\demo;

class test{
    function demo():string
    {
        return "demo1\n";
    }
}

namespace test\demo2;
 
class test{
    function demo():string
    {
        return "demo2\n"; 
    }
  }

 

<?php
include_once "./index-6.php";

$demo = new  test\demo\test();
print $demo->demo();
$demo = new  test\demo2\test();
print $demo->demo();

PHPでバインドするこれでSQLの脆弱性が!?

上記の画像では脆弱性がある。

PHPでバインドするこれでSQLの脆弱性が解決してくれる?
こういう記述すると良さげ。
おまけでSQLデバッグ方法を書いとります。

<?php
$sql =<<<SQL
select * from demo where id = :id and namae = :hoge;
SQL;
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
$id = 123;
$hoge = "hoge";
$sth = $dbh->prepare($sql);
$sth->bindValue(':id', $id, PDO::PARAM_INT);
$sth->bindValue(':hoge', $hoge, PDO::PARAM_STR);
$sth->execute();

//mysql log?https://github.com/panique/pdo-debug:$sth->debugDumpParams();

$fval = array(
    ':id'=>1,
    ':name'=>"hoge"
);
$sth = $dbh->prepare($sql);
$sth->execute($fval);
print PdoDebugger::show($sql, $fval);
$sth->debugDumpParams();

windows10 1809 不具合 Chromeが繋がらない(タイムアウト)

windows10アップデート後(1809) 不具合 :Chromeが繋がらない
(タイムアウト)の対応策。

初期化して再度OSを入れ直すのもアレなんで対応策として
スタートアップ時にBatを走らせる事にした。

管理者権限にするBatとネットワークサービスを再起動するBatで
なんとか次期OSのアップデートかGさんが解決してくれる事を
期待しています。

それまでコンピュータ管理のサービスとかも停止せず待っときます。

Batは下記になります。

追記:
累積アップデートで直りましたと言いたいところだけど
一度、累積アップデートの一部を削除して再度、累積アップデートを
適応したら直りました・・・。

net stop CryptSvc
net start CryptSvc
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process (管理者)ネットが繋がらないよ.bat -Verb runas"