くだすれPHP(超初心者用)5
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2008/11/22(土) 06:36:02ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
http://jp.php.net/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
0867nobodyさん
2009/02/23(月) 19:57:12ID:???0869nobodyさん
2009/02/23(月) 21:18:58ID:???0870nobodyさん
2009/02/23(月) 21:38:57ID:???八割がた後になってハマるんだがw
必要になったらそのとき勉強する?はいはい。
0871nobodyさん
2009/02/23(月) 21:41:24ID:???どんだけものぐさなんだよ。
0872nobodyさん
2009/02/23(月) 21:52:11ID:???馬鹿か?
駄目なやつは何を使っても駄目
ようは使う人の問題だろ
それにXAMPPは何も設定できないと思ってんのか?これだから低脳は
0873nobodyさん
2009/02/23(月) 21:53:30ID:???0874nobodyさん
2009/02/24(火) 09:21:59ID:???ちょっと違うけどxamppにも当てはまる話
0876nobodyさん
2009/02/25(水) 22:54:22ID:???勿論、「ディスプレイとマウスは既存のものを使いまわすから要らないや」という事はあるが、全部必要な事のほうが世間的には圧倒的に多い。
マウスだけ使いまわすなら、ワンセット買って来てマウスだけ取り替えた方が楽だしな。
つうか、むしろBTOに近い気がする。
組み立てが面倒なので、多少コストで損をする事を承知でDellに頼むわけだ。
1台だけなら自作するだろうが、100台必要だと分かっているなら自作する馬鹿はいない。
webフレームワークは10台くらいの、自分でやるか頼むかちょっと迷うなってラインか。
0877nobodyさん
2009/02/25(水) 22:59:00ID:???後半は思いっきり忘れてくれ。
とりあえず、初心者に買わせるならメーカー品にするだろ?って話。
0878nobodyさん
2009/02/26(木) 10:25:39ID:???xamppなんて思いつきもしないな。
初心者ならそれから始めてもいいけど、何かあった時に誰かに聞くしか能がないから
決まった使い方しかできないみたいだな。
0879nobodyさん
2009/02/26(木) 11:47:43ID:???クラスやった事ないのでやったらいいですかね?
PHPマスターはオブジェクト指向ですか?
0880nobodyさん
2009/02/26(木) 11:55:18ID:???0881nobodyさん
2009/02/26(木) 12:05:11ID:???オレもまだ4ばかり使ってるけど、クラスはボチボチ使い始めてる。
0882nobodyさん
2009/02/26(木) 12:13:19ID:???よりよい制作手法を実現するための手段ならこだわる必要ない
0883nobodyさん
2009/02/26(木) 13:02:56ID:???データベースは使えるの?
オブジェクト指向はPHPで最初にやるべきではない。
不完全なPHPで最初にやると、
PHPが一般的で他の言語は特殊だという間違った認識が身につくよ。
用語なんかも一般的な他言語のものとは意味あいが違ったりするし。
0885nobodyさん
2009/02/26(木) 14:19:48ID:???CSSなども基本的は事はOK
オブジェクト思考自体初めてなので>>883な言った様な
偏った認識もしたくはないですが、PHPのオブジェクト指向ができれば
他の言語もとっつきやすいですよね?
0886nobodyさん
2009/02/26(木) 14:36:47ID:???せめてpostgres
0887nobodyさん
2009/02/26(木) 14:46:06ID:???PHPとPosgreをいつもセットで使ってますからsqlはできます。
0888nobodyさん
2009/02/26(木) 16:21:15ID:???postgreは記憶ないけど
0889nobodyさん
2009/02/26(木) 16:35:04ID:???>>883じゃないけど、オーバーロードとか。
ttp://www.php.net/manual/ja/language.oop5.overloading.php
>PHP における "オーバーロード" の解釈は、他の多くのオブジェクト指向言語とは異なります。
>一般的に「オーバーロード」とは「名前は同じだけれども引数の数や型が異なるメソッドを複数用意できる」という機能のことを指します。
0890nobodyさん
2009/02/26(木) 16:56:04ID:???次はステップはデザパタ?ぽいですね。
0892nobodyさん
2009/02/26(木) 19:06:20ID:???これみてガンガレ
0894nobodyさん
2009/02/26(木) 19:55:32ID:???やっつけ案件はPHP
0898nobodyさん
2009/02/26(木) 23:36:04ID:???なんでオーバーロードなんて名前つけたのかアホとしか思えん
0899nobodyさん
2009/02/26(木) 23:37:18ID:???0900nobodyさん
2009/02/26(木) 23:42:59ID:???PHPだけがこんな状態ならまだいいけど
他の言語がこぞってオーバーロードはこういう機能です!
って別々な実装していったらどうなるんだ?
乗り換えに苦労するだろ
0901nobodyさん
2009/02/27(金) 01:10:45ID:???飯島愛の死体を見せれば。
「これがオーバードーズという状態です」って。
0902nobodyさん
2009/02/27(金) 10:11:12ID:???仕事でPHPやりながら家でJAVAかじります。
0903nobodyさん
2009/02/27(金) 11:01:39ID:???100人↑が絡むような大規模案件はどの道仕様をカリカリにfixさせるので、Javaのような静的言語と相性がいい。
ただし、型でガチガチに固められるから、仕様変更に異常に弱いという欠点がある。
まあ、だからこそちょっとした仕様変更でも追加料金を請求できて、だからこそ儲かると言われるわけだが。
仕様がポンポン変わるようなアプリケーションには、動的言語のほうが向いている。
例えばPHPは、メソッドさえ同じならどんなオブジェクトを渡しても動くような関数が簡単に書ける。
Javaでこれをやるには専用のインターフェイス書かなきゃいけないし、新しい機能を実装すると過去のコードにまで変更が波及しがちになる。
趣味コードでJavaとか、考えるだけで恐ろしい。
仕事でPHPを使うことの次くらいにやりたくないな。
0904nobodyさん
2009/02/27(金) 13:18:50ID:???0905nobodyさん
2009/02/27(金) 18:13:37ID:???それは設計モデル次第だ
0907nobodyさん
2009/02/27(金) 23:31:53ID:???比較の話だろ。
そりゃJavaだってアセンブラよりは変更に強かろうよ。
0908nobodyさん
2009/02/28(土) 23:56:48ID:???を読んで思い切って質問してみちゃいまう
tp://hiroqli.blogspot.com/2007/12/keepass.html
にphpと書かれていたのでここで質問するんですが
これを自分のPC上で実行したい場合どうすればいいんでしょう?
IDMというアプリでエクスポートされたCVSをKeepass用に変換できるもののようなんです
よろしくお願いします
0909nobodyさん
2009/03/01(日) 00:29:41ID:???http://www.php.net/downloads.php
PHP環境を入れる
0910908
2009/03/01(日) 00:45:47ID:???XAMPPというのをインストールして
tp://www.phppro.jp/school/phpschool/vol1/4
のところまでやりましたがそこから先がさっぱり。。
0911nobodyさん
2009/03/01(日) 01:13:58ID:???0912nobodyさん
2009/03/01(日) 12:56:14ID:???「exitは終了時にメッセージを発生しない」
って書いてあるけど、
自分で実際に試したら、メッセージを表示できるんだけど、
教科書が間違っている?
<?php
exit('hello');
?>
0913nobodyさん
2009/03/01(日) 13:02:27ID:???↑パラメータの注意書きのところ
0914nobodyさん
2009/03/01(日) 13:13:51ID:???0915nobodyさん
2009/03/02(月) 02:49:22ID:???変数を入れ子で使うにはどうすれば良いのかご教授ください。
test.php
<?php
$title = "てすとぺーじ";
$hoge = $hensuu1; //変数1の中身を表示させたい
?>
<?php include('html.php'); ?>
<?php echo $html; ?>
html.php
<?php include('hensuu.php'); ?>
<?php
$html = "
<html>
<head><title>$title</title></head> ←$titleは「テストページ」となりますが
<body>
$hoge ←例えばここに「hensuu1」の中身を表示させるためには、どうすればいいですか?
</body>
</html>";
?>
hensuu.php
<?php
$hensuu1 = "実際に表示させたい内容";
?>
0917nobodyさん
2009/03/02(月) 03:10:55ID:???0918nobodyさん
2009/03/02(月) 03:30:10ID:???変なのは分かっているのですが
設計を見直そうにもphpを初めて1週間なので
何をどうしたらベストなのか計画を立てることさえできません。
現状はwindowsにApacheとPHPを入れて
表示されるかどうかを確認するのが精いっぱいです。
0919nobodyさん
2009/03/02(月) 03:34:00ID:???0920nobodyさん
2009/03/02(月) 06:04:37ID:???全然ロックされてないって本当?
0921nobodyさん
2009/03/02(月) 06:15:47ID:???0922nobodyさん
2009/03/02(月) 06:40:23ID:???開いてしまっているので、ファイルの内容が空になる。
そんときに第三者から読み込みにこられると
空のファイルを渡す
それからロックをかける
こういう仕様なので、append以外では使えない。
こういう理解にしました。
0923nobodyさん
2009/03/02(月) 06:46:28ID:???0925nobodyさん
2009/03/02(月) 06:58:05ID:???(2)w+なので、自動的にファイルの中味が空になる
(3)第三者が読み込みにくる
(4)空のファイルを渡す
(5)ここでようやくロック発動
(6)第三者が空のファイルを戻しにくる
(7)カウンタがぶっ壊れる
0926nobodyさん
2009/03/02(月) 07:19:37ID:???別な理由でカウンター壊れてんじゃないの?
カウンターにfile_put_contentsって手抜き杉で笑えるから別なところにもバグありそうだけど
0927nobodyさん
2009/03/02(月) 07:21:20ID:???fopen -> fwrite -> fclose
って3つの流れを自動でやってくれるんだけど、
この中の
fopenが、どうもw+でオープンしてるらしい。
だとしたら、ファイルの中味は問答無用で
オープン時に空になるよね。
だからappend以外では使えない。
0928nobodyさん
2009/03/02(月) 07:25:56ID:???file_put_contentsも第三引数あたりでLOCK_EX使えるでしょ
>>927
該当ファイルを読み込んで修正してファイルを空にして全て書き出すのが基本
追記も便利だけどね
0930nobodyさん
2009/03/02(月) 07:34:32ID:???ソース見てみないとどうなってるかわからないな
0931nobodyさん
2009/03/02(月) 07:36:23ID:???コマンドラインで
for($i = 0; $i < 10000; $i++) {
$data = file_get_contents("test.txt");
$data += 1;
$res = file_put_contents("test.txt", $data, LOCK_EX);
if ($res === false) {
error_log("write failed");
}
}
こんな感じのソースをシェルを複数立ち上げて実行したら、
単独なら10000になるけど、同時実行させると少なくなった。
3端末でやったら29767だった。本来なら30000になるべきだが。
しかし、もし>>925の言っている通りなら、どっかで0が戻るとすると、
こんなにきわどい値にはならない。もっと小さくなる。
排他ロックされて、書き込みに失敗していると見るべきだ。
実際、エラーログには書き込みに失敗した分のfailedが記載されたよ。
よって、LOCK_EXは正しい。
0932nobodyさん
2009/03/02(月) 07:38:18ID:???リトライするなりなんなり、自分で実装しなきゃいけない。
そこを、ミスったのをPHPの仕様漏れにしたがったってことじゃねぇか。
0933nobodyさん
2009/03/02(月) 07:44:15ID:???counter:
try {
カウンター書き込み
} catch(Exception $e) {
while($count <= 試行回数) {
$count++;
goto counter;
}
こんなんか?
0934nobodyさん
2009/03/02(月) 07:51:15ID:???誰も信じて疑っていないのか、PHP5.1.0からサポートされたという、第3引数のLOCK_EXによる排他ロック
file_put_contents( $path, $string, LOCK_EX );
これ・・・・・排他ロック・・・・・・できてません。。。
JMeterの負荷テストにて実証済みです。
具体的にどうなるかというと、書き込み時にロックがかけられないので、
書き込み時に、読み込みが行われた場合は、「空」で取得されます。
うーん。空なのか。。。
0935nobodyさん
2009/03/02(月) 08:07:09ID:???検証してねぇだろそのブログ主
0937nobodyさん
2009/03/04(水) 07:34:34ID:???print M_SQRT2;
?>
で、スクエアルートが表示できると聞いて、
さっそくいろいろ試してみたのだが、
これって結局、2と3しか対応してないのな。
0938nobodyさん
2009/03/04(水) 08:21:57ID:???0940nobodyさん
2009/03/04(水) 08:45:59ID:???crypt、またはMD5,またはsha1等で
暗号化してIDとして表示したいのだが、
安全性はどんな感じか。
0943nobodyさん
2009/03/04(水) 09:09:26ID:???複号されたところでどうなる?
暗号IPとREMOTE_HOSTで照合するわけだよね? だとしたら生IPとREMOTE_HOSTで照合するのとほとんど変わらないと思うが・・
0944nobodyさん
2009/03/04(水) 09:14:22ID:???違う。
アクセスしてきたやつのIPを
暗号化関数にぶちこんで、IDを生成して、
「今、この人達が見にきてます」
って表示するの。
0945nobodyさん
2009/03/04(水) 09:18:17ID:???0947nobodyさん
2009/03/04(水) 09:33:34ID:???文字のランダムな羅列よりも・・
0948nobodyさん
2009/03/04(水) 09:42:46ID:???破棄するのがすっごくめんどうなんだね。
<?php
session_start();
$_SESSION = array();
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
session_destroy();
}
?>
こんなに書かないと消せないなんて、、、
0949nobodyさん
2009/03/04(水) 10:03:06ID:???ブラウザ側のクッキーの扱いなんてしょせんサーバ側でコントロールなんてできないし
0951nobodyさん
2009/03/04(水) 13:50:54ID:???判別するにはどうしたらいいかな?
0952nobodyさん
2009/03/04(水) 13:51:26ID:???ブラウザを閉じたら、ログインしてない。
これでいいのかな?
0953nobodyさん
2009/03/04(水) 15:47:05ID:???0954nobodyさん
2009/03/04(水) 21:10:09ID:???セッションの最も一般的な使い方。
自分で実装するならこんな感じ。
1.ユーザーがログインフォームにパスとIDを打ち込む
2.リクエストを受けたサーバーは、パスワードを照合。
あってたら、ランダム文字列をクッキーとしてユーザーに送りつける。
同時に、この値とユーザーのIDをセットにしてどこかに保存しておく。
一番シンプルなのは、クッキーの値をファイル名にして、中にユーザーID書き込んでおくとか。
((((((10年後))))))
3.ユーザーがアクセス時にクッキーを送りつけてくるので、そのファイルを探す。
あったらそいつはログインしているユーザー。
ファイルの中身を読み、ユーザーのIDを(=ユーザーが誰かを)特定し、処理を続ける。
この「クッキーを発行し、クッキーを送りつける」「ファイルがあるか確認する」をやってくれるのがPHPのセッション。
ファイルの中身がセッション変数に当たる。
0955nobodyさん
2009/03/05(木) 00:53:07ID:Rp65yYdP0956nobodyさん
2009/03/05(木) 01:23:02ID:???ブラウザを開いている間は、出席している。
ブラウザを閉じたら、退席した。
こういうロジックで、セッションを使って実装するのは
どうしたらいいですか?
フォームにIDとパスワード入れてログインするとかじゃなくてです。
IPアドレスだけで実現したいのです。
0957nobodyさん
2009/03/05(木) 01:53:13ID:???セッションが存在しなかったら退席
でいいんじゃないの?
0958nobodyさん
2009/03/05(木) 02:12:34ID:SpoYISjYmysql_query()とmysqli_query()を混在させたり、
mysql_query()で問い合わせてmysqli_close()でクローズしたりする事は
可能でしょうか? 教えてください。
以下のページでは、mysqli_*()ではオブジェクトAPIを使用すると説明がありますが、
mysql_connect()はコネクションを再利用するが、mysqli_connect()は常に新規にコネクションを取得するように
connect以外でもmysql_*()とmysqli_*()では、動きが異なるようなものだったりするのでしょうか?
ttp://d.hatena.ne.jp/taiju1225/20080509/1210305274
0959nobodyさん
2009/03/05(木) 08:44:27ID:???入門本に、header("location:url")のみでリダイレクトされた先のスクリプトで、
$_GET["キー"]で値をとれていますが、GET送信の場合は値を
?で付けていかなければ駄目ですよね?
送り元は自身にPOSTでは値を送っています。
そして送り元も送り先もセッションでは値を送受信していますが。
0960nobodyさん
2009/03/05(木) 08:54:13ID:???0961nobodyさん
2009/03/05(木) 08:57:21ID:???質問のふりして、入門本に文句つけてるだけじゃね?
0962nobodyさん
2009/03/05(木) 08:59:23ID:???0963nobodyさん
2009/03/05(木) 09:01:52ID:???0964nobodyさん
2009/03/05(木) 10:47:36ID:???$a=0.97075300;
$b=0.97083700;
$c=$b-$a;
print $c;
?>
これを実行すると、
8.4E-5
とかって、出てきます。
Eとか不愉快なんで、ちゃんと数字で
結果を表示したいのですが、どうすればいいですか?
0965nobodyさん
2009/03/05(木) 10:59:16ID:???0966959
2009/03/05(木) 11:27:28ID:???header("location:url")でリダイレクトされた先のスクリプト内では、
$_GET["キー"]で値をとれています。
しかしheader内のurlの後に「?キー=値」は付けていません。
GET送信で値を送る時にはURLの後に値を付け足すとしか知識がありません。
headerで送り出す元となるスクリプトでは自身にPOST送信してあるのみです。
レス数が950を超えています。1000を超えると書き込みができなくなります。