【PHP】下らねぇ質問はID出して書き込みやがれ 99
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/10/13(水) 12:01:33ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 98
http://hibari.2ch.net/test/read.cgi/php/1284805237/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0405nobodyさん
2010/10/19(火) 22:17:30ID:???サブミットするってsubmitボタンを押すって意味で解釈するなら値が空もありえる(理論的にありえても現実的にありえない?)としても、submitって言葉の意味なら「値を渡すこと」と解釈するのが妥当だと思うんだけどな
こんなこといったら噛みつかれちゃうかなw
0406nobodyさん
2010/10/19(火) 22:19:52ID:???0407nobodyさん
2010/10/19(火) 22:21:35ID:???0408nobodyさん
2010/10/19(火) 22:22:40ID:???なんもない場合も考えられる
それを屁理屈というかいわないか
という話ですね
0410nobodyさん
2010/10/19(火) 23:26:30ID:???値を受けた処理だけじゃなく、actionを受けた時点での処理も存在するからね。
例えば同一ページに2つフォームがあって、同じ場所にactionする場合とか。
2つのフォームのメソッドはそれぞれPOSTとGETになっていて、
どちらかで処理を分けたい時なんかは、
if ($_POST)
if ($_GET)
で分けたりもするから。
設計を変えろだのそういう話は置いといて、そういう書き方してる人がいるのも事実。
0412nobodyさん
2010/10/19(火) 23:31:00ID:???ラジオボタンで未チェックなら値は渡ってこないから
値が空は普通にあるよ
その場合、isset等を使わず $_POST['radio'] (←ラジオボタンだとして)をそのまま使えばNOTICEがでる
0413nobodyさん
2010/10/19(火) 23:38:08ID:???0414nobodyさん
2010/10/19(火) 23:40:21ID:???0415nobodyさん
2010/10/19(火) 23:45:05ID:???0416nobodyさん
2010/10/19(火) 23:56:27ID:???0417nobodyさん
2010/10/20(水) 00:02:21ID:???nameをradioしたのは説明上の理由にきまっとろう
0418nobodyさん
2010/10/20(水) 00:10:19ID:???0419nobodyさん
2010/10/20(水) 00:42:00ID:goWML+Iz0420nobodyさん
2010/10/20(水) 01:03:07ID:???E_NOTICEでエラー出ちゃうじゃん。
0421nobodyさん
2010/10/20(水) 02:07:00ID:???0422nobodyさん
2010/10/20(水) 02:21:45ID:???isEmpty() みたいなメソッドを独自実装してるのって俺だけ?
0423nobodyさん
2010/10/20(水) 02:25:44ID:???0424nobodyさん
2010/10/20(水) 02:32:42ID:???0425nobodyさん
2010/10/20(水) 06:30:11ID:3XsRLFfkbangohan.phpというファイルを作成して
<form action="bangohan.php" method="post">
<select name="晩御飯">
<option value="" selected="selected">▼選択して下さい</option>
<option value ="100">アポロチョコ</option>
<option value ="200">ポッキー</option>
<option value ="3000">マグロのカルパッチョ</option>
</select>
<?php
$bangohan = $_POST["晩御飯"];
echo "$bangohanキロカロリーだよ!";
?>
<input type="submit" value="カロリーチェック!">
でカロリーチェックを押したらselectで選択したところが元の▼選択して下さいに戻ってしまうんですが戻らない方法ってありますか?
そして2つ目の質問ですが
このページの下部にもう一つsubmitで
<input type="submit" value="1日3食1ヶ月間コレを食べたら?">
というのを作って
<?php
echo"$bangohan*90"キロカロリーだよ!;
?>
というのも追加したいんですがこの時どのようなコードにすればいいのでしょうか?
なるべく1つのphpファイルにまとめたいのですが
0426nobodyさん
2010/10/20(水) 07:27:59ID:???1.各optionに$_POST['晩御飯']の値で条件分岐してselected="selected"をつける
2.submitの値で処理を分ける
つまりif文という奴を使ってください
0427nobodyさん
2010/10/20(水) 07:46:35ID:3XsRLFfkすみません、条件分岐はわかるのですが
>各optionに$_POST['晩御飯']の値で条件分岐してselected="selected"をつける
というのは
<option value ="if($_POST['晩御飯'] == 100){selected="selected} else{100}">アポロチョコ</option>
<option value ="if($_POST['晩御飯'] == 200){selected="selected} else{200}">ポッキー</option>
<option value ="if($_POST['晩御飯'] == 3000){selected="selected} else{30000}">マグロのカルパッチョ</option>
と、こういうことでいいんでしょうか?全然理解してなかったらすみません
そして2についてですが
submitの値で処理を分けるというのが具体的にどういうものなのか、試しに調べてnameを付けて
<input type="submit" name="1syoku" value="カロリーチェック!">
<input type="submit" name="1month" value="1日3食1ヶ月間コレを食べたら?">
というのをやってみたのですがどっちも
<form action="bangohan.php" method="post">
に送られて両方
<?php
$bangohan = $_POST["晩御飯"];
echo "$bangohanキロカロリーだよ!";
?>
<?php
echo"$bangohan*90"キロカロリーだよ!;
?>
の二つの計算結果が表示されてしまいました
HTMLもphpも勉強足りなくて本当にすみません
0428nobodyさん
2010/10/20(水) 09:50:33ID:VChkUypHselect されていない時のhtmlタグ($_POST["晩御飯"] が 100ではない)
<option value ="100">アポロチョコ</option>
select されているとき(要は$_POST["晩御飯"] が 100)の時のhtmlタグ
<option value ="100" selected="selected">アポロチョコ</option>
結果の例
<option value ="100" <?php if($_POST["晩御飯"]=100){ print 'selected="selected"';}?>>アポロチョコ</option>
書き方はいろいろあるとおもう
0429nobodyさん
2010/10/20(水) 09:54:56ID:???0431nobodyさん
2010/10/20(水) 10:21:11ID:???0432nobodyさん
2010/10/20(水) 10:43:40ID:???cができれば簡単にできるよ
PHP Extentionで検索すればいっぱいでてくる
0433nobodyさん
2010/10/20(水) 10:48:34ID:???ここにいる人ってだいたい共用サーバでしょ?
PHPのソース拡張しても実運用じゃ使えなきゃ意味ないしな
0434nobodyさん
2010/10/20(水) 11:11:00ID:???0435nobodyさん
2010/10/20(水) 11:58:57ID:???今までselectedしか書いてなかったよ
XHTMLとかは属性値が必須だからselected="selected"って書かないと駄目
0437422
2010/10/20(水) 12:49:38ID:???issetとemptyって、空文字("") や "0" でも true を返すから、あまり好きじゃない。
(issetは用途が違うとは思うけど)
function isEmpty($target) {
if ($target === "") return true;
if ($target === null) return true;
return false;
}
0439nobodyさん
2010/10/20(水) 13:19:06ID:3XsRLFfkできました!ありがとうございます!
質問の一つが解決しました
0440nobodyさん
2010/10/20(水) 13:26:54ID:???何も送られてこなくても空文字になるだけでnullにはならない
問題なのは最初に開いて未送信の状態だとnullであることだね
nullと空文字を同列に扱ってもいい場合はそういう書き方でも問題ない
0441nobodyさん
2010/10/20(水) 13:42:45ID:???0442nobodyさん
2010/10/20(水) 13:54:02ID:???そうとも限らないじゃないかな
0444nobodyさん
2010/10/20(水) 14:01:21ID:???はじめからtextarea等とわかったうえでならいいのかもしれないが
radioやcheckboxは未checkだと空文字ではなく値が渡ってこないから
わかってないとはまりそうじゃない?
taintが無いのは慣れたけど、phpの流儀はよくわからんな
未定義の可能性があるものをそのまま渡すのがphpの普通なの?
NOTICEを無視するのも普通?
0445nobodyさん
2010/10/20(水) 14:04:18ID:???とかにするよな?
0446nobodyさん
2010/10/20(水) 14:09:49ID:???if (empty($hoge)) ; // 同じく言語構造に渡してチェックできる
if ($hoge) ; // 未定義だから警告出る
if (isEmpty($hoge)) ; // 未定義だから警告出る
>>443 こういうことでしょ
0447nobodyさん
2010/10/20(水) 14:11:37ID:???0449nobodyさん
2010/10/20(水) 14:17:42ID:???$hoge = $_POST['hoge'] ? $_POST['hoge'] : "";
if ($hoge)
or
if (isset($_POST['hoge']))
0450nobodyさん
2010/10/20(水) 14:17:50ID:???若干遅くなるって話も聞くけどループでぶん回すとこじゃなけりゃ
気にしない。
0451nobodyさん
2010/10/20(水) 14:18:59ID:???スタンダードとかやばいなかw?
さくらってすぐに鯖落ちするからなぁー
0452nobodyさん
2010/10/20(水) 14:20:24ID:???$hoge = $_POST['hoge'] ? $_POST['hoge'] : null;
or
$hoge = null;
if (isset($_POST['hoge'])) {
$hoge = $_POST['hoge'];
}
とかか
0453nobodyさん
2010/10/20(水) 14:26:02ID:???三項演算子はif-else文と対応するだけであんまり関係ないよ
コードがスッキリするか否かの差じゃないかな
(三項演算子嫌いな人もいるからスッキリするかは人それぞれだけど)
もしやるなら
$hoge = isset($_POST['hoge']) ? $_POST['hoge'] : null;
だね
結局isset使えでいいんじゃないの
0454nobodyさん
2010/10/20(水) 14:40:41ID:???・isset/emptyでチェックする
→http://www.php.net/manual/ja/function.isset.php
・error_reporting = E_ALL & ~E_NOTICE でNOTICEを無視
→http://www.php.net/manual/ja/errorfunc.configuration.php#ini.error-reporting
・@つけてエラーメッセージを無視
→http://www.php.net/manual/ja/language.operators.errorcontrol.php
0455nobodyさん
2010/10/20(水) 14:48:19ID:???0456nobodyさん
2010/10/20(水) 14:52:42ID:???ちょっとした自分で使うような適当なスクリプトだけじゃない
バッチ処理だったりそういうのを含めて
エラーとか細かい処理は必要がないそんな適当なものだけ
使わなきゃいけないって場面はないんじゃない
使わなかった場合チェック用のロジックが必要になってコード増えるだけだし
0457422
2010/10/20(水) 15:03:45ID:???$hoge = $_POST['hoge'];
とは意味違うの?
ちなみに、検索条件の入力有無の判定とかで isset って使う?
入力値を trim することを考えると、isset と empty だけだと、なんかややこしい。
他人のソースを見ると、isset を使ってるのが多いから、
理由がわかれば、オレもそっちを使いたいんだけど。
0458nobodyさん
2010/10/20(水) 15:20:47ID:???0459nobodyさん
2010/10/20(水) 15:49:38ID:6gJYBDD60460nobodyさん
2010/10/20(水) 15:54:30ID:???0461nobodyさん
2010/10/20(水) 16:07:38ID:xwi4oiJN0463nobodyさん
2010/10/20(水) 16:16:01ID:???0464nobodyさん
2010/10/20(水) 16:16:56ID:xwi4oiJNcookie使えない携帯あるから・・・・
0465nobodyさん
2010/10/20(水) 16:25:23ID:???md5 + サイトで設定した文字列
ではなく
md5(サイトで設定した文字列 + ユニークな文字列)
にするといいぉ
0466nobodyさん
2010/10/20(水) 16:26:57ID:xwi4oiJNユニークにするとセッション続かなくない?
0467465
2010/10/20(水) 16:27:04ID:???無視してね。
0468nobodyさん
2010/10/20(水) 16:28:50ID:???0470nobodyさん
2010/10/20(水) 16:43:17ID:???クッキー使えるかどうかとセッションIDをどう決めるかに何の関係があるんだ?
クッキー云々は決めたセッションIDをどうやって端末とやりとりするかの問題だろ。
0471nobodyさん
2010/10/20(水) 16:44:01ID:???0472nobodyさん
2010/10/20(水) 17:01:20ID:???携帯でセッション使う方法として、クッキーが使えないからPHPSESSIDの代わりに携帯のID使えないかなってこと。
クッキーがないとセッションって使えないよね?後はuse_trans_sidを1にしてリンクにPHPSESSIDを使うくらいしか・・・
なんか間違ってる?
0475nobodyさん
2010/10/20(水) 17:18:11ID:???0476nobodyさん
2010/10/20(水) 17:19:41ID:???@$hoge = $_POST['hoge'];
にすれば動作上は同じになるんでない?意味は違うけど
0478nobodyさん
2010/10/20(水) 17:32:26ID:???大抵専門スレで基本中の基本の質問してもググレカスって言われるのに
以前' 'と" "の違いも教えてくれたし本当に助かる
0479nobodyさん
2010/10/20(水) 17:34:38ID:???長くROMってればこのスレの低レベルさがわかる
そのうちギャーギャー喧嘩はじめるぜ
0480nobodyさん
2010/10/20(水) 17:37:57ID:???今も十分酷いレベルだろ
issetがどうとか@エラー制御がどうとか・・・
0481479
2010/10/20(水) 17:46:51ID:???基本的なことのほうが議論になりやすいだけだし
そういう話題は普通だと思うが
問題は煽ったりそれに乗ったやつが言い合いをはじめることだな
>>479-480も心当たりあるやつには煽りになってるから俺らも低レベルなのは認めざるを得ない
0482nobodyさん
2010/10/20(水) 17:58:54ID:???0483nobodyさん
2010/10/20(水) 17:59:33ID:???0484nobodyさん
2010/10/20(水) 17:59:57ID:???0485nobodyさん
2010/10/20(水) 18:05:05ID:???0486nobodyさん
2010/10/20(水) 18:15:39ID:???0487nobodyさん
2010/10/20(水) 18:16:18ID:???低レベルと煽る人は、否定はしても訂正はしてくれない
低レベルと言う位だから、何が問題なのかわかっているのに
それをあえて教えず、ただ煽ってニヤニヤしているだけ。
ちゃんと説明してあげるか、それが嫌なら書き込まずに黙ってればいいのに
0488nobodyさん
2010/10/20(水) 18:26:21ID:???0489nobodyさん
2010/10/20(水) 18:26:29ID:???0490nobodyさん
2010/10/20(水) 18:30:48ID:???0491nobodyさん
2010/10/20(水) 18:31:49ID:???こんなの
0492nobodyさん
2010/10/20(水) 18:33:17ID:???0495nobodyさん
2010/10/20(水) 18:38:28ID:???テンプレ守ってないとかならまだわかるが
0496nobodyさん
2010/10/20(水) 18:40:39ID:???0497nobodyさん
2010/10/20(水) 18:41:26ID:???1. 人力検索エンジン
2. エスパー
3. 煽り合い
0498nobodyさん
2010/10/20(水) 18:41:33ID:???0499nobodyさん
2010/10/20(水) 18:50:10ID:???とりあえず >>478 にはあやまってもらおうか。
0500nobodyさん
2010/10/20(水) 18:56:03ID:???0502nobodyさん
2010/10/20(水) 19:03:04ID:???空気読めないボッチかなんかか?
0504nobodyさん
2010/10/20(水) 19:06:14ID:???■ このスレッドは過去ログ倉庫に格納されています