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

【PHP】下らねぇ質問はID出して書き込みやがれ 77

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/12/08(月) 01:27:39ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0331nobodyさん2008/12/15(月) 11:13:49ID:???
>>330
その参照先には何も理由とか、無理とか書いてないよな?
だいたい、beginでエラー返してくれるんだったら、何も問題ないわけだが
0332nobodyさん2008/12/15(月) 14:36:42ID:???
あきらめたらそこで試合終了だよ(AA略
0333nobodyさん2008/12/15(月) 14:52:01ID:???
年がばれますよおっさん乙
0334 ̄ ̄ ̄ ̄ ̄)/ ̄ ̄ ̄ ̄ ̄ ̄ ̄2008/12/15(月) 15:11:35ID:vRJjZHan
     /⌒ヽ
    / ^ ω^j、
 _, ‐'´  \  / `ー、_
/ ' ̄`Y´ ̄`Y´ ̄`レ⌒ヽ
{ 、  ノ、    |  _,,ム,_ ノl
'い ヾ`ー〜'´ ̄__っ八 ノ
\ヽ、   ー / ー  〉
\ \`ヽ-‐'´ ̄`冖ー-く
|| \ \         \     ∧_∧
||   \ \         \  ( ´Д`) オイ、なんか変なのがいるぞ
||    \ \         \ /     ヽ
||      \ \         / |  | |
||       \ \∧_∧ (⌒\|__/ /
          ヽ(     )絶対目合わせるな  ∧_∧
           /   く          \  (    ) うわー、なんか言ってるよ
           |     \           \/    ヽ
0335nobodyさん2008/12/15(月) 15:47:28ID:???
AAオタク乙
0336nobodyさん2008/12/15(月) 16:27:28ID:6UH6h1c5
$a = array('x'=>'X','a'=>'A',0=>'B',1=>'C',2=>'Y',3=>'Z');
ksort($a,SORT_REGULAR);
print_r($a);
のように5.2.5で走らせると結果が
Array
(
[x] => X
[0] => B
[a] => A
[1] => C
[2] => Y
[3] => Z
)
となってしまい、なんだかおかしい気がします。
SORT_NUMERIC や STRINGの場合はわかるんですが
ksrotでのREGULARってどういうソートを行ってるんでしょうか。
0337nobodyさん2008/12/15(月) 16:40:44ID:???
>>336
5.1.でも同じ現象だった
バグじゃね?
0338nobodyさん2008/12/15(月) 16:48:12ID:???
>>336
キーに0が入るとだめだめってことかね
0がないときの動作は正常
<?php
$a = array('x'=>'X','a'=>'A',0=>'B',1=>'C',2=>'Y',3=>'Z');
unset($a[0]);
ksort($a,SORT_REGULAR);
var_export($a);

array (
'a' => 'A',
'x' => 'X',
1 => 'C',
2 => 'Y',
3 => 'Z',
)
0339nobodyさん2008/12/15(月) 16:56:18ID:???
連想配列のときに数字と文字をごっちゃにしたらソートできないわな
0340nobodyさん2008/12/15(月) 18:47:16ID:6UH6h1c5
バグっぽいですか。ありがとうございます。

>>339
sort asort あたりだとデフォやREGULAR指定でも問題ないんですけどね。
ksortのときだけSORT_STRINGにでもしておかないと場合によっては想定外の動作しそう。
0341nobodyさん2008/12/15(月) 22:10:30ID:Y6XF9DXs
質問

アクセスカウンタ関係とか、
ファイルロック関係とか、
ライブラリみたいな形で
まとまってるものってないの?
0342nobodyさん2008/12/15(月) 22:18:16ID:Y6XF9DXs
質問

解説サイト見ると、
「ファイルがロックされているかどうか、
返り値をみて確認したほうが良い。

ファイルがロックされていないのに
ロックされていると勝手に決め付けて
処理をすすめてしまう可能性がある」

と書いてあるのですが、これって本当に
いちいち確認したほうがいいの?

ロックが取得できなかったときは、
そのまま待機に入るのではないの?
0343nobodyさん2008/12/15(月) 22:19:42ID:???
通常の配列と連想配列がごっちゃになったデータのソートなんて、未定義なんじゃねーの?
個人的にはNotice出してくれてもいいくらい
0344nobodyさん2008/12/15(月) 22:28:37ID:???
>>342
文章は読む気がしないからコードを書いて質問したまえ
0345nobodyさん2008/12/15(月) 22:31:29ID:???
素朴な疑問なんですけど、phpってやっぱり小規模WEBシステムにし
か向かないのでしょうか?大規模サイトだとパフォーマンスが悪いのですか?

ただ、mixiとかの大規模システムでもphpで運営してるそうなのでその辺りの関係がいまいち分かりません。
そもそもどんな言語で開発をしたとしても最終的に実行される時には、
機械語に翻訳されて実行される訳だから速度なんて変わらない気がするのでが実際のところどうなんでしょうか?
0346nobodyさん2008/12/15(月) 22:32:36ID:???
>>345

>>1
0347nobodyさん2008/12/15(月) 22:32:50ID:???
>>1
0348nobodyさん2008/12/15(月) 22:34:02ID:???
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
0349nobodyさん2008/12/15(月) 22:34:20ID:???
>>345
>>1読め
0350nobodyさん2008/12/15(月) 22:35:14ID:???
IDも出せないチキン野郎はおとといきやがれ!
03513452008/12/15(月) 22:41:53ID:???

チキンは嫌い!!
俺から逃げるな!!
0352nobodyさん2008/12/15(月) 22:42:38ID:SRI0Veq9
PEARを使ってみたいのですが
PHPを開発しているPCが諸事情でネットに繋いでません。
そのPCにZIP圧縮をするPEARを入れたいのです。

PEARのサイトでArchive_Zip-0.1.1.tarをダウンロードして解凍したのですが
それからどうすればいいかが分かりません。

オフラインでこのArchive_Zip-0.1.1をインストールするには
どういう手順になるのですか?
0353nobodyさん2008/12/15(月) 22:45:08ID:???
解凍する→適当な場所に置く→それをincludeする
0354nobodyさん2008/12/15(月) 23:38:41ID:???
>>341
公式サイトの関数一覧じゃ足りんの?
03553522008/12/16(火) 00:14:38ID:p4XUaZgR
>>353
えっ?それだけ?

眠いので明日起きたら実験してみます。
0356nobodyさん2008/12/16(火) 00:17:52ID:1rcPvBlh
どうしても楽天APIがやりたいのですが、PHP全く初心者です。何も知りません。
楽天APIのブログのをコピペして使おうと思ってます。

まず必要なものは、パソコン、サーバー、ドメイン、terapad、ホームページビルダーのほかに何がありますか?
terapadで保存したものをサーバーにアップしましたが、保存の仕方が間違ってたのか、うまくいきませんでした。
言語はUTF-8、形式は何で保存したら良かったんでしょうか?
よろしくお願いします。
0357nobodyさん2008/12/16(火) 00:20:07ID:???
>356
うまくいきませんでした、じゃエスパーが来るまでお待ちいただくことになりますが。

エラーの内容をどうぞ。
0358nobodyさん2008/12/16(火) 00:30:40ID:xUK+da4V
>>354
(1)ファイルが存在するかどうか、確認する
(2)もしファイルが存在していたら、次の処理に進む
(3)もしファイルがなかったら、「指定されたファイルが存在しません」と
表示して、プログラムを止める
(4)ファイルが読み込み可能かどうか調べる
(5)もし読み込み可能なら次の処理に進む(だめならエラー)
(6)ファイルを読み込みモードでオープンする
(7)ファイルをロックする
(8)ファイルからデータ-を読み込む
(9)データ-を1プラスする
(10)ファイを書き込みモード(ファイルの内容クリア)でオープンする
(11)ファイルにさっき1プラスしたデータ−を書き込む
(12)ファイルをクローズする

こういう、一連の動作をまとめた
ライブラリとかってないんですか?
0359nobodyさん2008/12/16(火) 00:32:39ID:???
>>358
そんな単純な処理ならば自分で書いたほうが早いし勉強になるよ。
0360nobodyさん2008/12/16(火) 00:33:49ID:xUK+da4V
早いか遅いかなんて聞いてません
ライブラリとかでまとまってるのが
ないかって聞いてるんです
0361nobodyさん2008/12/16(火) 00:56:53ID:???
>>360
ライブラリならPEARとか
あとはZend Frameworkをライブラリとして使うかかな
一応FFrameworkとなってはいるが
単体でも使えるように設計されてた筈

まぁどちらを使っても>>358に書いてある
一部の手続きしか行ってはくれないがな

>>356
もうちょっとPHPとは何かを勉強した方が良い
0362nobodyさん2008/12/16(火) 01:05:10ID:???
>>356
API見てきたがPHP無くてもいいぞ
JavaScriptだけでもできる
0363nobodyさん2008/12/16(火) 01:20:15ID:???
>>361
ない。
他人の作ったライブラリなんてどうやったってかゆいところに手の届かないとこでてくる。
仮に近いライブラリあったとしても手順4がないとか5の間に別のいらない処理入ってるとかで満足いかんだろうな。
正式に依頼して作ってもらうか、自分で作るしかない。
0364nobodyさん2008/12/16(火) 01:20:51ID:???
ずれた>>361じゃなくて>>360だ。ごめん。
0365nobodyさん2008/12/16(火) 04:51:23ID:xUK+da4V
質問

ファイルが存在するか、確認する、という手順。
これをやったほうがいいのか。
あるいは、@をつけて、エラーメッセージをスルー
したほうがいいのか。意見を述べてください。
0366nobodyさん2008/12/16(火) 04:53:13ID:???
◆質問する時の注意
・ 質問者として、態度をわきまえること。
0367nobodyさん2008/12/16(火) 04:53:37ID:xUK+da4V
ちなみに、@でエラーメッセージを出さない方法、
これってエラーが出ないっていうだけで、
スクリプトの実行は中断されず、
実行が進みますよね。

これってまずくないですか?
0368nobodyさん2008/12/16(火) 05:00:26ID:xUK+da4V
もしかしてデーターベースであれば、
ファイルロックの仕組みが最初から
備わってるの?
0369nobodyさん2008/12/16(火) 05:01:00ID:???
>>366
           ∠_ンY7=r'─--- 、:;;__________!__ヽ//-‐ァ
              ,ハ:::::|l:::::::::r-┐:::::::::::::::::::::7::二7,/         ,. -───-
            ,.:'" ヘ.,_!!______::::::::::::[]:::l]::::::/::::::::/、       /
-─- 、.,_       ,:'  ,      /  ̄ ̄"''' ー-'-‐ ''"^ ヽ.     ,'   大 分 そ
     `ヽ.   /  / /  / ; !:.:.:.:.:.:.:.:! ', ヽ.  、    ':,    i   変 か う
 帰 分  ', ,.イ   ,'  ,' 、,_!_/」,.ハ:.:.:.:.:.:.ハ _!__  ',  ':,    ',.   |   だ. っ か
    か   i |   !  ! /|/  |./ ';.:.:.:/ |.´ハ  `ハ   ',    i  <.    な た
 れ. っ   | !   !  レ'r‐'ァ‐-=、 !:.:/  !/_,」_/_ !   i.   |    !
    た   >',  ,.! ハ ヽ ! Jリ  レ'  7´ i´ Jア'ァ  ,' i   !    ',
    か   |  V`'レ'|:.:.:!  `ー '       '、_,ン イi  ,ハ |   !    ヽ.
    ら   ,'    ! .|:.:.!'"'"     ,      ,.,.,. ハくタく!   |      `' ー-----‐
      ノ     | .|:.:人      ___       /:| |  !   |
‐--─ ''"´     .! .|:.:.:.| `: 、   ` 二フ u ,ィi:.:.:| !  :   !
          ,'  |:.:.:.|  | .>.、,    ,. イ  |:.:.:.! i  i   |
          /  ハ.:.:.!  ! /r'|、_`ニ_´  ,ィ|ヽ.|:.:.;'  |  !   ',
         ,.'‐'" ̄';.:.!イ"く /__     __/|:::::::レ'_____!_ !    ',
        /     レ' /、!::::::ヽ、   ン:::!7"´i /   `ヽ、,  i
       ,:'      、/:::;ヘ:::::::::::i-イ::::::::::|]::::::!}        ヽ. |
0370nobodyさん2008/12/16(火) 05:43:21ID:???
http://www.google.co.jp/trends?q=PHP%2Cruby&ctab=0&geo=US&geor=all&date=all&sort=0

逆転しそう
0371nobodyさん2008/12/16(火) 06:17:17ID:???
ほんと人の話を聞かないバカだな
なんで質問してるのかがとても不思議です
0372nobodyさん2008/12/16(火) 08:06:57ID:???
お礼を言わないのは>>1を満たしていないのだがな
0373nobodyさん2008/12/16(火) 09:33:49ID:7CqC2LzI
質問です。
まだ初学の段階で、画像のアップローダーなら作れるかなと思い挑戦しています。
フォームはコメントとアップロードファイル、それにsubmitボタンのみという構成です。
それらフォームの下にアップロードされた
ファイル名とそれへのリンク、コメントと時間が表示されるようにしたいと思ってます。
具体的にはファイルへの書き込み、どのように書き込めばいいか
またそれを読み込んでどのように表示させたらいいかで悩んでいます。
<?php
//初期値設定
$comment ="";
//フォームのメソッドがPOSTだったときの処理
if ($_SERVER["REQUEST_METHOD"]=="POST"){
//送信されたときの処理
if (isset($_POST["submit"])){
//日付の取得
$now = date("Y/m/d H:i:s");
//タグなどの除去
$comment = htmlspecialchars($_POST["comment"], ENT_QUOTES);
}
0374nobodyさん2008/12/16(火) 09:34:28ID:7CqC2LzI
//送信元の元のファイル名
$pic_name = $_FILES["pic"]["name"];
//サーバにアップされたテンポラリファイル名
$pic_tmp = $_FILES["pic"]["tmp_name"];
//コメントが未入力のときの処理
if (strlen($comment) == 0){
echo "コメントが未入力です。";
}
//現在位置の取得
$path = getcwd();
//OSによりディレクトリの区切り文字を分別・ファイルの保存場所の設定
if (isset($_ENV["OS"]) && preg_match(/windows/i, $_ENV["OS"])){
$path .= "\\";
}else{
$path .= "/";
}
//画像のファイル名およびtmpファイル名が1文字以上のとき
if (strlen($pic_name)>0 && strlen($pic_tmp)>0){
if (is_uploaded_file($pic_tmp)){
if (move_uploaded_file($pic_tmp, $path .basename($pic_name))){
echo "ファイルのアップロードに失敗しました。<br />";
}
}
}
0375nobodyさん2008/12/16(火) 09:35:36ID:7CqC2LzI
//ログファイルの名前の設定
$log_file = image.log;
//ログファイルを展開(無い場合は新規に作成)
$fh = @fopen($log_file, "a");
if (!$fh){
exit("ログファイルの展開に失敗しました。");
}else{
//排他ロック
flock($fh, LOCK_EX);
//書き込み内容
$log = $now ."\n";
$log .= $pic_name ."\n";
$log .= $comment ."\n";
//書き込み
fputs($fh, $log);
//ロック解除
flock($fh, LOCK_UN);
//ログファイルを閉じる
fclose($fh);
}
}
?>
0376nobodyさん2008/12/16(火) 09:36:20ID:7CqC2LzI
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>画像UPローダーβ版</title>
</head>
<body>
<h1>画像UPローダーβ版</h1>
<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST" enctype="multipart/form-data">
コメント<input type="text" name="comment" value="<?=$comment?>" size="50" /><br />
添付ファイル<input type="hidden" name="MAX_FILE_SIZE" value="1000000" />
<input type="file" name="pic" size="50" /><br />
<input type="submit" name="submit" value="アップロード" />
</form>
0377nobodyさん2008/12/16(火) 09:38:28ID:7CqC2LzI
<?php
//ここでログファイルの読み込みを行い日時・ファイル名・ファイルへのリンクを表示させる処理を行う

?>

</body>
</html>

以上になります。
よろしくお願いします><;
0378nobodyさん2008/12/16(火) 10:08:36ID:???
長くて読む気にならないので適当にレス

ログ形式は適当なデリミタを使って(とりあえず<>にする)
日時<>ファイル名<>コメント\nという感じにする
書き込んだログはfile関数で読み込む
fileで読み込んだものは改行ごとに配列に格納されるので
foreach等でまわしてexplodeでデリミタごとにさらに細分化したものを配列に収める

例)
/**
* ここはfileで読み込んだ中身
* $a = file(log_file);
*/
$a = array("2008/12/16 09:30:00<>up0<>コメント1",
"2008/12/16 09:31:11<>up1<>コメント2",
"2008/12/16 09:32:22<>up2<>コメント3");
//入れ物
$b = array();
//explodeで<>ごとに細分化したものを入れ物に格納
foreach ($a as $value) {
$b[] = explode("<>", $value);
}

この時点で$b[0]にはarray("2008/12/16 09:30:00", "up0", "コメント1")が格納されている
あとはこれを使って

for ($i = 0; $i < count($b); $i++) {
echo "<td><a href=\"{$path}{$b[$i][1]}\">{$b[$i][1]}</a></td><td>{$b[$i][2]</td><td>{$b[$i][0]</td>";
}

見たいな感じで表示する
0379nobodyさん2008/12/16(火) 10:15:16ID:7CqC2LzI
>>378
すごいです!!
ありがとうございます!!!!!
0380289です2008/12/16(火) 10:33:55ID:mtsIGhc+
>>331 PDOのtimeoutの件です お願いします
http://trombik.mine.nu/~cherry/w/index.php/2005/05/06/152/dbd-sqlite
すいません
上記からの参照先も英語なのですが
結論が分かりません
0381nobodyさん2008/12/16(火) 11:14:51ID:???
じゃ英語翻訳スレ池
0382nobodyさん2008/12/16(火) 11:53:22ID:???
>>380
結論文は読むものじゃない
感じろよ
0383nobodyさん2008/12/16(火) 16:22:45ID:UYl9yLz9
【OS名】windowsXP
【PHPのバージョン】php4.4.9、php5.26
【連携ソフトウェア】mysql
【質問内容】
preg系の関数の正規表現について質問です。
PHP4で、preg系でUTF-8を扱う際にuオプションをつけないで運用してたところ
文字化けが起きました。
その後、PHP5で試したところ、そのままで文字化けしませんでした。
ちょっと調べたところ、PHP5では鬼車という正規表現に変わったようですが、
preg系の関数でUTF-8を扱う際にuオプションが必要なのはPHP4までなのでしょうか?
0384nobodyさん2008/12/16(火) 17:13:25ID:???
php.iniの設定とかまったく同じになってるのか確認しれよ
0385nobodyさん2008/12/16(火) 19:05:26ID:DMBjIVd3
素朴な疑問なんですがprintとechoの違いってなんですか?
0386nobodyさん2008/12/16(火) 19:07:43ID:???
テンプレ
0387nobodyさん2008/12/16(火) 19:18:44ID:DMBjIVd3
基本的なことではなくて厳密な違いが知りたいのですが・・・
0388nobodyさん2008/12/16(火) 19:19:37ID:???
じゃソース見れ
0389nobodyさん2008/12/16(火) 19:57:51ID:???
答えられない池沼は黙ってろ!!!!!!!!!
0390nobodyさん2008/12/16(火) 20:41:15ID:???
んなくだらねぇこと考えてる暇があったら他のこと勉強しろ
0391nobodyさん2008/12/16(火) 20:50:09ID:???
>>385,387
"厳密な違い"とはどのレベルのものか、質問の趣旨が不明確。
まずは、マニュアルを引用して、どこが疑問なのか明確にしてくれ
0392nobodyさん2008/12/16(火) 21:00:25ID:???
違いがわからないから答えられないんだろ
ヘボはでてくんなっ!
0393nobodyさん2008/12/16(火) 21:19:48ID:???
違いがわからないなら「厳密」とか書いてんじゃねぇよっていう突っ込みをしてるわけだろ。
「基本的なことではなく」って書いてるけど
「基本的」な違いはわかってて、「厳密」を論じるなら、
「厳密な違い」とはどのスコープなのかが書かれなきゃ言及のしようがねぇだろ
0394nobodyさん2008/12/16(火) 21:25:00ID:???
カスはひっこんでろや
0395nobodyさん2008/12/16(火) 21:27:36ID:???
おいおい、釣りなら釣りらしく言い返せよ
0396nobodyさん2008/12/16(火) 21:39:17ID:mtsIGhc+
printは印刷
echo は叫ぶ

0397nobodyさん2008/12/16(火) 21:44:49ID:???
  ,..、_      _  __  ..,,__
  l ./====/ \| .l ,、| ./ , 、
  / /.l`‐- ゙、| |=| .i- l ./= ,>
. /  |.| || | | |.|`' __'`ノi、l / /
 ~| |.| !! |.| .|.| | | .|ヽ. ./
  | .|.!-'`二l  .|| |._| .|/  `‐-
  |_,,,|   \_丿!-‐'>,.-'゙~`、/

               `゙lli、      : 'i,,  ..__、     .'''iil、
: .゙lil:      .,,,:     、,,,,,,,,ililllll″   .,ll゜.,,f~`゙i,:   ,,  .,il,,,,,llli、          : _,,,,,,,_:
 .:ll       ゙゙li,,    `:  .'ll,,,,,,lllll・  .,ll ,,l° :ll,  `゙゙゙゙゙゚ll″..,,,wllilllli、    .,,,,#゙゙゙ ̄: ゙゙゙゙lll,,
 .:ll  .,.    `!li,  ''lllll*'l゙゙゙゙゙!l,、    ll,,l゙   .:lll    .,il` : `: ``    : 'llllll゙゙゜      ゙!l:
  ll、 .,l°     l!l   ..,,,v,v,,,,,llii,,   .'!ll   .ll°  .,il゜  :                    ,,ll:
  .゙l,,,i゙`            il゙`    .゙゙゙′     .,,ll°  .,il′ .:i、             : .,,,,llll゙°
  .゙゙!"            ゙ll,,,,_、: .,,,、     ._,,rl゙’    il!′  ゙゙!lllllllllllllllli、      `''“ ̄
               ゙゚゙゙゙゙゙゙゙゙゙゙゜    : `      ``
0398nobodyさん2008/12/17(水) 00:20:37ID:Q+ZHoejC
質問

セッションってページの一番上に
書かないとだめって教科書に書いてあるけど
そうしたら、無料のレンタルサーバーとかで
ページの一番上に自動的に
広告が挿入されるタイプのサーバーだと
「ページの一番上にsession()関数を挿入する」
ってできないから、そういうタイプのサーバーでは
セッションってつかえないってこと?
0399nobodyさん2008/12/17(水) 00:59:40ID:???
>>398
HTMLヘッダがsession_start();以前に送られてるとダメ。
ただ無料鯖で試したことないから一概に無理、とは言えない。
試してみてダメなら、管理者に手動で入れたい、って問い合わせてみたら?
0400nobodyさん2008/12/17(水) 01:07:35ID:Q+ZHoejC
質問

解説サイト読んでると、
「読み込みをするだけでも、共有ロックをかけろ」
と書いてあるんだが、本当にそうなのか?

(1)ファイルをオープンする
(2)共有ロックをかける
(3)数値を読み取る

こういう順番にしろ、と書いてあるんだが、本当にそうなのか?

(1)ファイルをオープンする
(3)数値を読み取る


これだとだめなのか?
(2)のときに、他のユーザーがアクセスしてきて、
割り込んで書き込み処理をしようとして
排他ロックをかけると、何か問題がおこるとか?
0401nobodyさん2008/12/17(水) 01:14:19ID:???
礼ぐらい言えよ
ちゃんと>>1にも書いてあるだろ
0402nobodyさん2008/12/17(水) 01:15:17ID:???
>>400
よっぽどでかいファイルでもなきゃそうそうないだろうが
ファイル書き込んでる最中に、他の人のファイルを読み込む可能性がある。
あんまり起きないからいらねーやってんなら好きにすればいいがやんないよりはやっといたほうがいい。
0403nobodyさん2008/12/17(水) 01:23:16ID:Q+ZHoejC
>>402
Aがファイルを書き込みしている途中で
Bがその、中途半端なファイルを読み込んでしまう
可能性があるという意味?
0404nobodyさん2008/12/17(水) 01:25:48ID:Q+ZHoejC
(1)Aがファイルをオープン
(2)Bがファイルをオープン
(3)Bがファイルを排他ロック
(4)Bがファイルに書き込み開始
(5)Aがファイルを共有ロックしないで読み込み開始

こうなった場合、(5)でAがファイルを読もうと思っても、
(3)で、Aに排他ロックをかけられているのだから、
読み込めないのでは?


それとも、ロックの概念の理解が間違ってる?
0405nobodyさん2008/12/17(水) 01:34:21ID:Q+ZHoejC
質問

ファイルをオープンしてからでないと
ロックはできないの?

先にロックしてから
ファイルをオープンしたほうが
安全でいいと思うのだが?
0406nobodyさん2008/12/17(水) 01:36:22ID:???
データーベースとか、
ファイルロックとか、
ロールバックとか、
トランザクションとか、
の勉強をするのは、
ものすごくおもしろいね!
0407nobodyさん2008/12/17(水) 01:38:59ID:???
ん?

1.排他ロック
2.ファイルオープン
3.読み取りOR書き込み
4.排他ロック解除

だと思うんだが。
0408nobodyさん2008/12/17(水) 01:42:02ID:Q+ZHoejC
>>407
いやいや、、、
私が読んでる教科書や、解説サイトでは、全部

(1)ファイルオープン
      ↓
(2)ファイルロック

この順番ですよ。
0409nobodyさん2008/12/17(水) 01:45:18ID:???
>>407
それはロック用ファイルが別の場合ってとこか
0410nobodyさん2008/12/17(水) 01:47:16ID:???
>>408
あぁわかった。
flock()使う場合は
たしかにファイルオープン→ロック→処理→ロック解放→ファイルクローズだね。
0411nobodyさん2008/12/17(水) 01:48:59ID:???
>>409
そそ。
ロック用ファイルなりディレクトリなりをフラグにするなら、
ロックが先でしたってことです。
すまそ。
0412nobodyさん2008/12/17(水) 01:50:26ID:Q+ZHoejC
ああ
ロック用ファイルを別に用意して、
そのファイルをロックする方式もあるよね。

どっちを使えばいいのかわからんのだけれども。

「こういう方法もあります、
またこういう方法もあります」

って書いてあるだけで、
「どっちを使え」
とは書いてないから。
0413nobodyさん2008/12/17(水) 01:51:21ID:Q+ZHoejC
(A)書き込むファイルそのものをロックする場合
(B)ロック用のファイル、ディレクトリを別途用意して、それをロックする場合

この2方式があって、話すときは、どちらなのかを
明確にしないと混乱するね。
0414nobodyさん2008/12/17(水) 02:03:52ID:???
>>412
PHPならすなおにflock()使うのがいいよ。

ちなみに、fopen()は厳密にいうとファイルを開いてるわけじゃない。
ファイルハンドラを返してるだけ。
だから、ロックがあとでも大丈夫なんだ。
flock()でfopen()で返されたファイルハンドラを指定してるでしょ?

例えば、fopen()してからsleep100秒経過後、fread()したとする。
取得したデータはfopen()した時(100秒前)のデータじゃなくfread()した時のデータになる。
0415nobodyさん2008/12/17(水) 02:35:07ID:???
perlだと開いた後のflockは微妙だったと思ったけどphpなら大丈夫なのかな。
あんまり厳密に調べたことないからわからんが。
0416nobodyさん2008/12/17(水) 03:00:59ID:???
つうか毎度思うんだかつきつめて質問するなら金払ってどっかで学べよ
いい加減迷惑
0417nobodyさん2008/12/17(水) 03:27:02ID:???
>>416
なんでこのスレにいるの?
0418nobodyさん2008/12/17(水) 03:30:58ID:???
>>417
何を勘違いしてるんだ?
どっちがいいの?何が一般的なの?
は好きにしろで完結するのがこのスレ
それ以上のものを求めるなら代価を支払え
下らない議論につきあってる必要もないし他の質問者にも迷惑
0419nobodyさん2008/12/17(水) 03:40:39ID:???
別に代価は支払わなくていいけど
ブログなりHP開設してそっちでおおいにやれって感じだな
それかそういう話題の好きな人のHPに積極的に行ってフォーラムに参加するとか

質問もしっぱなしで次から次と質問を変えてくる
どんどん進化する分野でいちいち疑問をもってるようじゃ向いてない
プログラマーは工数を踏んで対処法のノウハウを蓄積するもの
このへんはGoFもそう言っている
頭で考えてるうちは肝心なことはなんも身につかない
態度も悪いしそんな人間には誰も投資しないよ

プログラムのなんたるかを勉強したいなら
まずPHPでやろうというのがそもそもの間違い
適当な言語だから適当にしろとは言わないが
PHPはセキュリティだけに気を払えば後のことはぶっちゃけどうでもいい
もともと性能任せにしたゆとり向けの言語なんだから
ちゃんと学びたいならまずCからやるべき
0420nobodyさん2008/12/17(水) 04:10:50ID:???
>>418
付き合わなければいいのになんでわざわざ首を突っ込むの?
それとなんで代表者きどり?
個人的には自治厨のほうがよっぽど迷惑なんだけど
0421nobodyさん2008/12/17(水) 04:18:47ID:+p3m0j6L
POSTされた値を変数で保持しようとするときに、
保持できるのは次のページの更新があるまでですよね?
ページの更新があっても変数を保持し続けたい(というより更新したい)
のですがどのようにすればいいのでしょう?
例えば$aと$bという変数があって、
1回目のページ送信の時に$aを変更したあと、
2回目のページ送信の時に$bのみを変更した場合、
1回目に送った$aは初期化されてしまいますが、
この$aも保持し続けたいということです。
条件としては、
外部ファイルやhiddenフィールドやCookie(セッション)に持たせる以外の方法で、
何か方法があれば教えてください。
0422nobodyさん2008/12/17(水) 04:22:13ID:???
>>420
テンプレ守らない質問者に回答者が回答した結果がスレ分断した原因なのだが
それを知らないなら質問質問連呼してるバカと一緒にあっちのスレ行ってくれ
0423nobodyさん2008/12/17(水) 04:52:18ID:???
>>421
GETかPOST
云々以外の方法って何で?
0424nobodyさん2008/12/17(水) 05:42:33ID:Q+ZHoejC
>>414
なるほどね!
それですっきりわかったわ
そういう冴えわたった回答がほしかった
あなたは教え方うまいので
次からも教えてもらえますか?
0425nobodyさん2008/12/17(水) 05:51:58ID:???
去年あたりからか、メールとかの内容で分からない事があっても
疑問にも思わず平気でスルーする奴が多くなった。
今期に入ってからの3時間以上残業した日に、何で残業したのか
報告しれっていう指示メールに対し、「今期」が何を意味するのか
わからないからとノーアクションだったり。
ちなみに「今期」について聞きもしなければググりもしていない。
0426nobodyさん2008/12/17(水) 06:33:02ID:???
http://www.stackasterisk.jp/tech/php/php02_01.jsp

できればこういう風にわかりやすく教えて欲しい

「(カウンタのファイルには 10 が保存されている。)
プロセス A がファイルのロックを確保に挑戦
プロセス A がファイルのロックを確保に成功
プロセス A がファイルのカウンタ値(10)の読み込み
プロセス B がファイルのロックを確保に挑戦
プロセス B がファイルのロックを確保に失敗(待つ)
プロセス A がカウンタ値に 1 を加える
プロセス A がカウンタ値(11)をファイルに保存する
プロセス A がファイルのロックを開放
プロセス B がファイルのロックを確保に成功
プロセス B がファイルのカウンタ値(11)の読み込み
プロセス B がカウンタ値に 1 を加える
プロセス B がカウンタ値(12)をファイルに保存する
プロセス B がファイルのロックを開放」
0427nobodyさん2008/12/17(水) 06:45:37ID:???
説明なんて必要ないだろ
こういうケースはこう対処すればいいと覚えればいいだけ
動作の様子や原因をつきつめていきたいならアセンブラでもやれ
逆にいうとアセンブラが理解できないのなら
本質的な部分は到底理解できない
だからPHPのみをやってるうちは気にするだけ無駄
0428nobodyさん2008/12/17(水) 07:16:38ID:Q+ZHoejC
fwriteなんだけど、
ファイルの中味が

「1234567」

のとき、fwriteで「9」を書き込むと

「9234567」

になってしまうんだけど、これで
「正しい動作」なの?
0429nobodyさん2008/12/17(水) 07:17:19ID:Q+ZHoejC
先頭の1文字だけ上書きされてしまうんだよ

こっちの希望の動作は、
「1234567」
が全部消えて、
「1」
だけが書き込まれるということなんだけど。
0430nobodyさん2008/12/17(水) 07:18:06ID:???
まちがえた、「9」だけが
書き込まれて欲しいってこと。
■ このスレッドは過去ログ倉庫に格納されています