トップページphp
1001コメント308KB

【PHP】下らねぇ質問はここに書き込みやがれ 43

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/04/01(日) 04:21:50ID:VGqlLhlD
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0721nobodyさん2007/04/09(月) 13:48:05ID:VhSqsDLr
>>720
pingが通らなかったので、pingを使わない方法を探していましたが、
これでいけるようです!どうもありがとうございました。
0722nobodyさん2007/04/09(月) 13:51:09ID:???
>>716
組み込み関数のほうが遙かに速い。
0723nobodyさん2007/04/09(月) 13:53:07ID:???
速度じゃなくて勉強のために作ってるんだろ。
>>712
RFCをよみながらエスケープすべき文字を見極めてやればよし。
0724nobodyさん2007/04/09(月) 14:10:56ID:???
勉強ならC言語とかでやらないと意味が無いだろう。
PHPなんかだと組み込みの高機能な関数が多すぎる。
0725nobodyさん2007/04/09(月) 14:11:29ID:???
PHPで車輪の再発明するぐらいならCの勉強した方がよさげ
0726nobodyさん2007/04/09(月) 14:24:21ID:kaHzWtZF
>>710
レスサンクスです。
試してみたけどやっぱりダメだた・・・。

状況としてはこれにかなり近い感じ。

[PHP-users 30825] Pear DBでのエラー
http://ml.php.gr.jp/pipermail/php-users/2006-November/031342.html
0727nobodyさん2007/04/09(月) 14:33:36ID:W+dKCXXH
アドバイスありがとうございます。
htmlに出力するときはhtmlspecialcharsで対象となる文字のみ対策しておけばXXS対策になるんでしょうか?
0728nobodyさん2007/04/09(月) 14:49:59ID:???
>>726
Smarty 以外のファイルはちゃんと読めるのか?
0729nobodyさん2007/04/09(月) 14:57:00ID:kaHzWtZF
>>728
Smarty以外も読めんですorz
ファイルの種類というよりもむしろ、ディレクトリの場所によって読めるか読めないかみたいな感じで、
カレントディレクトリとかドキュメントルート以下(/var/www/html/〜〜)の中にあるファイルなら普通に読めるんですけど、
/usr/〜〜とかそれ以外の場所になるとパスが通ってても読めない状況です。

0730nobodyさん2007/04/09(月) 14:58:33ID:???
>>729
セーフモードでアクセスが制限されている可能性は
確かめた?
0731nobodyさん2007/04/09(月) 15:05:50ID:???
>>727
クライアントからの入力データだと思うもの全てをhtmlspecialcharsに突っ込んでも安全とは限らない。

本質的にXSSはプログラマがクライアントからの入力全てに気を配らないと起こり得る。
環境変数もどれが任意でどれがそうでないかを全て把握してる人はそういない。
よって、HTML出力を必要としない部分全てをhtmlspecialcharsに突っ込むのが安全。
尤も、タグの属性値なんかに突っ込むならそれでも不十分。そんな設計は見直すべきだが。
0732nobodyさん2007/04/09(月) 15:09:03ID:kaHzWtZF
>>730

セーフモードっていうのがよくわかってないんですが、
php.iniを見てみたら

safe_mode = Off
safe_mode_gid = Off
safe_mode_include_dir =
safe_mode_exec_dir =
safe_mode_allowed_env_vars = PHP_
safe_mode_protected_env_vars = LD_LIBRARY_PATH

みたいになってます。
0733nobodyさん2007/04/09(月) 15:20:55ID:???
>>729
seLinuxが有効になっている可能性は?
0734nobodyさん2007/04/09(月) 15:28:35ID:kaHzWtZF
>>733
ああああああああああああああ!

# getenforce



Permissive





鬱すぎるorz
0735nobodyさん2007/04/09(月) 15:44:55ID:???
>>734
うん、で?
0736nobodyさん2007/04/09(月) 15:51:53ID:kaHzWtZF
>>735
seLinuxは無効になってたっぽいです。
もうほんとなにが悪いんだか・・・。
0737nobodyさん2007/04/09(月) 16:34:56ID:R/Jf3MPV
お知恵を貸してください。
最近よく私が管理しているWikiにスパムが飛んできて困っているのですが、
$_POST['msg']に入っている本文から英字だけ抜き出す場合どうすればいいのでしょうか。
それを使って英字の文字数によりスパム弾きをしたいと思っているのですが…
0738nobodyさん2007/04/09(月) 16:37:16ID:???
[a-z]
0739nobodyさん2007/04/09(月) 16:39:28ID:R/Jf3MPV
>>738
eregを使うという所までは思いついたものの、
ループ処理で文字を次々ヒットさせる際の処理が思い浮かばず…
0740nobodyさん2007/04/09(月) 16:41:23ID:???
while(){substr(************************************);
ふぬああああああああああああああああああ
[a-z]
}
うんこ。
0741nobodyさん2007/04/09(月) 16:48:59ID:???
情報は小出しじゃなく一度に出したほうがいいぞ
答える方も質問してる方も時間の節約になる
エスパーが登場すればこの限りではないが
0742nobodyさん2007/04/09(月) 16:54:25ID:???
preg_match_all
0743nobodyさん2007/04/09(月) 17:03:39ID:???
allなんてむだなものもひろうからpreg_matchがいいよ
0744nobodyさん2007/04/09(月) 17:13:48ID:???
>>736
で、あえて聞くけど

require_once(フルパス);
もエラーになるの?

あるいは
echo file_exsists(フルパス);
はtrue返るの?
0745nobodyさん2007/04/09(月) 17:15:02ID:???
上のフルパスはフルパス.file名の意味
0746nobodyさん2007/04/09(月) 17:16:23ID:R/Jf3MPV
>>740
有難う御座います。
参考にしながらこんなのを組んでみました…

$msg = $_POST['msg'];
$eng_num = 0;
$i = 0;
//コメントスパム対策
while($i<=strlen($msg)) {
$i++;
$num = substr($msg,$i,1);
if (ereg('[a-zA-Z0-9]',$num)) { $eng_num++; }
}
if (strlen($eng_num)>50) { die; }

…が正しく実行されないのは置いといて、
大体こんな感じでいいのでしょうか。
0747nobodyさん2007/04/09(月) 17:26:22ID:???
ord使いたいな

$msg = $_POST['msg'];
$eng_num = 0;
$i = 0;

while( $char = ord($msg[$i++])) !=0) {
  if (ereg('[a-zA-Z0-9]',$char)) { $eng_num++;}
if($eng_num > 50 ) {die('invalid post');}
}
0748nobodyさん2007/04/09(月) 17:33:34ID:???
>>747
それは動かんだろ
$msg配列じゃないし、eregがへん。
0749nobodyさん2007/04/09(月) 17:33:38ID:R/Jf3MPV
>>747
有り難う御座います!
バイト後にやってみます。
0750nobodyさん2007/04/09(月) 17:34:07ID:???
あ、そうだな。なかったことにしてください。
0751nobodyさん2007/04/09(月) 17:54:18ID:???
>>743
無駄なものってなんですか?

preg_match_all('/\w/',$_POST,$c);
if (count($c[0]) > 50) die();
で問題が出る?
0752nobodyさん2007/04/09(月) 20:35:33ID:???
セッションって、一度クッキーに置き換えてるのですか?
0753nobodyさん2007/04/09(月) 20:43:57ID:???
spycとsyckではYAMLのパース結果が違うくないですか?
spycに添付されていたspyc.ymlで比較してみたんだけど、違うようです。

あと、syckは解析できなかった時に、"unknown type"を返しますよね?
なんじゃこりゃ?
0754nobodyさん2007/04/09(月) 20:50:38ID:W+dKCXXH
データベース(MySQL4.1)からデータを抽出したいのですが、
$sqlのなかにフィールド名とテーブル名が入った変数を入れると動きません。
$sqlの中に変数ではなくて、フィールド名とテーブル名を直接書けば正常に動きました。

フィールド名とテーブル名を変数に格納して、$sqlにまぜたいのですが
うまくいきません。

以下、問題となるコードを抜粋しました。

$field_name = "id, name";
$table = "table1";

$sql = "SELECT $field_name FROM $table_name ORDER BY id";
$res = mysql_query($sql,$con) or die("データを抽出できません");


PHP4.4.6とMySQL4.1を使用してます。
どなたかご教授お願いいたします。
0755nobodyさん2007/04/09(月) 20:54:03ID:???
>>754
変数は''でククれ
0756nobodyさん2007/04/09(月) 20:59:38ID:???
>>754
$table = "table1";
$sql = "SELECT $field_name FROM $table_name ORDER BY id";

$table_nameなのか$tableなのか
0757nobodyさん2007/04/09(月) 21:16:25ID:???
printとechoの違いは無し?
タイム計測したらechoの方が二倍近く速かったんだが
0758nobodyさん2007/04/09(月) 21:26:31ID:???
>>754
変数を"でくくるのはこれで合ってますか?
$sql = "SELECT \"$field_name\" FROM \"$table_name\" ORDER BY id"
試してみましたが動きませんでした。

>>755
すいません、$tableは$table_nameの打ち間違えです。


echo で$sqlを出力したらでてきた内容です。
SELECT id,name, FROM table1 ORDER BY id
変数の中身を直接書くと動くので、SQL文自体には間違いはないと思ってますが
何か勘違いしている部分等ございましたらご指摘ください。
0759nobodyさん2007/04/09(月) 21:29:13ID:Hw87SVIB
以下のようなプログラムを作って
php -f test.php
とコマンドラインから呼び出したのですが何も表示されません。
何故でしょうか?

test.php
<?
print "aaaaaaaaa";
?>
0760nobodyさん2007/04/09(月) 21:30:30ID:???
>>758
SELECT id,name, FROM
の抽出するフィールドリストの最後にカンマついてちゃだめ
てかmysql_error使え
0761nobodyさん2007/04/09(月) 21:53:31ID:???
>>757
テンプレ嫁
0762nobodyさん2007/04/09(月) 21:54:49ID:LuOmRtTQ
むちゃくちゃ単純なところで数時間はまっている…

------------------------------------------------------
$_POST['name1'] = htmlspecialchars($_POST['name1']); //1回目だけ特殊記号変換

echo $_POST['name1'];
echo $_POST['name2'];

$form = "<form action=\"${_SERVER['PHP_SELF']}\" method=\"POST\">
<input type=text name=name1>
<input type=hidden name=name2 value=\"${_POST['name1']}\">
<input type=submit value=\"go\">
</form>
";

echo $form;
------------------------------------------------------
一度受け取った$_POST の中身をhtmlspecialchars で&gt; に変換して
もう一度送っているだけなんだが。

(俺の頭の中では)$_POST['name2']の中身は&gt; 変換済みになっているわけだが、
二回目を受け取ったら(もう一度送ったら)、自動的に元に戻っちゃうわけ?

助言をお願いします。
0763nobodyさん2007/04/09(月) 22:03:07ID:???
>htmlspecialchars で&gt; に変換して
意味不明
>$_POST['name2']の中身は&gt; 変換済みになっているわけだが、
意味不明
>二回目を受け取ったら(もう一度送ったら)、自動的に元に戻っちゃうわけ?
意味不明

返れ
0764nobodyさん2007/04/09(月) 22:03:45ID:???
日本語でおk

$fromとかわけわかんないんだけどさ
0765nobodyさん2007/04/09(月) 22:03:49ID:???
>>752
Cookieに値は入れないが概念的にそうとも言える。

>>759
エラーも表示されないってことなら、同じファイル名の別のtest.phpだったとか。

>>762
変換というよりエスケープ。
$form = "<form action=\"${_SERVER
ここで「"」を「\"」にエスケープしてるけど、HTMLでは元に戻ってるでしょ?
0766nobodyさん2007/04/09(月) 22:06:48ID:???
>>762
まあ誰もがハマる道かもしれんな
元に戻るんじゃなく、送信されるhiddenの値が
HTMLエスケープされていない文字列ってだけだ
0767nobodyさん2007/04/09(月) 22:07:34ID:???
>>759
printの最後に\n
0768nobodyさん2007/04/09(月) 22:13:18ID:???
>>766
07697622007/04/09(月) 22:17:16ID:LuOmRtTQ

ごめん、あれだ、マジでこんがらがっている

かりに<img>を入れると<img>に変換されて
<input type=hidden name=name2 value="<img>">
上のソースになるわけだけど、
これをそのまま送るとなんで<img>になっちゃんだ?
0770nobodyさん2007/04/09(月) 22:22:09ID:6Xdj6yAC
完全意味不明だな。
普通に考えて<一回目>は
&lt;img&gt;
になってるだろ

0771nobodyさん2007/04/09(月) 22:23:29ID:???
>>765
DoCoMoでセッションが使えなかったからさ・・・
07724992007/04/09(月) 22:24:02ID:???
遅レススマソ
なんか検索して一見目にここから最新のfixもってってちょって書いてあったんで落としてビルドしたけどやっぱいり同じエラーで止まったっす
英語読めてないだけかもしれませんが
07737622007/04/09(月) 22:24:26ID:LuOmRtTQ
すいません、半角で送信してもうた。

<input type=hidden name=name2 value="&lt;img&gt;">
0774nobodyさん2007/04/09(月) 22:24:36ID:???
>>767
素晴らしい指摘。感心した。
0775nobodyさん2007/04/09(月) 22:27:20ID:AitdzCc4
>>773
質問の内容がまじで意味不明だが
ページを開くと一度だけプログラムが実行され
実行終了後には変数が全て空っぽになる(一部例外は除く
0776nobodyさん2007/04/09(月) 22:29:50ID:???
>>773
それはHTMLの仕様。
0777nobodyさん2007/04/09(月) 22:33:49ID:AitdzCc4
$_POSTや$_GETの値をそのままクエリで使用するときは、

$post = $_POST;
"SELECT * FROM test WHERE id='$post'"
より
"SELECT * FROM test WHERE id='"+$post+"'"
のほうがいいんですかね?
$postの値が「' 適当なSQL文'」だったらまずいですよね
もしその場合は下記の方も同じ動作なのでしょうか?
0778nobodyさん2007/04/09(月) 22:38:10ID:???
なんか今日、htmlエスケープ/specialchar関係で質問してる奴、全部同じ匂いするなw
0779nobodyさん2007/04/09(月) 22:41:03ID:???
>>777
そんなこと気にするくらいなら
適当なDBインターフェースを利用して
プレースフォルダを使えばいい

pear::DB の場合
$params = array($post);
$sql = "SELECT * FROM test WHEAR id=?";
$ret = $conn->query($sql, $params);
0780nobodyさん2007/04/09(月) 22:44:42ID:???
>>777
+演算子じゃインジェクションの前にとんでもないことになるけど。
クォートするかPDOStatement->bindValue()でも使おうぜ…。
0781nobodyさん2007/04/09(月) 22:45:45ID:???
>>771
「セッションを使うためにsidをcookieに持たせる」ってのはデフォルトの挙動であって
use_trans_sidとかでGETで送らせてやればCookie使えなくてもセッション自体は使えるよ

>>769
ソースに書かれた文字列の評価ってプロセスがあるんだよ
何らかの文字列を > そのものとして扱えないと > を入れる方法がないでしょ?
0782nobodyさん2007/04/09(月) 22:48:22ID:???
>>781
うん、.htaccessで設定したら使えたおサンクス
全ての携帯で見れるサイトって作るの難しいよな
0783nobodyさん2007/04/09(月) 22:50:40ID:???
>>772
imapのmake時点でエラー出てない?
0784nobodyさん2007/04/09(月) 23:53:47ID:R/Jf3MPV
>>751
完璧でした。どうもありがとう御座いました!
0785nobodyさん2007/04/09(月) 23:59:00ID:???
javaの排他処理?のシンクロナイズドをPHPで実現したいのですがどうしたら良いでしょうか。。
やりたいことはクッキーの削除とDB(トランザクションの処理はしています)への書き込みで、重複登録を防ぐ為にクッキーが無ければDBへ書き込まないようにしています。

普通に処理をするPGへ遷移する場合はクッキーも削除され、DBへ1件書き込まれるだけですが、F5を連打するとDBに1件書き込まれますがクッキーが消えません。。
また、処理の最後で$_COOKIEにarrayを入れるとクッキーとDBが削除及び登録されたりされなかったりします。
あと、setcookieで削除する所で戻り値がとれるまでループさせてやると、連打した数だけDBに登録されてしまいます。クッキーは削除されています。

何かヒントみたいなもの頂けると嬉しいです。。
お手数お掛しますがよろしくお願い致します。
07867852007/04/10(火) 00:01:49ID:???
すいません。
環境はPHP4.3.0 apache2 windowsXPです。
よろしくお願い致します。。
0787nobodyさん2007/04/10(火) 00:53:06ID:LOxXZREL
掲示板の記事を途中で切って全部読むリンクを付けるってのやってるんだけど……
切る部分にURLやらメールアドレスやら携帯絵文字が入らないようにして、
2バイト文字の区切りで切れるようにして、
なんてやってると正規表現やら条件分岐使いまくりなんだけど
他でもそういう風にやってるのかな?高々文区切るだけで
もう規定数の文字数で問答無用にぶった切ってもいいような気がしてきた
0788nobodyさん2007/04/10(火) 01:28:44ID:???
>>787
>もう規定数の文字数で問答無用にぶった切ってもいいような気がしてきた

なんでこうしないの?
見た目で考えても 「>>続きを見る」 の方が視認性高いじゃん
0789nobodyさん2007/04/10(火) 01:46:43ID:???
>>787
エロゲスレに誤爆した

確かマルチバイト系の関数で指定文字で切ってくれる関数があったぞ
よく覚えてないけど省略するときの文字も指定できたはず
0790nobodyさん2007/04/10(火) 01:51:40ID:???
>>760さんのアドバイスが的中しました。
foreachでまわしてたので自動的にカンマがついてたのに気づきませんでした。
現在は問題なく動きます。ありがとうございます。
0791nobodyさん2007/04/10(火) 02:03:31ID:???
>>790
じゃ上で書いてた問題のあるコードってのは嘘だったわけ?
0792nobodyさん2007/04/10(火) 02:18:52ID:???
>>785
重複登録を防ぎたいなら、INSERTで失敗させるようにするとか、トランザクション使うとかすればいい。
setcookieでクッキーを削除したつもりでも、ブラウザがそのレスポンスを受け取るまでは何度でもクッキー送ってくるよ。
クッキーは排他処理とかに使える道具じゃない。
0793nobodyさん2007/04/10(火) 02:26:58ID:4NI9RXKe
>>791
0794nobodyさん2007/04/10(火) 03:45:07ID:???
>>793
何だ?しゃべれないのか?
0795nobodyさん2007/04/10(火) 04:07:44ID:???
朝っぱらからケンカうってるやつは暇なのか?
0796nobodyさん2007/04/10(火) 04:31:31ID:???
>>795
なんだ?ニートなのか?
0797nobodyさん2007/04/10(火) 08:40:15ID:???
>>787
>>789
mb_strimwidth だね。(誰かこの関数名の単語の区切りを教えて)
でもメールアドレスの途中で切らないとかそういった機能はないから
たとえば「split系関数で切りたい文字列と切りたくない文字列が交互に並ぶ配列にして
ループで順に連結して規定バイト数を超えたかどうか見つつ
添え字 % 2 の戻り値でmb_strimwidth をかけるかどうか判断する」といったロジックが必要。
0798nobodyさん2007/04/10(火) 08:46:43ID:???
>>785
こういう場合は、
if(処理終了) {header("Location:....");}でOK。
強制的に飛ばす(リダイレクトする)のがいい。

0799nobodyさん2007/04/10(火) 08:56:56ID:???
>>797
>mb_strimwidth だね。(誰かこの関数名の単語の区切りを教えて)
エス トリム ウィドゥス かな?

で本題
mb_strimwidth(接続文字空)でいったん切ってから、正規表現で末尾の連続する半角英数記号を削除
で どう?
0800nobodyさん2007/04/10(火) 08:58:02ID:???
>>787
そんなに厳密じゃなくてもいいわけでしょ?
「ひらがながあれば、ある範囲で切る」だけを唯一の区切り条件にすればいいじゃん。
漢文サイトじゃないだろうから。
0801nobodyさん2007/04/10(火) 09:02:18ID:???
>>799
英文の書き込みは全て消えるね
0802nobodyさん2007/04/10(火) 09:04:43ID:???
>>801
「連続する」英数だから全部は消えないだろ
URLのみの書き込みなら消えるけど
0803nobodyさん2007/04/10(火) 10:00:04ID:???
>>783
--with-imapにソースを解凍してmakeしたディレクトリ指定したらコンパイルまで通りました
パスが違うのかコピーするファイルが足りないのか?
0804nobodyさん2007/04/10(火) 10:33:14ID:Y95uap3I
オブジェクト指向を勉強しています。
PearDBクラスを、自分が作ったクラスの中で使うとき、
extendsするのか、ただ単に使う場所でinclude_once('DB.php')すればいいのか
わかりません。
どちらにすればいいのでしょうか?
0805nobodyさん2007/04/10(火) 10:58:06ID:???
PHPでオブジェクト指向を勉強するなカス
0806nobodyさん2007/04/10(火) 11:06:49ID:Y95uap3I
いいんです。PHP以外はやる予定はないので。趣味ですし。
0807nobodyさん2007/04/10(火) 11:34:59ID:???
ストレスたまってる奴が昨日から沸いてるな
0808虚弱PHP2007/04/10(火) 11:35:34ID:???
>>804
用途によるとしか…。

>>805は言葉は悪いけど正論だと思うなぁ。
オブジェクト指向はJavaでやるのが一番だと思う。
いや、SmalltalkとかRubyの方がいいのかもしれんけど、
俺はまともにやったことないからわからん。
0809nobodyさん2007/04/10(火) 11:35:59ID:???
カスは愛想だよ、うん。
0810虚弱PHP2007/04/10(火) 11:40:23ID:???
>>785
なんか根本的に間違っている気がする。
synchronizedってスレッドの処理だから今回のような件だと関係ないし。

俺だったら、CookieのかわりにSession変数使う。
0811虚弱PHP2007/04/10(火) 11:45:46ID:???
>>777
DBによってエスケープ方法が違うけど、
mysqlのネイティブ関数としてはmysql_real_escape_stringとかがある。
PDOならプリペアドステートメント使えば解決。
0812nobodyさん2007/04/10(火) 12:05:49ID:???
DBって決められたUPDATE文を実行するときでも、
エスケープしとくべきですか?
0813nobodyさん2007/04/10(火) 12:22:30ID:FUjP3ASn
var メンバ変数の宣言かかなくても、動くんですが、そんなもんですか?
0814nobodyさん2007/04/10(火) 12:27:36ID:FUjP3ASn
var メンバ変数名が違ってたら、エラーがでる設定ってありますか?
0815虚弱PHP2007/04/10(火) 12:59:06ID:???
>>812
"決められたUPDATE文"にDBから引っ張ってきた値が入っている場合は、
セカンドオーダーSQLインジェクションが発生する恐れがあるので必ずエスケープ。

平文でコードに直書きしている場合は問題ない…
けれども、人間は間違いをおかすものなので変数は全部エスケープが正解。
0816虚弱PHP2007/04/10(火) 13:01:39ID:???
>>813
そんなものです。
>>814
error_reporting(E_ALL);
でどんなもんでしょ
0817nobodyさん2007/04/10(火) 13:04:00ID:???
>>813
そんなものです
>>814
ないと思う
ただし、右辺値で使う場合は警告がでる
$foo = $this->bar;
とかね
0818nobodyさん2007/04/10(火) 14:07:55ID:???
オブジェクトについて質問です。
ttp://labs.cybozu.co.jp/cbl_activerecord/
このO/Rマッピングライブラリを使って、DBから取得してオブジェクトに入れるところまではできたのですが、
取得した値を使いたい場合にいちいち

$var['name'] = $todo->name;
$var['title'] = $todo->title;

と指定するのではなく、まとめて$varの配列に置き換えたいのですが
どうすれば良いのでしょうか?
0819nobodyさん2007/04/10(火) 14:15:35ID:???
多分PDOのfetchmode変えるなりすればできると思うが、
何のためのO/Rマッパだよ、、、そのまま使えばといいんじゃないかと
0820nobodyさん2007/04/10(火) 14:16:20ID:???
関数を実行した時に失敗したらエラーを返したいのですが、
hogeFunction() or die ('hogeFunction失敗');
という感じでいいのでしょうか?
それとも
if (hogeFunction()) {
} else {
die('失敗');
}
とかくのがベターなんでしょうか?
0821nobodyさん2007/04/10(火) 14:19:38ID:???
session.use_trans_sid を"1" ブラウザをCOOKIE不可にしておいて
<?php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
echo '<br /><a href="page2.php">page 2</a>';
?>
を実行すると

hrefに?PHPSESSID=xxxx...が追加されるのはなぜ?
クッキーの読み込みをしていないのになぜブラウザの設定が分かるの?
(ブラウザをCOOKIE OKにしておくと?PHPSESSID=xxxx...は追加されない)

つか 初めての接続でブラウザのCOOKIE設定を知る方法があるの?
■ このスレッドは過去ログ倉庫に格納されています