【PHP】下らねぇ質問はここに書き込みやがれ 24
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/07(金) 14:54:53ID:KnVubDvEここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0302nobodyさん
2006/07/12(水) 01:11:36ID:???とかやるくらいなら
$a = $article->aaa;
ってやりゃいいじゃん。
0303nobodyさん
2006/07/12(水) 01:22:40ID:IbIRSqg8画像は$upfileにパスが入ってます
こんな感じで送ってます
$length = "Content-type: application/x-www-form-urlencoded\n";
$length .= "Content-Length: ".strlen($buffer)."\n";
$gazou = "Content-Type: image/jpeg\n";
$gazou .= "Content-Length: ".filesize($upfile)."\n";
//socketで送るデータ
$dat = "$method $path HTTP/1.0\n";
$dat .= "User-Agent: $agent\n";
$dat .= "Referer: $d_ref\n";
$dat .= "Host: $host\n";
$dat .= "Connection: close\n";
$dat .= "$length\n";
$dat .= "$buffer\n\n";
$dat .= "$gazou\n";
$dat .= "$upfile\n\n";
0306nobodyさん
2006/07/12(水) 01:36:39ID:???0307nobodyさん
2006/07/12(水) 01:49:45ID:???0308nobodyさん
2006/07/12(水) 02:01:41ID:???0309nobodyさん
2006/07/12(水) 02:22:34ID:???これはunsetできなかったってことですよね?
なぜunsetできないのですか?
0310nobodyさん
2006/07/12(水) 03:55:24ID:IbIRSqg8独学なのでさっぱりでした
調べてみましたが
Content-Disposition: form-data; name="message"
こんな感じで送ればいいのでしょうか?
0311nobodyさん
2006/07/12(水) 06:10:47ID:???エラーだけ示されてもわかる訳ないでしょ?
昨日テストで答えが間違ってますって言われたんですが、どこがおかしいのでしょうか?
って言われて何と答えるよ?
0312nobodyさん
2006/07/12(水) 06:48:05ID:???フォームから受け取り、プレビューを表示した後の処理で、
プレビューのフォームにhiddenで内容を埋め込むか、セッションを使おうと
思ってますが他になんか良い方法ありますか?
0317nobodyさん
2006/07/12(水) 07:47:01ID:???Ajaxが一体どういうものかも知らず、JavaScript=Ajaxと覚えてるだけとかな。
0319244
2006/07/12(水) 08:33:55ID:???煽られたのでまたきました。
256 244 sage 2006/07/11(火) 16:27:42 ID:???
257 nobodyさん sage 2006/07/11(火) 17:10:33 ID:???
私が解決しましたと書き込んでから40分間以上書き込んでない状況に対して、
「これ以上続けるなら」とはどういう了見ですか?
まるであなたが話しをひっぱって続けているようにしか見えません。
0320nobodyさん
2006/07/12(水) 08:42:19ID:???こいつらコッチに丸投げしてぇ
0321nobodyさん
2006/07/12(水) 08:43:13ID:???http://pc8.2ch.net/test/read.cgi/php/1150088761/
0322312
2006/07/12(水) 08:57:58ID:???d
今回はセッション使う事にしました。
コメントスパムツール対策にもなりそうなので
携帯もあるのでjsはパスです。書いとくべきでしたね。
0323nobodyさん
2006/07/12(水) 09:00:53ID:???反応するとまた書き込んでくるから、何も書かない方がいい。
反応さえしなければ無害だ。
多分お前の書き込みになにかレスしてくるぞ。
0326nobodyさん
2006/07/12(水) 10:49:04ID:???と、320にレスしてくるのを予言されたので、レスせざるをえませんでした。
>>320
誰にでもミスはあるんだ。だからミスを責めることはできない。
0327nobodyさん
2006/07/12(水) 12:11:09ID:/vjOPwv1そこで、URLの判別に次のようなルールの正規表現を作りたいんですが、なかなかうまく行きません…。
・URLを判定する正規表現
・ただし、「 :;」が含まれている場合は許可しない。
URLを判別する正規表現というのは、
(http:|https:)(\/\/[-_.!~*\')a-zA-Z0-9;\/?:\@&=+\$,%#]+)
で行ってるのですが、「 :;」を除外できません。
どなたかご助言頂けるとありがたいです。
0328nobodyさん
2006/07/12(水) 12:19:05ID:???ちったぁ正規表現覚えろよ
ttp://pc8.2ch.net/test/read.cgi/tech/1131028296/
0329297
2006/07/12(水) 12:42:04ID:67ROEMVuありがとうございます。
そのまんま「$hoge_data->$variable」でよかったのですねorz
# $article を $hoge_data に置換し損ねていましたorz
0330nobodyさん
2006/07/12(水) 13:45:17ID:xb5eEiQB0334nobodyさん
2006/07/12(水) 13:53:19ID:xb5eEiQB0336nobodyさん
2006/07/12(水) 13:56:15ID:???Foo クラス内の、 func() という static関数を呼び出すときは、
Foo::static だが、
$foo = new Foo(); としたクラスからメソッドを呼び出すときは、
$foo->myFunc();
となる。これは、 $foo は作成されたオブジェクトの参照値(リファレンス)であり、
-> という記号は、デリファレンスすることをあらわす。
0337nobodyさん
2006/07/12(水) 13:56:51ID:???0339nobodyさん
2006/07/12(水) 14:49:48ID:???2chの情報を鵜呑みにすんなよ・・・
金貰ってるわけじゃないから嘘言っても詐欺とかにならないんだぞ
名誉毀損とかなら別だが・・・
0340nobodyさん
2006/07/12(水) 16:12:26ID:hqxdU0Dg他のサーバにあるquicktimeファイル(.movとか)のサイズ(縦・横)を取得することは可能でしょうか?
もし可能なら、教えてください。
0341nobodyさん
2006/07/12(水) 16:17:56ID:???0342nobodyさん
2006/07/12(水) 16:38:42ID:hqxdU0Dg他のサーバにあるquicktimeファイル(.movとか)のサイズ(縦・横)を取得することは可能でしょうか?
もし可能なら、その方法を教えてください。
0344nobodyさん
2006/07/12(水) 17:26:05ID:???他のサーバにあるquicktimeファイル(.movとか)のサイズ(縦・横)を取得することは可能でしょうか?
もし可能なら、その方法を教えてください。
0345nobodyさん
2006/07/12(水) 17:27:17ID:???0347nobodyさん
2006/07/12(水) 18:29:01ID:BdFa9tBW指定したurlからhtmlソースを取得するAPIなどはありますでしょうか?
ありましたら、そのAPI名を教えてください。
0349nobodyさん
2006/07/12(水) 18:36:07ID:BdFa9tBW0350nobodyさん
2006/07/12(水) 18:36:10ID:???それならPHP APIなんていいんじゃね?
0351nobodyさん
2006/07/12(水) 18:41:03ID:BdFa9tBWすみません。質問の仕方が悪かったです。
APIではなく、関数教えて頂けませんでしょうか?
0352nobodyさん
2006/07/12(水) 18:41:51ID:???次のページで保存されてないのは仕様ですか?
0353nobodyさん
2006/07/12(水) 18:42:24ID:???0354nobodyさん
2006/07/12(水) 18:43:58ID:???0355nobodyさん
2006/07/12(水) 20:44:26ID:BdFa9tBW教えて頂けませんでしょうか?
0356nobodyさん
2006/07/12(水) 20:52:20ID:???自分で考えろ
0357nobodyさん
2006/07/12(水) 21:11:44ID:bxIkUHnKhttp://jp.php.net/manual/ja/index.php
ここに載ってるよ。
てか、ほとんどの質問、ここの関数調べてきゃ普通に一発で行きつくものばっかじゃねーかYO!
くだらない質問というよりも丸投げだろ!
0358nobodyさん
2006/07/12(水) 21:12:02ID:???substr ("abcdefghijk", 2, 4);
0359nobodyさん
2006/07/13(木) 00:01:37ID:???その質問は明らかに悪い
何がしたいのかがわからない
元データがはっきりとわかっていて、取得する文字列もはっきりとわかっているのなら
$foo = "cdef";
とか書かれても仕方ないぞ
0360nobodyさん
2006/07/13(木) 00:22:14ID:???「n桁目〜m桁目までを取り出したいんです」
なのか
「bからgまでの内容を取り出したいんです」
なのか
「cdefって文字があったら取り出したいんです」
なのか、まったくさっぱり。
きみたちゃ小学生レベルかと・・・
0361nobodyさん
2006/07/13(木) 00:38:26ID:4CgVM/D80365nobodyさん
2006/07/13(木) 04:51:44ID:???0367nobodyさん
2006/07/13(木) 18:03:28ID:4QScch9z0368148
2006/07/13(木) 18:58:37ID:???スレ違いだとは思いますが、開発言語がPHPなのでここで質問させてもらいました。
問題を解決するためにどのような情報(header関係だとは思うんですが・・・)を調べればいいのかわかりません。
ヒントだけでもいいのでどなたかわかる方いましたら宜しくお願いします。
0369nobodyさん
2006/07/13(木) 19:02:00ID:???http://example.com/b/login.php
上記のように「a」と「b」二つのフォルダにそれぞれセッションによる
ログイン認証が必要なスクリプトを置いたとき、「a」でログインした状態で
「b」にアクセスすると、既にログイン済みの状態となってしまいます。
上記の現象は、違うディレクトリ間でセッション・ファイルを共有してしまっている…と
いうことなのだと思うのですが、これってPHPの仕様ですか?
ちなみにサーバはXREA+です。
0370nobodyさん
2006/07/13(木) 19:07:50ID:???0371nobodyさん
2006/07/13(木) 19:20:47ID:???http://jp2.php.net/manual/ja/ref.session.php
> 複数回のアクセスを通じて特定のデータを保持する手段を実現するものです。
逆に聞くが、ディレクトリやファイルが変わった時に
保持されないようなセッション情報に何の価値があると?
まずはログインしているかどうかの判定を見直せ。
0372nobodyさん
2006/07/13(木) 19:38:22ID:???そうかねぇ?
http://example.com/admin/login.php
http://example.com/users/login.php
でセッション情報を分離したいとかよくある要求だと思うけど。
>>369
http://jp.php.net/manual/ja/function.session-set-cookie-params.php
で
http://jp.php.net/manual/ja/ref.session.php#ini.session.cookie-path
を限定してあげれば良いと思うよ。
0373nobodyさん
2006/07/13(木) 19:44:17ID:???http://jp.php.net/manual/ja/function.session-name.php
で session ID を別々に分けておかないとごっちゃになるよ。
0374nobodyさん
2006/07/13(木) 19:49:21ID:???状況を想定しているのだろうな
0375nobodyさん
2006/07/13(木) 19:57:48ID:???それだとCookie無効時に不具合が生じるんじゃ?
セッションデータにユーザレベルなり何なりを組み込んで
そっちで判断した方が良いんじゃないかと思うが。
0376nobodyさん
2006/07/13(木) 20:01:30ID:???> それだとCookie無効時に不具合が生じるんじゃ?
あ"? そんなの /a/ と /b/ で分離するとかしないとかに関係ない話じゃん。
そもそも Cookie が無効でもセッション情報が扱えるように
URL に ID 付与とかあるわけで、今回の話題と何の関係が?
0378nobodyさん
2006/07/13(木) 21:32:54ID:???0379nobodyさん
2006/07/13(木) 21:45:50ID:???http://example.com/a/login.php
でログインした状態で
http://example.com/b/login.php
に行くと既にログイン済みになるという問題が起こっている。
>>371は基本的にセッションデータはサーバ上でひとつなので、
ログイン中かどうかを判断するルーチン
(恐らく『セッションデータがある=ログインしている』とかそんな感じと思われ)
を見直せと言った。
>>372-373は
http://jp.php.net/manual/ja/function.session-set-cookie-params.php
でセッションキーを補完するクッキーの有効ディレクトリを制限してやれば
ディレクトリを移った時にはそのクッキーは食わないのでログイン済みにはならないと言った。
>>374は>>372の方法だとクッキーを無効にしてある場合、つまり
http://example.com/a/login.php?SID=hagehagehogehoge
のようにURLパラメータとして受け渡す場合に
http://example.com/b/login.php?SID=hagehagehogehoge
のようにされるとやっぱりログイン済みになるので>>372の方法は不完全で、
セッションデータの中に今どちらにログインしているのかを示すデータを埋め込むべきだと言った。
要するに>>371と同じくログイン中かどうかを判断するルーチンを変えろと。
すると何故か>>377=372はキレ出した。
それを見た>>377は呆れていた。
一方ロシアは鉛筆を使った。
0380nobodyさん
2006/07/13(木) 21:49:19ID:???× 補完
○ 保管
0381nobodyさん
2006/07/13(木) 21:51:39ID:???× http://example.com/a/login.php?SID=hagehagehogehoge
○ http://example.com/a/login.php?PHPSESSID=hagehagehogehoge
0382nobodyさん
2006/07/13(木) 21:54:18ID:???> http://example.com/a/login.php?SID=hagehagehogehoge
> のようにURLパラメータとして受け渡す場合に
> http://example.com/b/login.php?SID=hagehagehogehoge
> のようにされるとやっぱりログイン済みになるので>>372の方法は不完全で、
ログイン済みにはならない。>>373 があるから。
0383nobodyさん
2006/07/13(木) 22:14:17ID:???0384369
2006/07/13(木) 22:16:38ID:???皆さんのご意見を参考に、セッションデータに格納するログイン判定用のデータを、
ディレクトリ毎に変えてみたら上手くいきました。
以下のような感じです。
$_SESSION['loginOK'] = "a-logined"; //「a」でログイン成功時に格納するログイン済みフラグ
$_SESSION['loginOK'] = "b-logined"; //「b」でログイン成功時に格納するログイン済みフラグ
今回のような事例に関しては、意外と気付かないでいる人も多いのではないでしょうか?
同じドメインでディレクトリやサブディレクトリ毎に別のWebアプリを置いていて、
ログイン判定データが同じだったら全部のログイン認証が筒抜け・・・というのは盲点でした。
一種のセキュリティ・ホール(?)になりうるので、このスレのテンプレにも入れたらいかがでしょうか?
0385nobodyさん
2006/07/13(木) 22:25:36ID:dYQP4E5n<label>
<input type="file" name="upfile" size="35" />
</label>
<label>
<input type="submit" name="Submit" value="送信" />
</label>
</form>
<?
if($_POST['Submit'] == "送信"){
echo $_POST['upfile']:
}
?>
アップローダーを作ろうと思っているのですが、
上記のようにしても、upfileには何も格納されないのです。
どうすれば格納されるようになるのでしょうか?
0386369
2006/07/13(木) 23:03:37ID:???さらに実験してみたところ、
仮にログイン判定用のセッション・データ(>>384で書いたログイン判定フラグ)が全く同じ場合でも、
session_name('a');
session_name('b');
などのようにsession_nameをディレクトリ毎に分けて設定する(毎回session_startの前にコールする)という方法でも
大丈夫だということが分かりました。
0387nobodyさん
2006/07/13(木) 23:28:13ID:???$_SESSION["siteA"]["色んな情報"] = ...
$_SESSION["siteB"]["色んな情報"] = ...
ってやってたけどこれじゃ何か問題あるの?
0389nobodyさん
2006/07/14(金) 01:29:17ID:???一度、全ての行を、変数にいれて、
最後の行だけを除いて、保存するというやり方しかないんでしょうか?
テキストファイルがでかくなるとメモリの消費が辛いんですが、変数を節約するいい方法を教えて下さい
0391nobodyさん
2006/07/14(金) 03:23:20ID:???やりようはあるよ
ftellで場所を記憶しながらfgetsで取得していって
最後にftruncateでいける。
行の長さがある程度予想つくならば、最初にfseekしてパフォーマンスを上げられる。
0392nobodyさん
2006/07/14(金) 03:27:25ID:???最終行の先頭位置さえ分かればftruncate()で以降を削除できる。
最終行の位置を探すには
1.頭から1行ずつ読み込んでいって行末のftell()を保持しながら最後まで探していく
2.fseek()でファイル末尾に移動して1文字ずつ後ろから読み込んでいって1つ前の行末を探す
3.fseek()でファイル末尾から1行以上の分量だけ戻った位置に移動してそこから行単位に読み込む
などのアルゴリズムが考えられる。
3番は1行の最大長が分かってる場合は比較的有効。これが全然不明だと
100バイト戻って探索→ダメだったらさらにもう100バイト戻って…みたいになって大変。
この辺は対象ファイルのでかさなどからどこまで手間をかけるべきかを自身で判断しる。
処理時間は問題にならず単に消費メモリ量だけの問題なら1番で十分対応できる。
この種の末尾削除処理が頻繁に発生するなら、そもそもファイル書き込みの段階で
各行の先頭位置をインデックスファイルとして別途保存するか
そもそもファイルなんてやめてDB使った方がいい。
0393nobodyさん
2006/07/14(金) 03:29:28ID:???あと、全部丸ごと変数に入れなくても、
1行読み込み→その行を別のファイルに出力
というのを行単位に繰り返していって、
最後に元ファイル削除&別のファイルをリネーム、
って手順でも単純ながらメモリはほとんど食わずに処理できる。
でも、分量が多いならftruncate()の方が処理が軽いけどね。
0394nobodyさん
NGNGどうやればいいでしょうか?
"あ" を "202 240"
"犬" を "214 242"
というふうにです。
ご存じの方がいればよろしくお願いします。
0395nobodyさん
2006/07/14(金) 04:19:14ID:???$c = "あ";
$o = decoct((ord($c{0])) . " " . decoct(ord($c{1}));
echo $o;
0396nobodyさん
2006/07/14(金) 05:37:32ID:???言われてみて自分の管理してるサイト調べてみたら、
別々のシステムなのにログイン情報(セッションファイル)が共通になってた…orz
0397nobodyさん
2006/07/14(金) 07:08:44ID:???マニュアル嫁
http://jp.php.net/manual/ja/features.file-upload.php
0398nobodyさん
2006/07/14(金) 11:50:58ID:uuZ6ZGypfwrite($fp,'こんにちわ');
fclose($fp);
上記のようにファイルを作成する際に、
文字コードをUTF8に指定するには
どう記述すればいいんでしょう???
0400nobodyさん
2006/07/14(金) 12:12:07ID:???0401394
2006/07/14(金) 12:26:35ID:???ありがとうございました。後で試してみます。
それで、逆を聞くのを忘れていました。
"202 240" を "あ"
"214 242" を "犬"
というパターンです。よろしくお願いします。
■ このスレッドは過去ログ倉庫に格納されています