【PHP】下らねぇ質問はID出して書き込みやがれ 76
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/11/13(木) 04:15:32ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0232nobodyさん
2008/11/19(水) 04:30:11ID:???0233nobodyさん
2008/11/19(水) 06:38:29ID:???ヒント:パターン修飾子
http://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php
0234nobodyさん
2008/11/19(水) 08:18:27ID:???言い間違いが目立つならそいつの間違いを
最初に考える。
経験則では、報告の文でやたら漢字を
使いまくる奴も大体は頭が悪い。
(やたら→矢鱈、しかし→併しとか)
一般的には平仮名で記述する言葉を
上手く判断できないということなのだろう。
数学の試験問題みたいなフォーマルな
記述が出来ている質問ならそいつは
馬鹿じゃない可能性が高いんでバグが
あるのかもねと調べてみる。
0235nobodyさん
2008/11/19(水) 08:20:23ID:???0236nobodyさん
2008/11/19(水) 08:47:03ID:???これって危険?
0240nobodyさん
2008/11/19(水) 14:25:02ID:???感じると死体が往来を徘徊する幻覚が見えて、全く
無関係の人間をリビングデッドだと判断して物理的に
攻撃してしまうため、その症状を薬で抑えている。
俺は今から約二年前に都立松沢病院の閉鎖病棟に
入っていたが、あそこは精神力の足りない者の吐き溜め
だった。生得的なものか環境によってねじ曲がったのか、
精神の病気になり真っ当な日常生活を送ることができず、
周囲の人間か或いは自分を物理的に傷付けて、時には
死に至らしめる。
0241nobodyさん
2008/11/19(水) 14:34:07ID:???メンヘラお得意の体験談やポエムはブログでやってね
0242nobodyさん
2008/11/19(水) 15:29:01ID:???常駐してるのは今に始まった事じゃないしwwww
0243nobodyさん
2008/11/19(水) 15:29:57ID:???0244nobodyさん
2008/11/19(水) 18:48:29ID:rh/HC40wファイルから「1」を読み込んで
プラス1して返す、ってコードを書いたんだが、
ふと思ったんだが、この「1」を数字と解釈してくれるから
普通にプラス1できるわけだが、もしPHPがこれを
数値型でなくて文字型と解釈したら
「文字の1にプラス1加算とかできねーよwww」
とかって言われてプログラムが動かなくなると思うんだが、
なぜPHPはこっちの用意した「1」を数値型だと
認識しているのだろうか??
0245nobodyさん
2008/11/19(水) 18:51:22ID:???0247nobodyさん
2008/11/19(水) 20:29:08ID:rh/HC40w「ボタンが押されたら数字をプラス1してファイルに書き込む」
ってプログラムで、以下のように書いたんだが、
今はこれで動いているんだが、こんな書き方でいいのかな?
if (isset($_POST["aaa"])) { /*ボタンが押されたら*/
$fh=fopen("../../n.txt","r+"); /*ファイルを読み書きモードで開く、ファイルポインタに入れる*/
flock($fh, LOCK_EX); // 書き込みロック
$a=fgets($fh); //ファイルの中味を取得して$aに入れる
$a=$a+1; //$aをプラス1する
fseek($fh, 0); // ポインタを先頭に戻す
fputs($fh, $a); // さっきプラス1した$aを書き込み
fclose($fh); // ファイルを閉じる
}
0248nobodyさん
2008/11/19(水) 20:30:46ID:rh/HC40w「ボタンが押されたら」
の部分の処理に不安がある
教科書に載ってない独自のやり方だから。
教科書のコードは意味の解説がなかったので
信用できんかったので自分で書いてしまったのだが。
0249nobodyさん
2008/11/19(水) 20:36:18ID:rh/HC40wemptyを使う方法、is_nullを使う方法、issetを使う方法、
&&で連結する方法、等、
多数の方法が入り乱れていて、どれを選択したらいいのかがわからん。
0250nobodyさん
2008/11/19(水) 20:49:01ID:???どういう役目を持ってるか考えたら自ずと答えは出るだろ・・・
誰かが食いもんか何かで例えてたけど
みかんが存在しなければ食えないし isset
みかんがあっても中身がなければ食えない 変数== ''等
で、中身があっても腐ってれば食えない バリデート等
0251nobodyさん
2008/11/19(水) 20:50:44ID:???0252nobodyさん
2008/11/19(水) 20:57:28ID:???http://agribiz-fair.jp/
ここのサイトなんだが、
http://agribiz-fair.jp/2007/list/
http://agribiz-fair.jp/2007/list/detail.php
↑こういうリンクをクリックすると、phpのソースがまるっと
出てきてしまう。アパッチの設定ミスか?
0254nobodyさん
2008/11/19(水) 21:23:44ID:???お、本当だ
つーかそこの人に連絡してやれよ
多分PHPが使えるディレクトリ等を制限してるんじゃないかな
んでそこを使えるように.htaccessかconfの変更忘れかで
そういう状況
0256nobodyさん
2008/11/19(水) 21:30:21ID:???XXSし放題じゃん
0258nobodyさん
2008/11/19(水) 21:39:17ID:???0259nobodyさん
2008/11/19(水) 21:40:47ID:???自分で踏んで自爆か?
0260nobodyさん
2008/11/20(木) 00:15:53ID:GXD6uC7d1.氏名を表示させる
2.男性、女性をreslt.phpで表示させる
男性の場合青、女性の場合赤で表示させること
3.趣味を表示させる
読書、ゲーム、映画、旅行、スポーツ
チェックした項目をreslt.phpで複数表示させる事
チェックした項目には
あなたの趣味は○○と○○ですね。と表示させる
読書、ゲーム、映画、2点以上 のみチェックした場合、「たまには体を動かしましょう」
スポーツ、旅行の 2点チェックした場合 「体を動かすのは良いことです。」
全てチェックを入れた場合には、(5点)「たくさんの趣味がありますね。」
と表示させる
3ができません
助けてください><
http://www9.uploader.jp/dl/naoya6628/naoya6628_uljp00007.zip.html
1,2はできました
C言語が間違ってるんだと思います
0261nobodyさん
2008/11/20(木) 00:39:20ID:???「ボタンが押された時に、○○を実行する」
って処理で、issetで&&で
if(A && B) {
○○
}
(Bは $a!=""って記述)
って書かなければいけない、っていうサンプルコードを
よく見るんだけど、なんでBが必要なのかわからなかったんだけど、
もしかして、issetは $a="";
の場合をトラップできないので、そのための保険?として
Bが必要なのかな?っていうところまでわかったんだけど、
じゃあ、どんな場合に$aが空白になるの?
今度それがわかんない。
0262260
2008/11/20(木) 00:51:53ID:GXD6uC7d練れないです たすけてくだしあ
0263nobodyさん
2008/11/20(木) 01:37:59ID:???result.phpの、
21行目くらいの、
if(isset($_POST["hobby"];)){
↑これ、余計なセミコロン;がついてる。
0264nobodyさん
2008/11/20(木) 01:48:14ID:???0265260
2008/11/20(木) 01:49:02ID:GXD6uC7d本当に感謝www
ライン51のエラーも分かって
sportsにチェック入れたらreadですねってでてきた!!!
間違ってるけどうれしい!!
もうちょっと頑張って本当に分からなければ質問します
ありがとです><
0266nobodyさん
2008/11/20(木) 01:52:36ID:???Parse error: syntax error, unexpected ';', expecting ',' or ')' in C:\xampp\htdocs\result.php on line 23
ってエラーが出たもんで、
unexpected ';'
って書いてあるもんだから、余計な;セミコロンが
あるんだろうなー、、、てわかったんだけど、
エラーメッセージは見なかったのかな?
0267260
2008/11/20(木) 01:52:55ID:GXD6uC7d付け加えたら氏名がhobbyになりますた
0268nobodyさん
2008/11/20(木) 01:53:02ID:???0269nobodyさん
2008/11/20(木) 01:59:33ID:???print $sports ;
?>
↑これが唐突に出てきてるんだけど、
$sports はどこで定義されてるの?
0270nobodyさん
2008/11/20(木) 02:00:15ID:???0271nobodyさん
2008/11/20(木) 02:02:58ID:YCb8rCMrマニュアルをコピペしてるだけのサイトってなんなの?
検索でひっかかってすげーウザいんだけど。
0272260
2008/11/20(木) 02:08:17ID:GXD6uC7d修正した
>>270
会社ではあいよ
専門学校
>>266
エラー吹いたら英語の時点で読む気がwww
0273nobodyさん
2008/11/20(木) 02:16:54ID:HLYnX99eWindowsでphpファイルを作成しているんだが、
エディタの設定で、改行コードは、windowsの標準のCR/LFで
保存されてるんだが、サーバーにアップロードするときに、
特に何もしないで、CR/LFのままアップロードしてるんだが、
本当はUNIX標準改行コードのLFに直してから
アップロードしないとだめなの?
0274nobodyさん
2008/11/20(木) 02:24:44ID:HLYnX99e自己解決した。
アスキーモードでアップロードするなら、
FTPソフトが自動で改行コードも
変換してくれるそうです。
0275272
2008/11/20(木) 02:24:59ID:GXD6uC7dマジ分からんお手上げです><
誰か修正してくだしあ
0276nobodyさん
2008/11/20(木) 02:35:00ID:HLYnX99e↑ここ見てたら、こんな表現を発見してしまった
# // ボタンが押されたら
# if($_GET['cmd']<>""){
いったい、どれを使えばいいんだ?
0277nobodyさん
2008/11/20(木) 02:36:28ID:HLYnX99eデフォルトではNULLなのか?
0279nobodyさん
2008/11/20(木) 03:57:43ID:8S9SJ1aO31日、毎日違う文を表示させたいのですがどう書いたらいいですか?
フリーで探したんですけどなくて・・・
0280nobodyさん
2008/11/20(木) 04:00:01ID:???んで31個文章作るだろ?
あとはそれ同士をくっつけて取ってくればおk
0281nobodyさん
2008/11/20(木) 05:25:19ID:???0282nobodyさん
2008/11/20(木) 05:34:31ID:???ID:LBY0wnii
ID:uO1yzOV4
ID:WbAApVvS
ID:rh/HC40w
ID:HLYnX99e
0283nobodyさん
2008/11/20(木) 05:36:52ID:8S9SJ1aO<?php
$today = getdate();
if($today[mday] == 1) {
include "1.php";
}
elseif($today[mday] == 2) {
include "2.php";
}
else {
include "3.php";
}
?>
似た感じのソースを見つけたんですけど、
こんな感じで elseif を増やしていけばいいですか?
最後のelseは例えばelseif を1〜30まで作って、
どれにも該当しない場合(31日)でる処理で大丈夫ですか?
よろしくお願いします。
0284nobodyさん
2008/11/20(木) 05:50:31ID:???switch文にしな
というかファイル名と日時が一緒なら
単にinclude($today["mday"] . ".php")でいいのでは?
0285nobodyさん
2008/11/20(木) 06:21:13ID:8S9SJ1aOありがとうございます
<?php
$today = getdate();
include($today["mday"] . ".php")
?>
で、済むということですか!?
0286nobodyさん
2008/11/20(木) 07:30:39ID:???1.phpから31.phpを用意するならね
同じディレクトリだとファイル数が多くなってごちゃごちゃするから
もしやるなら別のディレクトリにしたほうがいい気がするけど
include("./dir/" . $today["mday"] . ".php")
今日は○日ですというだけのスクリプトならば
$today = getdate();
echo "今日は" . $today["mday"] . "日です<br>\n";
だけでいいし
数文字程度の占いみたいなメッセージをechoするだけなら
わざわざ30個ファイル作るよりswitch文使って条件分岐した方がいいと思う
その場合メッセージをreturn値にして関数化したほうがごちゃごちゃにならなくていいと思う
0288nobodyさん
2008/11/20(木) 09:17:44ID:8S9SJ1aOちょっとreturn値とか頭がこんがらがりそうなので
先ほど教えてくれた、
include("./dir/" . $today["mday"] . ".php") でやってみる事にします。
ありがとうございました。
>>287
わかりました!
でもちょっとやり方がわからないので1−31まできちんと用意すれば
大丈夫ですよね?;
0289nobodyさん
2008/11/20(木) 09:31:03ID:???$inc_file = "./dir/" . $today["mday"] . ".php";
if (file_exists($inc_file)) {
include($inc_file);
else {
echo "ファイルがないよ";
}
例外処理でやるのが理想的だけどわからなそうだから
簡素化するとこんな感じかね
0290nobodyさん
2008/11/20(木) 11:19:40ID:8S9SJ1aO助かりました、そのまま使わせていただきます
親切にありがとうございます!
0291nobodyさん
2008/11/20(木) 13:12:48ID:???とかどう
0292nobodyさん
2008/11/20(木) 13:30:28ID:???その時点でincludeされてしまうだろ
is_readableとかならわかるけどさ
きりがないしそこまでやる必要はないと思うけどね
0293nobodyさん
2008/11/20(木) 16:27:48ID:???0294nobodyさん
2008/11/20(木) 16:46:35ID:???2回includeするもんだと思ってたわ
でも条件演算子を普通に使うのは違和感がある
0295nobodyさん
2008/11/20(木) 16:50:28ID:???0296nobodyさん
2008/11/20(木) 17:02:26ID:HLYnX99e変数を初期化する、って言ったら、普通
$a= "";
ってするものなの?
0297nobodyさん
2008/11/20(木) 17:05:27ID:???0298nobodyさん
2008/11/20(木) 17:12:49ID:HLYnX99e↑これでもいいの?
0299nobodyさん
2008/11/20(木) 17:14:55ID:???if文でどう書くの?
if (file_exists($inc_file) && include($inc_file)) {
}
この中身を空にするわけ?
いろいろと構文的にもおかしいよ
0300nobodyさん
2008/11/20(木) 17:20:00ID:???0301nobodyさん
2008/11/20(木) 17:22:23ID:???ここを汲み取れ
ちなみにincludeするファイル内にreturn書いてない限りifにincludeを書かない方がいいよな
読めなければfalseになるが、E_WARNINGを制御出来るわけじゃないし
0302nobodyさん
2008/11/20(木) 17:40:31ID:???includeはできるわけでincludeできることを前提で書いたほうがいい
もしファイルが存在して読み込み可能なのにincludeできないなんてことが仮におこった場合
それは普通の状態でないわけで
書き手がそこまで責任を負うことはない
0303nobodyさん
2008/11/20(木) 17:47:16ID:AwsGLaDAhttp://www.php.net/manual/ja/language.operators.logical.php
>>295 は例1に書いてあることを言っているんじゃないかと思う。
質問者にとってはどうでもいいことだが。
>>302
あなたのところではそうかもしれないが、少なくとも私のところでは
そうではない。
どうでもいいことだが。
同じ人が同じような処理をするコード書いても、前提や目的によって
だいぶ変わるだろ。そういうことを無視して意見されても全く参考に
ならない。
0304nobodyさん
2008/11/20(木) 17:50:08ID:???「仮に」ifの条件中に書いたとしても動作は同じだよってこと言ってるんだと思うが。
ちなみに構文的にどこがだめなん?おかしくないよ。
0305nobodyさん
2008/11/20(木) 17:53:21ID:HLYnX99e<form name="abc" action="abc.php" method="post">
<input type="submit" value="push" name="def">
</form>
<php
print_r ($_POST['abc']);
print_r ($_POST['def']);
print $_POST['abc'];
print $_POST['def'];
?>
これで、何も表示されないんだが、なんで?
0306nobodyさん
2008/11/20(木) 17:53:56ID:???0307nobodyさん
2008/11/20(木) 17:55:57ID:???じゃぁifの中にinclude入れると意味ないんじゃ・・・
includeすることが前提で読み込まなきゃ先に進めないようなものならrequire使うだろうし
でも構文的には間違ってないな、目的の用途しては適してないだろうけど
0308299
2008/11/20(木) 17:56:49ID:???勘違いしてた
if文の中身書かないとなんかwarnが出たと思ったけど気のせいだった
もし中身書くなら条件文を否定にすればいいのかな?
if (!file_exists() && !include()) {
echo "includeできない";
}
0310nobodyさん
2008/11/20(木) 17:57:28ID:HLYnX99eごめん、初心者なんでそれだけだとわかんない。
0313nobodyさん
2008/11/20(木) 17:58:52ID:HLYnX99eあのさ、キミいつも
教え方があまりにも抽象的すぎるんだよ
会社でもそういわれるだろ?
「もっと具体的にわかりやすくしゃべれ」って。
0314nobodyさん
2008/11/20(木) 17:59:24ID:???if (file_exists($inc_file) {
include($inc_file);
} else {
echo 'includeできない';
}
でいいじゃん
0315nobodyさん
2008/11/20(木) 17:59:59ID:???0316nobodyさん
2008/11/20(木) 18:01:37ID:???ずばりそれ
別に短く書くことを競ってるわけじゃないしな
後はis_readableとか、is_file絡めるくらいっしょ
0317nobodyさん
2008/11/20(木) 18:02:29ID:HLYnX99eサンキュー
構文チェックしたら
No syntax errors detected
になるんだけど、なんで??
無料のエディター使ってるから?
0318nobodyさん
2008/11/20(木) 18:02:44ID:???その通り
ファイルの存在チェックとincludeできるかの評価を
一緒の式ですべきでない
もしやるとしたら
if (file_exists($inc_file)) {
if (include($inc_file)) {
}
}
どうみても冗長だけど
0319nobodyさん
2008/11/20(木) 18:04:30ID:???0320314
2008/11/20(木) 18:06:04ID:???ってまぁ>>289で既に書かれてたから蛇足もいいところだけど
>>318
それだったら波括弧いらなくね?
てかifの中に入れる場合の議論をする必要性がわからないw
「ifだったら>>291は動作しない」→「仮にifに入れても動作は同じ」っていう仮定の話だったのにw
0321nobodyさん
2008/11/20(木) 18:06:44ID:AwsGLaDA「すべきでない」理由とはなんですか?
0323nobodyさん
2008/11/20(木) 18:07:52ID:HLYnX99e<form name="abc" action="ghi.php" method="post">
<input type="submit" value="push" name="def">
</form>
<?php
$_POST['abc']="";
print_r ($_POST['abc']);
print_r ($_POST['def']);
print "<br>";
print $_POST['abc'];
print $_POST['def'];
?>
これで
push
push
と表示されるようになったけど、
<form name="abc" の「abc」と、(1)
name="def"> の「def」は、(2)
必ず、違う文字列にしないとだめなの?
もし(1)と(2)を同じ文字列にして(例えば「aaa」とか)
そんでそれをprintするってときに、
どっちのaaaなのか、phpはちゃんと判別できるの?
0325nobodyさん
2008/11/20(木) 18:14:43ID:HLYnX99e<input type="submit" value="push" name="def">
</form>
<?php
$_POST['abc']=""; //配列変数初期化
$_POST['def']="";//配列変数初期化
print_r ($_POST['abc']);//プリント
print_r ($_POST['def']);//プリント
print "<br>"; //改行
print $_POST['abc'];//プリント
print $_POST['def'];//プリント
?>
------------------------
↑これで、画面になんも表示されなくなった。
ということは、ボタンをプッシュする行為では、
変数には、なんの値もセットされない、という
理解でいいのか?
0326nobodyさん
2008/11/20(木) 18:15:17ID:???0327nobodyさん
2008/11/20(木) 18:18:31ID:HLYnX99eさっきボタン押したときに
push
って表示されてたもんねえ
だからボタンを押すと、pushって文字列が
配列変数にセットされるはずなんだけど、
phpのコードの先頭で、配列変数を初期化してしまうと、
そっちの権力のほうが優先されてしまうのか?
0328nobodyさん
2008/11/20(木) 18:18:48ID:AwsGLaDAそれ、321に対する回答でしょうか?
「一緒の式ですべきでない」のが「warning対策」という主張なら、
303に書いたリンクにかかれていることからも、実際に試してみた
結果からも、理解できませんでした。
0329nobodyさん
2008/11/20(木) 18:23:39ID:???変数使う時は初期化するのが原則だもんな。
発想は斬新で素晴らしいと思う。
>>328
322でも307でもないけど、307は
「ifは条件を満たしたときに実行したい処理を書くために使うもので、
Warning防止の目的なら291でいいし、未読み込み時の処理実行を防止したいなら
requireを使えばいい話だ」ということを言ってるんじゃないかな
0330nobodyさん
2008/11/20(木) 18:25:22ID:???includeできるかどうかをチェックするって発想が
includeできる状態かどうかをチェックするっていう発想が正解
その上でincludeするのがプログラム的にも自然
この辺は感覚だからうまく説明できないけど
まぁ慣れてくればわかるよ
■ このスレッドは過去ログ倉庫に格納されています