【PHP】下らねぇ質問はID出して書き込みやがれ 108
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/07/02(土) 18:37:53.12ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 107
http://hibari.2ch.net/test/read.cgi/php/1307228162/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0116nobodyさん
2011/07/03(日) 19:45:05.42ID:???http://www.php.net/manual/ja/function.is-writable.php
0119nobodyさん
2011/07/03(日) 19:54:46.32ID:???0120nobodyさん
2011/07/03(日) 20:14:43.71ID:GBrymO19下記では画像が保存されませんでした。エラーも出力されません。
$url = array();
$url[] = 'http://www.google.co.jp/images/experiments/nav_logo78.png';
$url[] = 'http://k.yimg.jp/images/top/sp/logo.gif';
$dl_path = './image' ;
foreach ($url as $f) {
$image = file_get_contents($f) ;
file_put_contents($dl_path.basename($f), $image) ;
}
imageディレクトリのパーミッションは777です
なぜ画像が保存されないのでしょうか?
お願いします。
0121nobodyさん
2011/07/03(日) 20:29:34.11ID:???0122nobodyさん
2011/07/03(日) 20:37:30.55ID:GBrymO19すみませんでした;;;;穴掘って埋まってます
0124nobodyさん
2011/07/03(日) 21:04:19.60ID:???煽るだけのお前のほうがバカだわ
0126nobodyさん
2011/07/03(日) 21:14:03.55ID:???0127nobodyさん
2011/07/03(日) 21:20:30.55ID:gtJqhGeNclass ClassLoader
{
protected $dirs;
public function register()
{
spl_autoload_register(array($this, 'loadClass'));
}
public function registerDir($dir)
{
$this->dirs[] = $dir;
}
public function loadClass($class)
{
foreach ($this->dirs as $dir) {
$file = $dir . '/' . $class . '.php';
if(is_readable($file)) {
require $file;
return;
}
}
}
}
クラス名.phpを読み込むクラスなのですが
loadClassメソッドの引数$classには何が入っているのでしょうか?
教えて頂きたいです。お願いします。
0128nobodyさん
2011/07/03(日) 21:29:37.64ID:???javaと同じくクラス名とファイル名が同じ、という規約みたいだな。
っつか、そんなに難しいソースじゃないと思うんだが、何かひっかかってる事でもあるんかい?
0129nobodyさん
2011/07/03(日) 21:47:11.76ID:???0130nobodyさん
2011/07/03(日) 21:53:54.14ID:gtJqhGeNloadClassメソッドの引数が具体的なクラス名、
たとえば loadClass(example) なら
example.phpを読み込むんだなとわかるんですが
これが loadClass($class) になったとたん
$classってどこから引っ張ってきてるの?となってしまいます。
0131nobodyさん
2011/07/03(日) 22:08:56.08ID:???0132nobodyさん
2011/07/03(日) 22:10:21.55ID:gtJqhGeN呼び出す側は以下の通りです。
<?php
require 'core/ClasLoader.php';
$loader = new ClassLoader;
$loader->registerDir(dirname(__FILE__).'/core');
$loader->registerDir(dirname(__FILE__).'/models');
$loader->register();
0134nobodyさん
2011/07/03(日) 22:38:51.36ID:???0135nobodyさん
2011/07/03(日) 22:45:32.62ID:gtJqhGeNautoloadについて一度しっかり勉強してみます。
すみません。
0136nobodyさん
2011/07/03(日) 22:49:27.22ID:???0138nobodyさん
2011/07/03(日) 23:20:14.57ID:???0139nobodyさん
2011/07/03(日) 23:30:01.70ID:a/8QrSpmUTF8でPHPを利用していますが、アスキーアートがうまく表示できません。
どうしたらいいでしょうか?どなたか親切な方お助けください。
0140nobodyさん
2011/07/03(日) 23:33:10.27ID:???文字化けしてるわけじゃなければエンコードもPHPも関係ないだろ
0141139
2011/07/03(日) 23:50:03.05ID:a/8QrSpmそれは十分承知しておりますがそこをなんとかお願いします。
まず第一の原因はfont-familyだと思いますがこれはどう指定したら良いでしょうか?
先輩方よろしくお願いします。
0143nobodyさん
2011/07/04(月) 01:09:09.79ID:???0144nobodyさん
2011/07/04(月) 01:18:48.55ID:???0145nobodyさん
2011/07/04(月) 01:46:20.00ID:???0146nobodyさん
2011/07/04(月) 01:55:23.79ID:???0147nobodyさん
2011/07/04(月) 02:44:54.85ID:???.aa {
font-family: 'MS Pゴシック','MSPゴシック','MSPゴシック','MS Pゴシック';
font-size: 16px; line-height: 18px;
}
0148nobodyさん
2011/07/04(月) 02:52:01.71ID:???やってみたのですがエラーになりました。
どうすればいいでしょうか。
<?php
.aa {
font-family: 'MS Pゴシック','MSPゴシック','MSPゴシック','MS Pゴシック';
font-size: 16px; line-height: 18px;
}
?>
0150nobodyさん
2011/07/04(月) 03:40:09.35ID:MkZtY+qy0151nobodyさん
2011/07/04(月) 03:46:37.87ID:???0152nobodyさん
2011/07/04(月) 05:24:07.99ID:MkZtY+qyってありますけど関数内でincludeしろってことですか?
0153nobodyさん
2011/07/04(月) 05:35:41.65ID:???5.4から実装されるtraitでそれっぽい事はできるようになる
0154nobodyさん
2011/07/04(月) 06:11:46.81ID:???0155nobodyさん
2011/07/04(月) 08:43:49.41ID:wcpX+6NdWebサーバーが複数、DBサーバーが1つで動いているアプリがあって
ロードバランサーの仕様は不明(鯖業者が設定を明かさない、多分やっすいやつ)
1ユーザーがアクセスしてきて
Webサーバー01でページ1閲覧、この時点であるデータAをDBに書き込み
ユーザーがボタン押して次ページ2に遷移、今度はWebサーバー02に繋がりDBから先程のデータAを読み出して処理の続き
という動きをした場合、DBが重くてサーバー01が発行した書き込みに時間がかかり終わらず
先にサーバー02が古いデータを読んでしまい誤動作
となってるぽい現象がしばしば起きる
これを完全に防ぐにはどういう実装をすればいいのだろう
言語はPHPでMySQL5.1、InnoDB使用です
0156nobodyさん
2011/07/04(月) 09:22:54.81ID:???CSS初心者スレッド=10th=
http://hibari.2ch.net/test/read.cgi/hp/1306489752/
0157nobodyさん
2011/07/04(月) 09:24:38.34ID:???http://php.net/manual/ja/keyword.extends.php
0159nobodyさん
2011/07/04(月) 09:37:53.48ID:???MySQL 総合 Part19
http://hibari.2ch.net/test/read.cgi/db/1295436346/
0160139
2011/07/04(月) 12:12:32.53ID:cs6DUMEBありがとう。でも残念ながらUTFとか関係あります。
それでもAAは崩れました。
ちなみにID出してない人は別人です。
0162nobodyさん
2011/07/04(月) 12:20:44.75ID:???0163139
2011/07/04(月) 12:42:03.24ID:cs6DUMEB誘導されたスレで聞いても答えが返ってこなかったと最初に説明したはずです。
0165nobodyさん
2011/07/04(月) 12:58:11.15ID:???0166nobodyさん
2011/07/04(月) 13:22:29.41ID:kqekfTVE$a=file("/a/b/c.txt");
こう書くとエラーはでません
$a=file("a/b/c.txt");
0167nobodyさん
2011/07/04(月) 13:26:52.53ID:???0168nobodyさん
2011/07/04(月) 13:30:58.64ID:???行のバージョンを表すカラムをどっかに追加して
ページ1で http://.../ページ2?バージョン=1234 とリダイレクト、
ページ2はバージョンと一致する行が取得できるまで画面更新させときゃいいんでね
0169nobodyさん
2011/07/04(月) 13:31:39.97ID:kqekfTVEPHP Stack trace:
PHP 1. {main}() C:\homupegi\phpnobenkyou\test.php:0
PHP 2. file(/a/b/c.txt) C:\homupegi\phpnobenkyou\test.php:2
Warning: file(/a/b/c.txt): failed to open stream: No such file or directory in C:\homupegi\phpnobenkyou\test.php on line 2
0170nobodyさん
2011/07/04(月) 13:37:44.67ID:???a/b/c.txtは
C:\homupegi\phpnobenkyou\a\b\c.txt
だし、/a/b/c.txtは
C:\a\b\c.txt
をさしてるんじゃないかね。
0171nobodyさん
2011/07/04(月) 13:38:49.34ID:kqekfTVE0172139
2011/07/04(月) 13:43:34.45ID:cs6DUMEBあなたの最初がどのレスなのかわからないし
最初にスレチなことは承知の上だと言ったはずです。
>>165
CSSの質問スレで聞いても無駄だったからここにきたと何度言えば(ry
0173nobodyさん
2011/07/04(月) 13:44:11.83ID:???0174nobodyさん
2011/07/04(月) 13:45:36.12ID:???0175nobodyさん
2011/07/04(月) 13:49:16.22ID:???ブラウザからみたら / はドキュメントのルートだろうが
サーバ上で実行してるプログラムからみたら
/ はファイルシステムのルートになるだろう。
もちろん環境によって変わってくるけれども
0176nobodyさん
2011/07/04(月) 13:54:05.61ID:???fileはサーバーサイドで動くから/からのパスっていうのは使えないってことでしょうか?
0177nobodyさん
2011/07/04(月) 13:54:25.79ID:kqekfTVEfileはサーバーサイドで動くから/からのパスっていうのは使えないってことでしょうか?
0178nobodyさん
2011/07/04(月) 14:09:56.51ID:???0179nobodyさん
2011/07/04(月) 14:12:23.96ID:cs6DUMEB知りません。でももうあきらめます。
みんなも知っておいたほうがいいことなのになぁ。もったいない。
0180nobodyさん
2011/07/04(月) 14:16:19.48ID:???jsを読むのはブラウザだからな。
ルートからが使えないわけでもないが、あまり使わないな。
ドキュメントルートが使いたければ環境変数に入ってるから
phpからでも使えると思うぞ、文字列の連結で。
0181nobodyさん
2011/07/04(月) 15:16:14.67ID:bW37tmJXマニュアルの例には、
if (flock($fp, LOCK_EX)) { // 排他ロックを行います
ftruncate($fp, 0); // ファイルを切り詰めます
fwrite($fp, "Write something here\n");
flock($fp, LOCK_UN); // ロックを解放します
} else {
echo "ファイルを取得できません!";
}
と書いてますが、
これは多人数のシステムで、他の人がロックしてたら、
elseブロックにいくってことですよね?
他の人のロック解放をまつには、
while (flock($fp, LOCK_EX)) sleep(1);
などの処理を挟めばいいのでしょうか?
ロックが解放されなかったら、延々と待ち続けることになるので、
sleepカウントをして10秒(試行回数10回)でタイムアウトといった感じにすればいいでしょうか?
0182nobodyさん
2011/07/04(月) 15:19:12.37ID:???0183181
2011/07/04(月) 15:22:53.18ID:bW37tmJXなぜですか?
他にどのような解除方法がありますか?
0184nobodyさん
2011/07/04(月) 15:23:18.01ID:WyyByi98【PHPのバージョン】5.6
【連携ソフトウェア】MySQL
【質問内容】
ユーザー情報としてメールアドレスとパスワードを保存しています。
パスワードはハッシュで格納していますが、アドレスはそのままとなっています。
アドレスもハッシュなどにしたほうが何かあったさいはいいのでしょうが、登録アドレスなどへのパスワードの再送などが出来なくなってしまいます。
暗号化を行った場合は一旦全てのメールアドレスを復号化する必要があるので処理スピードが落ちてしまいます。
メールアドレスなどは一般的にはどのようにDBに格納しているものなのでしょうか?
0185nobodyさん
2011/07/04(月) 15:23:56.69ID:???0186181
2011/07/04(月) 15:25:46.12ID:bW37tmJXでもマニュアルには5.32以降は明示的に閉じなければならないと書いてるので、
将来のことを考えて明示的に解放したほうがいいのではないでしょうか?
できれば本題のほうの突っ込みをお願いします。
ロック待ちはあんな感じで大丈夫でしょうか?
デッドロックの発生状況がよくわかってないので心配です。
0187nobodyさん
2011/07/04(月) 15:26:38.02ID:???XAMPPは使うな
Terapadは使うな
FFFTPは使うな
printは使うな
eregは使うな
dateは使うな
flockでロックを解除するな
0188nobodyさん
2011/07/04(月) 16:40:39.78ID:???0189nobodyさん
2011/07/04(月) 16:54:08.21ID:???漏れた時の被害状況を想定して決めればいい
カードは最も悪用しやすく言わずもがなヤヴァイし(信頼失墜まちがいなしの重大事故)
住所は可能性としては低いが爆発物が届くかもしれない(名前と合わせて命狙われてる人なら重大)
電話番号はイタ電がかかってくるかもしれない(電話番号を最悪変えないといけないから中程度)
メールは迷惑メールが届くかもしれない(がフィルターで防げるし軽微である)
名前はそれだけなら心象被害しかないが住所と組み合わさると配達員に不信がられない(単体ならごく軽微)
まぁそんなことを考えながらやればいいんじゃねえの
メールアドレスは別にそのまんまでいいよ
企業の漏洩事故に最も含まれてるのはそのまんま格納してる証拠
0190nobodyさん
2011/07/04(月) 16:55:48.05ID:???0191nobodyさん
2011/07/04(月) 17:04:38.65ID:???0192nobodyさん
2011/07/04(月) 17:10:00.72ID:???個人情報をどこまで厳格に扱うかで決まるが
一つのボーダーラインが漏洩した情報で不正アクセスができるかどうか
大体のオープンソースモノはパスワードだけ不可逆暗号化して
後の漏れちまったもんはしょうがねぇってスタンス
>>186
LOCK_NB付きでない限りロックが取得できるまで flock() で処理は止まる
なのでsleep()は不要
0193nobodyさん
2011/07/04(月) 17:18:49.71ID:???0194nobodyさん
2011/07/04(月) 17:22:57.45ID:???0195nobodyさん
2011/07/04(月) 17:24:47.13ID:???ただしルート接続
0196181
2011/07/04(月) 17:28:33.74ID:bW37tmJXどうもありがとうございます。
LOCK待ちしてるとなると、else部分がどういう時に呼ばれるのかが気になりますが、
(もしブラウザのタイムアウトまで待ち続けると結局何も結果が表示されないので)
マニュアルに書いてる通り実装しようと思います。
ところでwhile条件間違ってましたね。
否定にしないとあれじゃ無限ループでした。
0198nobodyさん
2011/07/04(月) 19:30:15.63ID:ktjvWDg2file_get_contentsがfalseを返したらエラー出して停止するように書いたんだけど
file_get_contents内部で勝手にエラー出してそこで止まってしまうんだけど
これはどうしようもないの?
マニュアルには失敗時はfalse返すと書いてあるんだけど
0199nobodyさん
2011/07/04(月) 19:53:39.17ID:???0200nobodyさん
2011/07/04(月) 20:16:59.62ID:ktjvWDg2// 読み込めた処理
}
else{
echo "読み込めませんでした";
// 読み込めなかった処理;
}
これを実行すると、ファイルがなかった場合file_get_contentsがNo Such Fileとか出してそこで止まって
else内が実行されない
0202nobodyさん
2011/07/04(月) 20:45:21.01ID:???0204nobodyさん
2011/07/04(月) 20:56:49.61ID:???0205nobodyさん
2011/07/04(月) 21:43:11.67ID:???0206nobodyさん
2011/07/04(月) 21:58:37.04ID:???0207nobodyさん
2011/07/04(月) 22:31:34.60ID:???0208nobodyさん
2011/07/04(月) 22:56:31.09ID:???「弟よ、XAMPPは使うな」
0209nobodyさん
2011/07/04(月) 23:26:58.82ID:DllDdKEc$count = 0;
いろいろ処理
$count++;
}
for($i = 1; $i < $count; $i++) {
echo "i=".$i
}
0210nobodyさん
2011/07/04(月) 23:29:27.66ID:???0211nobodyさん
2011/07/04(月) 23:29:38.58ID:DllDdKEc基礎を勉強中なのですが、以下のプログラムを書いて動作を確認しました。
$count = 0;
いろいろ処理{
$count++;
}
for($i = 0; $i < $count; $i++) {
echo "i=".$i
}
そして、上記のプログラムで、for文の部分を以下のように変更すると、メモリオーバーフローを起こしてしまいます。
for($i = 0; $i < $count; $i++) {
↓
for($i = 1; $i <= $count; $i++{
なぜ、上のように変更すると、オーバーフローを起こしてしまうのでしょうか?
0212nobodyさん
2011/07/04(月) 23:31:24.88ID:DllDdKEc$count = 0;
いろいろ処理ループ処理{
$count++;
}
for($i = 0; $i < $count; $i++) {
echo "i=".$i;
}
変更点
for($i = 0; $i < $count; $i++) {
↓
for($i = 1; $i <= $count; $i++) {
0213nobodyさん
2011/07/04(月) 23:37:26.69ID:uhW0inEaにあちこちで紹介されていて、例えば、典型的な方法、
$auth_login = new Auth("DB", $params,"loginFunction");// インスタンス生成
だと、loginFunction()でecho文を使ってログインフォームを作るのですが、
こうではなく、自分でHTMLでオリジナルのログインページを作ってからAuthのphpファイルを
呼び出して操作したい場合、インスタンス生成のときにどうやってPOST
されてきたユーザ名(普通だったら$POST_['username'とか])とパスワード($POST_['password'とか])を
Authに突っ込めば良いのでしょうか?
よろしくお願いします。
0215nobodyさん
2011/07/04(月) 23:41:58.96ID:uhW0inEa$countはどこまで増えていくの??有限なの?
■ このスレッドは過去ログ倉庫に格納されています