【PHP】下らねぇ質問はここに書き込みやがれpart11
レス数が950を超えています。1000を超えると書き込みができなくなります。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
0879nobodyさん
2005/10/29(土) 16:10:32ID:???ブラウザ側にデータを持たせると、どう改竄されるかわからない。
その点実データがサーバー側にあるセッション変数は楽ちん。
0880nobodyさん
2005/10/29(土) 16:16:07ID:???まさかunset($_SESSION)とかやったんじゃないだろうな・・・・?
そうでないなら何がしたいのか良く分からん
>>878
もし渡すデータが1Mバイトとかに及んでも問題ないと思う?
0881nobodyさん
2005/10/29(土) 16:19:26ID:cNmjzv6x調べてみると、mb_convert_encoding();という関数を使うのが見つかったんですけど、
これはわざわざインストールしないといけないみたいなんですが、他に方法はありますか?
0882868
2005/10/29(土) 16:20:19ID:???ざっとPHPのソースを追ったみたけど無理じゃないかなぁ。
session_start() で内部の(外部から操作できない)アクティブフラグがオン、
スクリプト終了時にアクティブフラグがオンであればセッションファイルを更新しているみたいだし。
自前でsession_set_save_handlerを書くしかないのかな…
他のPHPからセッションファイルの更新日時を参照してゴニョゴニョするって仕様を
何とかした方がいいようにも思うけど。
0883nobodyさん
2005/10/29(土) 16:23:09ID:???session_unset();
とやった結果、セッションファイルが0バイトに上書きされました。
今
unset();
で試してみましたが、セッションファイルの中身はそのままですが、
更新日時が更新されているので書き込まれてしまったようです。
やりたいことをあらためて説明しますと
「session_start()したあと、セッションファイルに書き込みをすることなくcloseしたい」のです。
イメージ的に言うと
sessin_no_write_close();
のような命令が欲しいのです。
0884nobodyさん
2005/10/29(土) 16:25:42ID:???なるほど。了解しました。
セッションファイルに持たせているファイルが多めなので、いったん読ませるのを避けたかったのです。
何か別のファイルに更新情報だけもたせ、それを見るようにしてみたいと思います。
ありがとうございました。
0885nobodyさん
2005/10/29(土) 16:26:18ID:???・cgiが出力するHTMLの文字コード(作りによっては = スクリプトの文字コード)
・MySQLクライアントが使用する文字コード
・MySQLのバージョンによっては、MySQLサーバーが使用する文字コード
が合っていれば、特に文字コード変換をしなくても化けないと思うけど。
0886nobodyさん
2005/10/29(土) 16:26:35ID:???なるほど・・・
となると今後は
tmp.php?val1=hoge1&val2=hoge2&val3=hoge3・・・
というデータの渡し方は急速に過去の手法になってしまうわけ?
0888nobodyさん
2005/10/29(土) 16:36:40ID:???んな訳ない。セッションはページ間の受け渡しに使うものであって、
他の関係ないページにデータを渡す手段としてのGETやPOSTが無くなるとは
とても思えない。
例えばここ(掲示板等)からgoogleにだってデータ受け渡せるでしょ
http://www.google.co.jp/search?q=the+answer+to+life+the+universe+and+everything
0889nobodyさん
2005/10/29(土) 16:45:31ID:62Wo0hD90890nobodyさん
2005/10/29(土) 16:51:45ID:???あとここはPHPスレだから、htmlスレにいったほうがいいかと
0891nobodyさん
2005/10/29(土) 17:51:01ID:cNmjzv6x<?php
function header($title) {
print <<< _HTML_
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
〜〜〜
<body>
_HTML_;
}
?>
-----------------
header.incをメインのphpで読み込んで、使いたいんですが、エラーがでます
<?php
require_once("header.inc");
function html() {
header("登録完了");
print <<< _HTML_
〜〜〜〜
_HTML_;
}
?>
0893nobodyさん
2005/10/29(土) 23:55:06ID:???や
system("mkdir /var/www/html/hoge");
を動かそうとすると前者はFALSE
0894893
2005/10/29(土) 23:59:51ID:oJpOHanRもう一度最初から
Fedoracore4、apache2でphpを動かしています。
mkdir("/var/www/html/hoge");
や
system("mkdir /var/www/html/hoge",$aho);
echo $aho;
を動かすと前者はFALSE、後者は1が帰ってきて
hogeフォルダが作れません。
windowsの場合だと上記の方法でうまく行っていたのですが
linuxではsystem関数やmkdir等を使う場合は特別な設定が必要なのでしょうか
0896nobodyさん
2005/10/30(日) 00:20:33ID:1KfOrRxK[form.html]
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
フォームから送られてきたものを処理するphpではデータをそのままSQLに送ってます
で、SQLの照会順序は
sjis_japanese_ci
テーブルの照会順序も
sjis_japanese_ci
なんで文字化けするんでしょう??
他どこをいじったらいいですか?
0897nobodyさん
2005/10/30(日) 00:23:55ID:???0898nobodyさん
2005/10/30(日) 03:28:29ID:1KfOrRxKちなみにどうやるんでしょう・・・
0899nobodyさん
2005/10/30(日) 03:45:54ID:???文字コードって知ってる?
SQLにデータを入れるときに、SQLのキャラクタにあわせて文字コード変換してる?
とりあえずSQLに入れる前にmb_convert_encording汁。
0900nobodyさん
2005/10/30(日) 09:42:35ID:???MySQLと接続後(mysql_connect() を呼び出した後)に
mysql_query('SET NAMES sjis');
を実行したら直らないか?
0901893
2005/10/30(日) 11:18:12ID:os3jjLkZだー!そんな基本的なこと何忘れてんだろう・・
ありがとう!
0902nobodyさん
2005/10/30(日) 13:26:35ID:oTdkkAz2ごちゃごちゃしてきて、
どの{}かさっぱり分からなくなってくるんだけど、
何か分かりやすい記述方法ないでしょうか?
インデントとか使ってるが全く俺には効果なしです。
0903nobodyさん
2005/10/30(日) 13:30:59ID:???0904nobodyさん
2005/10/30(日) 13:32:20ID:???ショートカットで現在指定している始点・終点括弧に飛ぶやつとか
範囲色が出るやつとか色々あるからエディタを変えなさい。
0906nobodyさん
2005/10/30(日) 13:46:58ID:???中の処理を適度に関数化。
後は while の中で if 〜 else なんかの処理は continue を使って else を
排除する(インデントを浅くする)ことができる場合もあるし。
まぁ賛否両論だろうけど、好きずきで。
0908nobodyさん
2005/10/30(日) 14:11:21ID:???どう使い分けてる?
0909nobodyさん
2005/10/30(日) 14:22:32ID:???Cookieだと以下のようなことが起きるのでURL埋め込み or HIDDEN渡しにしてCookieは使用していない。
ブラウザAを起動してユーザー名 xxx でログオンしてセッションに xxx を保存
別にブラウザBを起動してユーザー名 yyy でログオンしてセッションに yyy を保存
ブラウザAでログオンしたユーザー名が yyy になってしまう
0911nobodyさん
2005/10/30(日) 14:27:21ID:???$_POST[abc]
どっちが正しい表記だっけ?
0913nobodyさん
2005/10/30(日) 14:48:12ID:???0915nobodyさん
2005/10/30(日) 15:49:34ID:???やりたいことは、複雑な入れ子になった配列にたいしてある関数を適用させるのですが、
すでに関数を適用した配列に対して2回以上の適用を避けるために、配列のIDみたいなのを取得して記録しておこうと思っています。
$hash = array();
function foo($array) {
global $hash;
$id = object_id($array);
if ($hash[$id]) return;
$hash[$id] = true;
foreach ($array as $item) {
if (is_array($item)) {
foo($item);
} else {
...
}
}
}
よろしくお願いします。
0917915
2005/10/30(日) 16:01:16ID:???データである$array自体に変更を加えるわけにはいかないんです。
この制約があるために、配列のIDみたいなのがないかなーと。
0918nobodyさん
2005/10/30(日) 16:32:01ID:???出力用の変数に出力する内容をぶちこんでサイズを見て分割、受け渡しはセッションで。
っていう方法しか思いつきません。他になにか方法があればヒントだけでも知りたいです。
0919nobodyさん
2005/10/30(日) 17:02:36ID:???(テキストファイルにある文字列を書き込んだり、修正したりする感じです)
一から作るのもあれなんで、
モジュールとかないもんでしょうか?
0922nobodyさん
2005/10/30(日) 19:17:33ID:???させるみたいなのあるじゃないですか。
そこの部分が個人的にきったないコードになってしまうんです。
いい見本きぼんぬ
0923nobodyさん
2005/10/30(日) 19:29:50ID:???長いと見る気無くすので骨子の部分だけで。
0925nobodyさん
2005/10/31(月) 02:51:28ID:MpHxARpO出力の際に↓のようなコードを書いてるのですが、
header("Content-type: image/gif");
imagegif($im);
imagedestroy($im);
IEだと、表示された画像を保存しようとしても、
ファイル名が 無題.BMP となり、保存形式もBMP形式しか選べません。
IEキャッシュの削除をしてみましたがだめでした。
(当然、PHPは4.x.x以上、GDはGIFが扱えるバージョンです。)
調べて見ると、どうもIEはContent-typeを無視するようで、
.htaccess で指定してみたんですが、これでも無視されてるようです。
text/htmlとして出力するようにしたら、うまく GIF形式になったんですが、
それだと、Firefoxなどのブラウザでファイルの中身が表示されるように・・・
なにかうまい解決策はないでしょうか??
0926nobodyさん
2005/10/31(月) 03:25:34ID:???それはIEがおかしくなってるよ
通常は元の画像形式で保存できる
ダウンロードされたオブジェクト(プラグインとか)が壊れてるとそうなるらしい
キャッシュフォルダーの設定のとこでオブジェクトを表示して全部削除すると直ったと思った
0927925
2005/10/31(月) 05:27:15ID:???と思ってPCとかでも試してみたけどだめでした
Content-typeが無視されるIEのバグのせいだと思うんですが・・・
うーん、うまい対策方法はないんだろうか
ほんとIEは消えてほしい ort
0928nobodyさん
2005/10/31(月) 05:28:10ID:???でした。
0929nobodyさん
2005/10/31(月) 05:49:32ID:???0930nobodyさん
2005/10/31(月) 06:03:41ID:???これも試してみ
ツール>インターネット オプション>全般>インターネット一時ファイル>
設定>オブジェクトの表示
状態の不明、壊れていますを削除
ttp://support.microsoft.com/default.aspx?scid=kb;ja;810978
0931nobodyさん
2005/10/31(月) 06:21:37ID:???だめでした
PHPで直接ファイル等を出力した場合に、
というか、
「どんなファイルでも、指定したContent-typeを無視して、
ファイルの内容から勝手にContent-typeを判断する」、
というIEのバグのせいらしいので、オブジェクトやキャッシュとは無関係だと思います。
>>929
ちょっと調べてそれでやってみます
0932nobodyさん
2005/10/31(月) 06:32:47ID:???の方法で、
Firefoxとかで保存する際に、デフォルトのファイル名が 〜.php (ファイル形式 GIF)だったのが、
〜.gif(ファイル形式 GIF)になるようになりました!!!
しかし、肝心のIEは 無題.BMP(ファイル形式 BMPのみ)のまま・・・
やはり、 header(〜); で出力されたヘッダー全てが完全に無視されてるようです。
試しに、Content-typeの出力を
header("Content-type: text/plain");
としてみましたが、見事に無視・・・
ちなみにIEは6です。ほんとIEだけは消えてほしい・・・
バグだからしょうがないんですかね ハァ
0933nobodyさん
2005/10/31(月) 06:36:32ID:???>>292のでぐぐったらこんなのが。
ここ参考にもうちょっとがんばってみまつ ort
0934nobodyさん
2005/10/31(月) 06:59:24ID:???俺のPCではIEでもちゃんとGIFで保存できるよ
ファイルの中身で判断してるのなら中身がGIFなら問題ないはず
↓はどうなる
http://nike.s151.xrea.com/x/imagettf.php?text=ABC&size=30&margin=10&bgcR=255&bgcG=255&type=gif
0935nobodyさん
2005/10/31(月) 07:16:43ID:???送っているGIF画像は完全な画像ですかね?
>ほんとIEだけは消えてほしい・・・
IEお断りにしたらいかが
0936nobodyさん
2005/10/31(月) 07:26:34ID:???それはきちんとgifで保存できました!
PHPの呼び出しかたはほぼ同じです。
なぜだろう・・・
出力の時点でおかしいのか・・・
>>935
imagegifで動的に出力してますが、Firefoxとかで中身を見るとGIFなので間違いないと思います。
IEお断り、したい ort
934のはなんでできるんだろう・・・
0937nobodyさん
2005/10/31(月) 07:47:33ID:???>試しに、Content-typeの出力を
>
> header("Content-type: text/plain");
>
>としてみましたが、見事に無視・・・
text/plainでも無題.BMPになるってこと?もしそうだとしたら、ファイルの中身が実はGIFじゃないのでは?
本当に中身がGIFなら、先頭の6バイトにGIF89a(16進数で0x474946383961)って入ってるはず。
(面倒がらず、きちんと確認してみな)
つーか、GDのバージョンによってはGIFって扱えなかったと思うから、その影響だったりしない?
0938nobodyさん
2005/10/31(月) 08:01:55ID:???ファイルの先頭は透明GIFではないので、GIF87aになってます
これもなんか問題ありますかね???
FirefoxではGIFででてますし、GDもそんな古いバージョンではないので、
GDの問題はないと思うのですが・・・
今、テスト用のサーバーを設定したので、設定が完了したらスクリプトをアップしてみます・・
なぜだ・・・
0939nobodyさん
2005/10/31(月) 08:05:23ID:???つ ttp://phptest.s155.xrea.com/x/test.php
ちなみにスクリプトは↓です。
やっぱりBMPでしか保存できない・・・・。鯖のXREAの問題なのかな・・・
<?php
$im = ImageCreate(128, 64);
imagefill($im, 0, 0, ImageColorAllocate($im, 0x00, 0x00, 0xff));
header("Content-type: image/gif");
header("Content-Disposition: inline; image.gif");
header("Cache-control: no-cache");
imagegif($im);
imagedestroy($im);
exit;
?>
0940nobodyさん
2005/10/31(月) 08:10:14ID:???0941nobodyさん
2005/10/31(月) 08:22:25ID:???データ入力を受けてその都度違うもん出力してたので、
no-cache っていれなきゃいけないもんだと思ったら、これいらなかったんですね・・・
もっかい勉強しなおしてきます O......rt
朝早くからいろいろとアドバイスくれたみなさん、本当にありがとうございましたm(_ _)m
0942nobodyさん
2005/10/31(月) 09:31:37ID:???0943941
2005/10/31(月) 09:56:27ID:???それを読み込んできてるんですかね・・・
考えてみれば、キャッシュから読み込んできたとしても、
それはそのパラメータで作られた唯一の画像なわけだから、
別にno-cacheにする必要はなかったんだなぁ・・・
0944nobodyさん
2005/10/31(月) 10:04:35ID:???だからキャッシュが壊れている時は、キャッシュに無い時と同様にBMPで保存される
Gecko系はもう一度要求し直すんだっけ?
0945nobodyさん
2005/10/31(月) 10:22:58ID:???BMPとして保存しようとするわけか。
0946nobodyさん
2005/10/31(月) 10:28:01ID:vz5n2QeIクラス1個の中にファンクションめっちゃ作るか
いっぱいクラス作ってファンクションちょっとずつ入れるかどっちがいいかな
0947nobodyさん
2005/10/31(月) 10:58:17ID:???0948nobodyさん
2005/10/31(月) 11:20:53ID:vz5n2QeIクラスいっぱい作ってやってるんですが、
ある掲示板の配布スクリプトDLして見てみると、
クラス1個しか使ってなかったので、不安になって聞いてみました
0949nobodyさん
2005/10/31(月) 11:27:56ID:???よーし パパ ベンチしてみるぞっ、と思ったけど、
クラスいっぱいつー状況が想定できない・・・
掲示板程度なら、10個もいかないべ。
0950nobodyさん
2005/10/31(月) 11:35:35ID:???なんのためのクラスなのかと。。。
0951nobodyさん
2005/10/31(月) 11:44:35ID:vz5n2QeIttp://www.phpweb.jp/
0952nobodyさん
2005/10/31(月) 11:54:52ID:???0953nobodyさん
2005/10/31(月) 11:59:48ID:???0954nobodyさん
2005/10/31(月) 12:21:47ID:???スレッドとレスのログファイルを分割している構造にしていて、
スレッドログ
11111111,title,,name,mail,投稿日,内容
22222222,title,name,mail,投稿日,内容
レスログ
1111111,name,mail,投稿日,内容,レスID
1111111,name,mail,投稿日,内容,レスID
2222222,name,mail,投稿日,内容,レスID
このような書き込み方をしているときに、
最新10件の表示の方法がおもいうかびません(つд`)
レスIDは2から始まって1000までという形です。
表示するときは、
スレッドキーに該当するレスのスレッドキーと同じ物をIDの順番で表示しています。
0956nobodyさん
2005/10/31(月) 12:33:51ID:???クラスってのは何かメリットがあって使うわけよ。
逆を言うと、何かメリットを享受できるような形のクラスを作成するわけよ。
そこのスクリプト(掲示板を1つDLしてみた)は、
クラスを使う事で便利になった(or 後になるだろうと期待する)部分が感じられない。
ただ、functionを並べて書いて最後にclassで囲んだって感じだよね。
まぁ、ページ全体を作成する別の枠組みからこれらのクラスを
パーツとして使うって事もあるかも知れないけど。
(でもソースを見る感じそれもないか。。)
あんまり言うと作者降臨するかも知れないのでこの辺で。
0957nobodyさん
2005/10/31(月) 12:53:16ID:???「最新10件」とは全スレッドで10件なのか、
各スレッド毎に10件なのか。
# 俺ならスレッド毎にレスを格納するファイルを分離するね。
0958nobodyさん
2005/10/31(月) 13:00:13ID:???ファイル全部読み込むしかないよ。file()が一番楽かと。
現在の件数を別口に記録してあるなら、fgetsで適切な回数読み捨てる手もあるけど。
まあDB使えばそんな心配もせずにすむわけで。
0959nobodyさん
2005/10/31(月) 13:10:08ID:???スレ一覧→ファイルがあるかチェックして表示
スレ内→ファイルから読み込み
みたいな。
データベースの方がいいと思うが。
0960nobodyさん
2005/10/31(月) 13:24:26ID:???PEARのライブラリとかこれと似たようにやってるのが結構ある。
多分PEARのは関数名が被らないようにってだけだと思うけど。
0961nobodyさん
2005/10/31(月) 14:03:20ID:???そのサイトの「ツリー型掲示板」ってのを見てみたけど。
作者さんには申し訳ないがクラスの *使用例* としては良い例ではないな。
汎用性がないから他で使い回せないし、現状ではクラス化しているメリットはない。
もっとも、作者さんがクラスの使用例としてアップしているわけではないから、
この点をグダグダ言う必要はないんだろうけど。
元々の話が一つのクラスと複数のクラスでどっちが重い?という話だけど、
ベンチとってみないと判らない、ってのが正直なところ。
ただ、クラス化するのはプログラマが楽をするためであって、重い、軽いとは
次元の違う話だと思うよ。
掲示板であれば、データの保存方法、データの取り出し方法が重い、軽いに
大きく影響を与えるから、これらと比べると些末な事ではないかと。
0962nobodyさん
2005/10/31(月) 14:27:01ID:???trueにする場合、falseにする場合、それぞれどんな名前がよいですか?
0963nobodyさん
2005/10/31(月) 14:29:00ID:???0964nobodyさん
2005/10/31(月) 14:30:00ID:???名前はオブジェクトのキャラクターにあわせてつけろ
0965nobodyさん
2005/10/31(月) 14:41:31ID:???0966nobodyさん
2005/10/31(月) 14:57:07ID:???設定 set<状態(名)> ex. void setSecure()
てな話じゃないの?
get<X>、set<X>でもいいけどさ。
0967nobodyさん
2005/10/31(月) 15:47:28ID:???1.先頭を大文字にする(ToString()など)
2.単語の区切りはアンダーバー(is_null()など)
3.2単語目以降は大文字(imageCreateFromJpeg()など)
4.すべて小文字(imagecreatefromjpeg()など)
一般的にはどれですか?
0968nobodyさん
2005/10/31(月) 15:55:34ID:???{
var $hoge; ← 変数は小文字
var $hoge_hoge; ← 単語はアンダーバーで区切る
function toString(){} ← メソッドは動詞+名詞の形.最初の単語は小文字
function getHtml(){} ← HTML ではなく Html
}
function to_string() ← 通常の関数は小文字でアンダーバー区切り
こんな感じ. PEAR CS 準拠.
0969nobodyさん
2005/10/31(月) 16:07:27ID:???0970nobodyさん
2005/10/31(月) 16:18:34ID:???ごめ,そうみたい.ラクダ式.
http://pear.php.net/manual/en/standards.naming.php
0971967
2005/10/31(月) 21:54:47ID:???0972nobodyさん
2005/10/31(月) 22:22:25ID:???//テキスト
http://www.sample.co.jp/aaa.html
//画像
http://www.sample.co.jp/bbb.jpg
//テキスト
http://www.sample.co.jp/ccc.php
0973nobodyさん
2005/10/31(月) 22:24:12ID:???受信してHTTPヘッダみないと分からん。
0974nobodyさん
2005/11/01(火) 00:07:52ID:???0978nobodyさん
2005/11/01(火) 12:30:46ID:???いう風に残したいんですが、どのようにしたらいいですか?
教えてください。
require(abc.php)とか使うんですかね?
レス数が950を超えています。1000を超えると書き込みができなくなります。