やったこと

webサービスを作るときに考えたことを垂れ流します

プログラミング

webページが謎の文字化けした

cakephpで作ったページが文字化けしてしまった。View部分のファイルを編集してたらいつのまにか文字コードが UTF-8 から Shift_JIS になってしまっていたようだ。以下のようにindex.ctpの文字コードをUTF-8に直したらちゃんと表示されるようになった。 (文字…

twitterの電話番号認証がうまくいかないとき

twitterのボットを作るためにアプリ申請をしようとしたら「電話認証機能を有効にしてください!」とログが表示されてエラーになってしまった。どうやら新しくアプリを作るためにはtwitterに電話番号を登録しなくてはいけない仕様になった様子。「はぁ・・嫌…

phpのexecコマンドではまりまくった件

phpのexecコマンドではまってしまった・・。下記のようにexecを使って別プロセスで「test.php」の処理を実行しようと思ったんだけど、処理がexecの箇所でwaitしてしまって処理2の実行が待たされてしまう(ブロッキング的な動作) 処理1・・・ $command = '…

chart.jsでグラフ値のポップアップが重なって表示されてしまう

chart.jsでグラフを描いてるんだけど、折れ線グラフとかでプロット数があまりに多いときに、マウスオーバーでポップアップ表示される値(tooltipと呼ばれてるらしい)がたくさん重なってしまい、かなり見苦しい様子になってしまう。これを直すには、Chart.js…

phpの"=="の比較は"-1"と"true"が一致してしまうので注意

phpの比較演算子で引っかかった。 以下のコードを実行すると"match"が出力されてしまう。 $hoge = true; if ($hoge == -1){ echo "match"; } ゆるやかな比較(==)だと"-1"と"true"が一致してしまう様子。こういうときは以下のように厳密な比較(===)を使わない…

chart.jsでY軸の方向を逆にしたグラフを表示したい

chart.jsでグラフを描いてるんだけど、Y軸の向きを反転できなくて困った。Y軸が「0, 1, 2, 3・・・」って昇順になってるのを「・・・3, 2, 1, 0」みたいに降順になったものを表示したいんだけど、どうもそういった機能には対応してないみたいだった。chart.j…

chart.jsでグラフを更新する度にサイズがどんどん大きくなってしまう

chart.jsでグラフを描いてるんだけど、データを更新してグラフを新規描画するたびに、グラフのcanvas要素がどんどん大きくなってしまう変な現象が起きた。↓コードはこんな感じ var ctx = document.getElementById("line").getContext("2d"); mychart = new C…

さくらのレンタルサーバは負荷の高い処理をkillするみたい

さくらのレンタルサーバでニコニコ動画の情報を取得するphpマクロを書いてるんだけど、どうも途中で処理が止まってしまう。コードを散々眺め回しても不具合らしきものも見つからないし、何もphpのエラーを吐かずにプッツリと処理を終了してしまうので、原因…

ニコニコ動画のAPIが特定の時間帯で取得失敗する件

ニコニコ動画の情報をAPI(getthumbinfoというやつ)で取得してるんだけど、特定の時間帯になると取得失敗してしまう。だいたい明け方の4:05あたりに数分間くらい失敗する時間帯があるっぽい。この時間帯はサーバの更新作業とかでいろいろ忙しいのかな。デー…

twitter bootstrapで画像をレスポンシブ指定したら中央寄せが効かなくなってしまった

twitter bootstrapので画像をレスポンシブ指定(クラス"img-responsive")したら中央寄せが効かなくなってしまった。↓コードはこんな感じ <div class="text-center"> <img src="./image.jpg" class="img-responsive" alt="hoge"> </div> どうやらクラス"img-responsive"を指定すると、横幅のmarginが調節されて左寄せになってしまう様子。以下のようにs…

twitter bootstrapの入力フォームをインライン指定にしたのに効かない

twitter bootstrap(ver3.3.1)で、入力フォームと実行ボタンをform-inlineに指定して並べて表示したかったんだけど、ちょっとうまくいかなかった。大きなウィンドウサイズのときはちゃんとinlineが効いてるみたいなんだけど、ウィンドウを小さくするとinline…

simplexml_load_fileのエラーはtry catchで補足できない

phpのsimplexml_load_file()で存在しないxmlファイルを読もうとするとエラーになる。 このエラーはtry catchで補足できない様子。※php version 5.4.29では補足できなかったけど、もしかしてもっと上のバージョンだとできるようになってるのかも。 例: ↓(×…

歯抜けになったrowidはvacuumで再セットされる

sqlite3のデータベースで、ある行を削除するとrowidの値が歯抜けになってしまった。 ■phpでユーザ3を削除 $sql = "delete from user_table where user_id = :user_id"; $stmt = $db->prepare($sql); $stmt->bindValue(':user_id', 3, PDO::PARAM_INT); $stmt…

PEARをインストールしないでHTTP_Request2を使う方法

PEARをインストールしないでHTTP_Request2を使ってみた。 手順は以下。①HTTP_Request2を入手する 以下のページから取ってくる。 http://pear.php.net/package/HTTP_Request2/download ②Net_URL2を入手する 以下のページから取ってくる。 http://pear.php.net…

wiresharkでエラー発生してキャプチャできないとき

windows7の環境でwiresharkを使おうと思ったんだけど、起動すると以下のようなエラーが出てキャプチャできなかった。 The NPF driver isn't running. You may have trouble capturing or listing interfaces.どうもパケットフィルタドライバが起動できなくて…

phpでSQLiteの全データダンプするのめんどくさかった

phpのスクリプトでSQLite3のデータベースの中の情報(生成したテーブルとかその中のデータとか)をダンプして表示したかったんだけど、意外とめんどうだった。まずsqlite_masterという情報一覧用のテーブルを参照して全テーブルの名前を取得して、そこから一…

プリペアドステートメントでテーブル名指定できないのか

PHPでSQLite3をいじってるんだけど、PDOのPrepared Statementの構文を使ってテーブル名を指定しようと思ったらできなかった。以下みたいにするとエラー吐く。 $sql = "create table :table_name (id integer, name text)"; $stmt = $db->prepare($sql); $stm…

さくらのレンサバでphp.iniの設定が効かない

さくらのレンサバを借りてるんだけど、さくらのコントロールパネルでphp.iniの設定変更をしても反映されないみたい。コントロールパネルで入力した内容はhome下のphp.ini(/home/xxxx/www/php.ini)に反映されるんだけど、phpinfo()でphp設定を見ると以下の…

window.openとwindow.location.hrefの違い

javascriptでページ遷移するときに使うwindow.openとwindow.location.hrefの違い。・window.openは、windowオブジェクトのメソッド。ブラウザの新規ウィンドウを開くときに使われる。・window.location.hrefは、windowオブジェクトのプロパティ。現在開いて…

facebookいいねボタンからエラーが出る

この前作った自分のサイト(かぶあな)をグーグル検索してみるとサイト説明の欄に以下のようなエラー文が表示されてた。 SECURITY WARNING: Please treat the URL above as you would your password and do not share it with anyonemeta descriptionで指定し…

phpで日付のフォーマットを変換する

phpで日付のフォーマットを変換する関数。"2014年1月1日"みたいな表記から"2014/01/01"みたいな表記に変換する。以下がコード。 $before = "2014年8月27日" $after = dateconv($before); echo $after; //日付のフォーマットを変換する関数 function dateconv…

wordpressの開発環境作った

wordpressの開発用の環境をどうしようか考えた。本当はvirtualboxとかを使って、本番用サーバとは別にローカルに開発環境を作ったほうがいいんだろうけど、それはちょっとめんどくさい。。そこで、本番用サーバにテスト用のディレクトリを掘って、そこにwpの…

phpmyadminを入れたけどログインできない

mysqlのデータベースをいじるためにphpmyadminを入れることにした。ほんとはセキュリティ上入れたくなかったんだけど、mysqlをプロンプトからいじるのはあまりにめんどくさいからね。。そんで、phpmyadminをインストールしたのはいいけど、以下のようなエラ…

プロンプトからmysqlにログインできなくなってた

プロンプトから mysql -u root -p でログインしようとするとログイン失敗してしまう。あれ?前はログインできてたんだけどおかしいな。。ちなみにエラー文は以下が出力される。 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/v…

フリーのwordpresのテーマが出来がよくなくて困った

フリーのwordpressのテーマを落として使ってみたんけど、あんまし出来が良くなくて困った。以下のようなところが気に食わなくて、いろいろ自分で修正してて時間を食ってしまった。。 ■ブログのアイキャッチ画像を決まった縦横比にリサイズして表示してしまい…

wordpressで作った問い合わせフォームからメールが送信できない

wordpressに以下のプラグインを入れて問い合わせフォームを作ってみた。 ・contact-form-7 ・WP-Mail-SMTP※設定は以下のサイトを参考させてもらいました Contact Form 7プラグイン(問い合わせメールフォームを作成) - WordPressプラグインの一覧 一通り設定…

まだまだ起動しないwordpress

phpやmysqlをインストールしなおしてwordpressを起動しようとしたが、wordpressのページに「データベース接続確立エラー」というエラーが表示されて起動しない。/var/log/mysqld.logには以下のようなログが残されてた。 140812 18:06:02 [ERROR] /usr/libexe…

MySQLをインストールしたけどなかなか起動できない

webサーバ(CentOS6.3)にMySQLをインストールしたんだけどなかなか起動できない。mysql startを実行しても以下のように失敗してしまう。 #/etc/init.d/mysqld start MySQL Daemon failed to start. Starting mysqld: [FAILED] /var/log/mysqld.logの中身を見…

wordpressインストールしたら変なエラー出て動かない件

自前のwebサーバにwordpressをインストールしてみた。インストール後に動作確認したら、しばらくはちゃんと動いていたんだけど、次の日になるとなぜか以下のエラーが出てwordpressの管理ページにアクセスできなくなってしまった。 お使いのサーバーの PHP で…

yum updateがエラー吐くようになってしまった

久しぶりにyum updateしたら以下のエラーが出て失敗するようなってしまった。 Error: Package: perl-IO-Compress-2.052-1.el6.rfx.noarch (rpmforge-extras) Requires: perl(Compress::Raw::Zlib) = 2.052 Removing: 1:perl-Compress-Raw-Zlib-2.020-127.el6…