phpの最近のブログ記事

DBからリスト項目を取ってくる場合は
繰り返し作っていけば良いが
HTMLのみの場合 selected を付けるのに、いちいち

<option <?php if($_POST['Year'] == "2008"){echo "selected";} ?> value="2008" >2008</option>
<option <?php if($_POST['Year'] == "2009"){echo "selected";} ?> value="2009" >2009</option>
とやっていたのだが、これでは項目が多くなるとめんどくさいので

<option value="<?=$_POST['Year']?>" ><?=$_POST['Year']?></option>
<option value="2008" >2008</option>
<option value="2009" >2009</option>

optionタグの一番上にPOST値をvalueにしたoptionタグを付けることで
エラーによる再入力の時などに
すでに先ほど選んだ値が選択された状態になる。
Firefoxではまったのでメモ。

Sessionの特定の要素を削除するため

unset()を使ったのだが

なぜかFirefoxだけ二つの値が削除される。

プログラムの実行が二回されているようだ。

プログラムの先頭と一番後ろに

print_r($_SESSION);

としてもunset()は一回しか実行されていないのでなぜかと調べたら。

imgタグのsrc属性が空白だとfirefoxではそのURLを二回読みにいくようだ。

<img src="" >

こんな感じになっていた。

ここに適当な文字をいれたら複数削除されなくなった。

削除や登録などの実行プログラムでたまにあるミスのようだ。

バージョンはFirefox3だったが2でも同じ模様。
includeファイルに直接アクセスされたくない時に
そのフォルダの特定の拡張子へのアクセスを禁止する.htaccess

<Files ~ "\.(php|inc)">
    Order allow,deny
    Deny from all
 </Files>

この例の場合、.php と.inc ファイルへのアクセスを禁止している。
またはインクルードするファイルの先頭に以下をたす方法もある。

//外部からのアクセス拒否
if(stristr($_SERVER['PHP_SELF'],basename(__FILE__))){
die("直接アクセスのため処理終了");
}
phpの定数_FILE_を記入してもファイルのフルパスとファイル名が反映されないと悩んでいたら
_FILE_ じゃなくて__FILE__ だった。
見えにくいがアンダーバーは二つ続きである。繋がって一つに見えていた。
単純なミスだ。いかんす。

phpにおいて画像を直接ブラウザに表示させたい場合は

mb_http_output("pass")をつけることによって

ブラウザが画像であると認識してブラウザに画像として表示される。


また

・ Content-Type の値
・ inline の指定
・ Content-Length

の値を設定したほうがよりブラウザが画像と認識して間違ってコード変換される事がなくなる。



例)

mb_http_output("pass");
header("Content-type: image/jpeg");
header("Content-Disposition: inline; filename=image.jpg");
header("Content-length: " . filesize("/tmp/image.jpg"));
readfile("/tmp/image.jpg");
echo <<<END
ここにechoで表示させたいものを記載する
何行でも可能
量が多いときに便利
END;

<<<END から END;までを表示する 
WHERE に複数の条件をANDでつなげて記載する。
$sql = 'SELECT * FROM `site_list` WHERE `initial` > 2 AND `initial` < 10';
atomのxmlの記事パーマリンク部分が通常のやりかたでは取得できなかったのでメモ。
<link rel="alternate" type="text/html" href="http://hoge.com/hoge0202.html" />
とかになっているのでlinkだけじゃなく['href']も指定する。

$filecontents = file_get_contents(atom_url]);
$xml = simplexml_load_string($filecontents);
$entry_url = $xml->entry[$loop]->link['href'];

checkboxのnameを配列にする。

<form method="post">
<input type="checkbox" name="checkbox[]" value="A">
<input type="checkbox" name="checkbox[]" value="B">
<input type="checkbox" name="checkbox[]" value="C">
</form>

これで渡される値は
$_POST[checkbox][0] がA
$_POST[checkbox][1] がB
$_POST[checkbox][2] がC

となる。

このアーカイブについて

このページには、過去に書かれたブログ記事のうちphpカテゴリに属しているものが含まれています。

前のカテゴリはPC自作です。

次のカテゴリはphpMyAdminです。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。