Category Archives: PHP

PHPでPOSTから取得したセッションIDでセッションを開始する

FlashのFileReferenceを使ったアップローダを作っていたところ IE以外のブラウザではCookieが送信されない問題にぶち当たった。 そこで、CookieのデータをPOSTで送信してしまい、PHP側で無理矢理そのデータをsession_idとして認識できないかな? と勘でやってみたところ、何故かうまくいってしまった。 ありがとうPHP。 $cookies = $_POST["cookie"]; $session_id = null; foreach (mb_split(“;”, $cookies) as $cookie) { $cookie = trim($cookie); $arr = mb_split(“=”, $cookie); if (count($arr) != 2) continue; if (session_name() == $arr[0]) { $session_id = trim($arr[1]); } } $_COOKIE[session_name()] = $session_id; ini_set(“session.gc_probability”, なんか数値); ini_set(“session.gc_divisor”, なんか数値); ini_set(“session.gc_maxlifetime”, なんか数値); session_start(); これで正常にセッションが開始できた。 Flash側からはExternalInterfaceでJavascriptから document.cookie の値を取得して、それをPOSTしてやる。 document.cookie の内容は、全てのCookieの値が連結された文字列なので、それをPHP側でsplit処理して解析してやり、 [...]

レンタルサーバからメール送信した際にgmailで受信しない

レンタルサーバ稼動で、PHPからmb_send_mailするプログラムというのは定番かと思うけど まれにgmailに対し送信した際に受信してくれない場合がある。 実際に体験したケースとしては、さくらレンタルサーバのスタンダードプランやVPSを利用していて、サイト上のPHPからメール送信 ⇒Yahooメールには届くけれども、gmailには届いてくれない。 といったケース。 迷惑メールに分類される分にはまだいいんだけれども、gmail側が一切受信をしてくれないケースもある。 おそらく、サーバに同居している別ユーザがスパム送信などを行って(もしくは乗っ取られてスパムプログラムが動作して)gmailに大量にメールを送信しており gmail側から「このサーバはスパムなのでメール受信しない」と判定されてしまっているのだと思う。 Yahooメールなど、他のwebメールに比べgmailはこの辺はかなり厳しい印象。 こうなってしまったら基本的には、こちら側はどうする事もできない。 とはいえ、ユーザ会員登録などでメール内に登録キー付きURLを仕込むような仕組みのサイトの場合、かなり致命的な問題となってしまう。 安プランなどで運営している場合は、サーバを移設してIPを変えてやるのが最も手っ取り早い対処となる。 もしくは経験上、数日から数十日ほど放置していると、突然なおったりもする。 段階としては、迷惑送信が停止してから数日から数十日のスパンで ・メール受信自体を拒否が解除 ・迷惑メールに分類される事が解除 ・通常メールに分類される といったプロセスで状況が改善されていくらしい。 この辺はgmailのアルゴリズムによる所。 安プランのサーバは手軽な分、変な業者が同居している可能性も高まるので なかなか判断も難しい所。 予算がある&確実なメール送信を求められているのならメール送信サービスなどを利用するのが間違いなさそう。 でもけっこう高いんだよなぁ・・

PHP・MySQL環境でIncorrect string value

ブログの内容をAPIから取得し、UTF-8環境のPHP・MySQL環境でinsertしようとした所、以下のようなエラーがでてしまった。 Incorrect string value: ‘xxxxx…’ for column ‘カラム名’ at row 1 どうやらMySQLがinsertする文字列の文字コードがおかしいからフザケンナとか何とか言いたがっているようだ。

PHPでtwitterのつぶやき検索api

ふと思い立ったので調べてみたらとても簡単だった。 簡単なのはPHPだからってのもあるかな。 でもAPIコールするとレスポンスは結構重めなんで、乱発はイクナイっぽい。

PHPで短縮URLを作成【bit.ly】

twitterでよく使用されているhttp://bit.ly/からはじまる短縮URL。 長いURLでも20文字に収めてくれるサービスだ。 こいつが提供しているAPIをPHPから叩く方法をメモ。

さくらインターネットでcronでPHP起動

なんやよくやり方が分からなかったのでwgetとか使ってたけど、 こんなやり方でOKらしい cd /home/ユーザ名; /usr/local/bin/php 起動したい.phpのフルパス ちゃんと動いた。 最初のcdが抜けてるとダメなのね。

PHPで全角半角変換

こうゆうのがデフォで用意されている所がPHPの気持ちいい所だね mb_convert_kana 第二引数にオプションを細かく指定もできるみたい。 うーんたまらん

【php】さくらサーバーでファイルアップロード可能容量を増やす

PHPでファイルアップロード可能サイズを調整するには .htaccessに php_value upload_max_filesize 30M php_value post_max_size 30M なんて書いてやれば良いんだけど、さくらのレンタルサーバーだとNGらしい。 で、さくらコントロールからphp.iniの編集を行ってやる必要がある。 コンパネログイン⇒PHP設定の編集 で開くtextに upload_max_filesize=30M post_max_size=30M とか書いてやればOK。 ディレクトリ単位での設定はできないのかしらね? まぁいいや。

Parse error: syntax error, unexpected $end in

PHPでこんなエラーが出てしまった場合の原因は {}の対応が崩れてしまっているため。 たとえば <?php if(うんたら) { ?> <div>かんたら</div> こんな感じで、if文やfor文で閉じ括弧を忘れてしまった場合など。。。 かくいう私もよくやります。

Can’t be used as a function parameter

PHPでfunctionの可変長引数をとりたい場合には func_num_args() と func_get_arg() を使う。 したらこんなエラーがでてしまった Can’t be used as a function parameter なんぞい。

管理人運営サイト
<技術情報サイト:PGBox>
PGBOX