【PHP】下らねぇ質問はここに書き込みやがれ 43
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2007/04/01(日) 04:21:50ID:VGqlLhlDPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc10.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc10.2ch.net/db/subback.html
0821nobodyさん
2007/04/10(火) 14:19:38ID:???<?php
session_start();
echo 'Welcome to page #1';
$_SESSION['favcolor'] = 'green';
echo '<br /><a href="page2.php">page 2</a>';
?>
を実行すると
hrefに?PHPSESSID=xxxx...が追加されるのはなぜ?
クッキーの読み込みをしていないのになぜブラウザの設定が分かるの?
(ブラウザをCOOKIE OKにしておくと?PHPSESSID=xxxx...は追加されない)
つか 初めての接続でブラウザのCOOKIE設定を知る方法があるの?
0823nobodyさん
2007/04/10(火) 14:28:49ID:mS0KEdcp!
0825818
2007/04/10(火) 14:49:13ID:???0826820
2007/04/10(火) 15:20:17ID:???例外ってcatchとかtryっていうやつですよね?
使ったことないのでよくわからないですが、
頑張って使ってみます。
0827nobodyさん
2007/04/10(火) 15:30:11ID:???http://pc11.2ch.net/test/read.cgi/php/1017456911/974
0828nobodyさん
2007/04/10(火) 15:54:27ID:???0829nobodyさん
2007/04/10(火) 16:07:31ID:qz4cFwH4リクエストパラメータはSJISで渡ってきますよね?
1)一括してEUC-JP変換
2)処理
3)一括してSJISに変換
4)表示
とやるか、
処理する段階で逐次変換処理を入れるか、
どちらが適当でしょうか?
0830nobodyさん
2007/04/10(火) 16:08:40ID:S/LWkosg0831830
2007/04/10(火) 16:13:03ID:???0834nobodyさん
2007/04/10(火) 17:48:44ID:???0835nobodyさん
2007/04/10(火) 18:08:15ID:???0836nobodyさん
2007/04/10(火) 18:26:31ID:GbKKaQIE0837nobodyさん
2007/04/10(火) 18:28:26ID:???0838nobodyさん
2007/04/10(火) 18:52:01ID:???(スクリプトが全て終了するのに最長3分ほどかかります)
別ファイルで時間を記録したテキストを作成して、
そこから現在時刻とひいて5分以上だったら、
アクセスしてきた人に更新してもらおうと思ったのですが、
上記の通り最長3分間ブラウザが無応答状態になるので、迷惑ですよね。
ポップアップで裏でやるなんてのも迷惑ですし、
もっと他にいい方法ありませんでしょうか?
0841nobodyさん
2007/04/10(火) 19:04:30ID:???0842nobodyさん
2007/04/10(火) 19:10:11ID:???おーこんな素晴らしいサービスがあったのですね。
知りませんでした。
これで解決しそうです。
本当にどうもありがとうございました。
0843nobodyさん
2007/04/10(火) 19:19:17ID:???4丁目に引っ越してきたPHP君。
大いなる進化をとげるたびにのファンを大切にしないところが玉に傷。
【Perl】
CGI全盛期にもっとも活躍した三丁目のPerlさん。
時代とともに年をとるのか、PHPにも活躍の場を与えるえらいひと。
【Java】
いざというとき頼れるJava兄さん。
大きな事件は「いいから俺にまかせてみろ!」と豪腕な構えだ。
【HTML】
すべてはここからはじまった伝説の男HTML。
戦いの場によっては、スーパーサイヤ人の限界を超えたXHTMLに変身して活躍していると噂される。
0844nobodyさん
2007/04/10(火) 19:25:57ID:???,,-‐'": : : : : : : : : : `ヽ
/: : : : : : : ,,__ : : : : : : \
r': ,、,,.-─''"゛ ミ : : : : : : : 'i、
`/ / ミ_ : : : : : : :,、}
i l _,,..-‐^‐-、 `゙i: : : /l.l|
i、}‐-、 ヽ;;/,rェッ;;'" ゙ー' 9iリ!
| ',tテi ヽ='" ゞ t'
| 'i"´| , -、 ヽ-、,,___
| '}、 !,,tu'" ヽ、 ,l: ‐-‐" }: : : : :
} lヽ、__,,,.-‐ヽ /: : : : : : /|: : : : :
,r/ /: : :ヽー‐' ノ: : : : : : : / .|: : : : :
/: \ /: : : : : 丶,, -''_: : : : : : / |: : : : :
/: : : : :ヽ/: : : : : : : ヾ''‐--‐ヽ |: : : : :
/: : : : : : : : : : : : : : : : : : ヽ\: : / |: : : : :
ビップ=デ=ヤレー[Vuip De Yale]
(1955〜 フランス)
0845nobodyさん
2007/04/10(火) 19:57:30ID:daN1ASwgMySQLのバージョンは5.0.22なんだけど、PHP5.1.6のPDOはサポートしてる?
教えてくれ。
0846nobodyさん
2007/04/10(火) 19:58:46ID:???|(a)別のHTMLのフォームからのPOST
↓
+----------------+ 実行 +----------------+
| 親モジュール.php |------->| 子モジュール.php |
+----------------+ +----------------+
↑ |
└−−−−−−−−−−−┘
(b) 親モジュールが生成するHTMLに結果を渡したい
(a)のPOSTで渡ってきたフォームのデータを、親モジュールでたとえば
$user_id = $_POST['USER_ID']
として取って、$user_idをrequire_onceで子モジュールに渡し、子モジュールではDBからuser情報をselectします。
子モジュール内には、HTMLを出力するような処理はなく、単純にDBからのselectのみです。
次に、select結果を変数に入れ、(b)のように親モジュールが生成する
HTML上のフォームに返したいのですが、そもそものフォームへの返し方がわかりません。
希望する処理の流れを整理すると。
(1) 静的なHTMLファイルのフォームから親モジュールにPOST
(2) 親モジュールはPOSTされた情報を使って子モジュールを実行し子モジュール内の変数に結果を代入
(3) 子モジュール内の変数にセットされた結果を親モジュールが生成するHTML内フォーム(HIDDEN属性など)にセット
(4) このタイミングで、親モジュールのHTMLが出力される
という処理をやりたいと思っていますが、
どのような方法を使えばよいか、ヒントだけでもご教示いただきたく。
現状、(2)までは出来ていて、(3)の部分で行き詰まっているところです。
0847846
2007/04/10(火) 19:59:55ID:???>$user_idをrequire_onceで子モジュールに渡し、
は、
$user_idをrequire_onceで実行した子モジュールに渡し、
という意味です。
0848nobodyさん
2007/04/10(火) 20:17:38ID:???ここが意味わかんないです><
0849nobodyさん
2007/04/10(火) 20:20:17ID:???0850虚弱PHP
2007/04/10(火) 20:20:37ID:???なにに躓いているのか分からない…。
俺だったら親がResultオブジェクトを用意して子に渡し、
子はResultオブジェクトに値を設定してリターン。
0851nobodyさん
2007/04/10(火) 20:21:48ID:???普通にDBから取得した値を変数に代入するなりすればいいだけじゃないかと
0852846
2007/04/10(火) 20:22:04ID:???わかりにくくてすみません。
まだPHPを初めて数日なものでして。。。(´・ω・`)
HTMLを生成しないPHPモジュール内の変数の内容を、
別のPHPモジュールが生成するHTMLのフォームに
渡す方法を知りたい、という感じです。
0853nobodyさん
2007/04/10(火) 20:22:43ID:???http://pc11.2ch.net/test/read.cgi/hp/1175593499/319
0855nobodyさん
2007/04/10(火) 20:26:22ID:???requie_onceしているだけならそのままそれが使えます
>>850の言ってるみたいにその小モジュールというのが
オブジェクト群とかでそれに渡しているのならそれを返せば良いだけ
0856846
2007/04/10(火) 20:32:26ID:???アドバイスありがとうございます。
ソースが会社なもので、今手元にありません。
戴いたアドバイスを元に、明日頑張ってみます。
あと、ソースを支障ない範囲に加工して明日はらせていただきます。
0857nobodyさん
2007/04/10(火) 21:38:43ID:???0858nobodyさん
2007/04/10(火) 21:40:29ID:???無駄な心配しなくていいよ846君
0859nobodyさん
2007/04/10(火) 21:42:08ID:???0860846
2007/04/10(火) 21:46:19ID:???0861nobodyさん
2007/04/10(火) 21:47:05ID:???0862nobodyさん
2007/04/10(火) 21:49:02ID:???0863nobodyさん
2007/04/10(火) 21:56:44ID:???0864nobodyさん
2007/04/10(火) 22:06:22ID:???0865846
2007/04/10(火) 22:10:47ID:???すみません。
いえ、パクられるなんてこれっぽっちも思ってません。
ただ、作ってるソースをそのまま貼ったのが会社にバレると、
こんなものでも面倒になるので、ということで。。。
>>860
別に私をカタるのは構いませんが、初心者おちょくるのは楽しいですか?
0866nobodyさん
2007/04/10(火) 22:12:12ID:???0867nobodyさん
2007/04/10(火) 22:16:03ID:???0868846
2007/04/10(火) 22:23:24ID:???トリップってやつを付ければいいんでしょう?
sage進行かと思って、ずっとsageをメル欄に入れてました。
トリップの付け方、勉強してきます。。。。
0869nobodyさん
2007/04/10(火) 22:28:51ID:???0871nobodyさん
2007/04/10(火) 22:36:53ID:???sageは自演隠しのための機能ですw
0872nobodyさん
2007/04/10(火) 22:39:08ID:???0873nobodyさん
2007/04/10(火) 22:41:28ID:NUin5iQlprivate $var;
function __construct($arg) {
$arg = $this->var;
}
function test() {
return $this->var;
}
}
$obj = new Test('hogehoge');
echo $obj->test();
例だとhogehogeを出力したいのですが、出力できません。
どこがおかしいのでしょうか?
0874873
2007/04/10(火) 22:46:54ID:NUin5iQl$arg = $this->var;
ではなくて、
$this->var = $arg;の順ですね。
スレ汚し失礼しました。
0875nobodyさん
2007/04/10(火) 22:47:11ID:???この辺
0876nobodyさん
2007/04/10(火) 23:21:59ID:6hVZtA400877nobodyさん
2007/04/10(火) 23:22:32ID:ywkUcui/0881nobodyさん
2007/04/10(火) 23:38:14ID:6hVZtA40ごめ、普通にスレ間違えた
0882nobodyさん
2007/04/10(火) 23:44:19ID:+1UvK/Faとりあえず整数かどうかの判定をしようと思って
if( is_int($_GET["data"]) == FALSE )
echo"エラー:入力されたデータは整数値ではありません。";
としてみたのですが、何を入力してもエラーが表示されてしまいます
なぜでしょうか?
0883nobodyさん
2007/04/10(火) 23:46:47ID:???0885nobodyさん
2007/04/10(火) 23:48:46ID:+1UvK/Fa例えば3を入力した場合
is_int($_GET["data"])の返す値はTRUEにならないのでしょうか?
0886nobodyさん
2007/04/10(火) 23:52:21ID:???引数が整数値じゃないとfalseじゃないの?
$_POSTの値は数値でも文字列だよ
やるならctype_digit()で
0887nobodyさん
2007/04/10(火) 23:59:59ID:???0888nobodyさん
2007/04/11(水) 00:01:03ID:???echo"エラー:入力されたデータは整数値ではありません。";
}
とかは?
0889nobodyさん
2007/04/11(水) 00:03:29ID:???0890nobodyさん
2007/04/11(水) 00:05:27ID:???>>888
が一番いいんでね?
(int)あたりでキャストしてもphpだと"50abc"でも50と判断しちゃうじゃなかった?
正規表現で判断するのが無難かと。
bool is_int ( mixed var )
与えられた変数が整数かどうかを検査します。
注意: 変数が数値もしくは数値文字列の場合 (フォームからの入力の場合は 常に文字列となります) 、is_numeric() を使用する必要があります。
0891nobodyさん
2007/04/11(水) 00:06:04ID:???0892nobodyさん
2007/04/11(水) 00:07:58ID:???0893nobodyさん
2007/04/11(水) 00:19:57ID:ZmOxrGFo>フォームからの入力の場合は 常に文字列となります
と思いっきりかいてありましたね(´・д・`;)
もう一つ質問です
フォームに無記入で送信した時に「入力されてないよ」というエラーを出したくて
if( is_set($_GET["data"]) == FALSE )
echo"入力されてないよ";
としてみたら、データを無記入で送信したときでなく
フォームのあるページに初めてアクセスした時に既にエラーが表示されてしまいました
無記入送信した時のみに表示するにはどうしたらいいのでしょう?
0894nobodyさん
2007/04/11(水) 00:27:22ID:???if(!is_set($_GET["data"])||$_GET['Submit'])
echo"入力されてないよ";
送信ボタンの名前は何よ?
0895nobodyさん
2007/04/11(水) 00:36:36ID:ZmOxrGFo送信ボタンにもname属性記述できたのですか
0896nobodyさん
2007/04/11(水) 00:53:01ID:???if($_GET["data"] == "") {
echo '変数が用意されてるかどうかと中身がカラかどうかは違うよ';
}
あと、isset()のような気がする。
0897nobodyさん
2007/04/11(水) 01:53:36ID:???emptyは中身
0898nobodyさん
2007/04/11(水) 02:19:55ID:???0899nobodyさん
2007/04/11(水) 02:45:59ID:wpqDaNbU$file = file("bbs.log");
$count = count($file);
$count--;
$file[$count];
という流れが妥当でしょうか?
もっと効率のよいやり方がございましたらご教授お願いいたします。
0900nobodyさん
2007/04/11(水) 03:19:04ID:???0901nobodyさん
2007/04/11(水) 03:39:18ID:???どうすればいいでしょうか?
0903nobodyさん
2007/04/11(水) 03:49:30ID:???テキストボックスのエンターとかで送信されたときに
submit buttonの名前を送らないブラウザがあったと思う
0904nobodyさん
2007/04/11(水) 03:52:55ID:???POST先のページでX軸とY軸で取得できるって皆知ってた?
0905nobodyさん
2007/04/11(水) 04:02:52ID:???これを一文で書く方法ないですか?
$a = explode('/',$str);
echo $a[1];
こういう風にテンポラリ変数を介するのではなく
explode('/',$str)[1]
のように書きたいんです
0906nobodyさん
2007/04/11(水) 04:10:54ID:???こんな関数はじめて使った
0908899
2007/04/11(水) 04:32:56ID:???おお〜それです。まさしく求めていた答えです。
905さんのやりかたに便乗します。発見してレスに残してくれてありがとうございます。
0910nobodyさん
2007/04/11(水) 10:47:54ID:KfKwGm7gdo_action();
}
True/Falseを返すdo_action()をn回行います。
Trueが返ってきた数によって、処理を決めたいのですが、
その処理をどこにどのように書けばいいのでしょうか?
n回全部Trueが返ってきた場合の処理と、
1〜n-1回返ってきた場合の処理と、
n回全部Flaseが返ってきた処理を書きたいです。
0911nobodyさん
2007/04/11(水) 10:59:41ID:???for ($i = 0; $i < $n; $i++) {
if(do_action()) $woofoo++;
}
if($woofoo==$n){
}elseif(0<$woofoo and $woofoo<$n){
elseif($woofoo==0){
}
0912nobodyさん
2007/04/11(水) 11:00:35ID:???for ($i = 0; $i < n; $i++) {
if(do_action()==true){$t++;}
}
if($t==0){
echo "ない";
}elseif($t<5){
echo "ある";
}else{
echo "すぎ";
}
ううう
0913910
2007/04/11(水) 11:14:53ID:KfKwGm7gお二人方どうもありがとうございます。
見事にスクリプトが一緒ですねw
早速使わせていただきます。
0914nobodyさん
2007/04/11(水) 11:30:55ID:???もっとえろい書き方もできるけどロジックに忠実に(バカ正直に)書いたらこんなものになるのが普通
0915nobodyさん
2007/04/11(水) 12:52:10ID:ZybRpRjg今,編集したい月と年を受け取って,その月の各フィールドに対する情報を入れるためのフォームをphpで出力しようとしているのですが,
"SELECT * FROM schedule WHERE DATE_FORMAT('date', '%Y-%m') = " . 年 . "-" . 月;
というクエリを送って,その結果をmysql_fetch_assoc()しても
まだ何もデータを入れていないせいだと思いますが,FALSEを返します.
各フィールドにデータが入っていてもいなくても,その月の日数分だけ処理を実行するにはどうすればよいですか?
0916nobodyさん
2007/04/11(水) 12:56:56ID:???0918nobodyさん
2007/04/11(水) 13:11:45ID:???mysql_fetch_assoc()でfalseが戻ったら
目的の処理をするように
PHPで記述すればいいだろ。
0919nobodyさん
2007/04/11(水) 13:15:29ID:???まだデータはないけど動作確認のために編集処理したいってこと?
0件ならFALSEが返ってきて当然だけど、どう動作してほしいの?
サンプルデータを入れるなり、新規登録フォームを作って入れるなりすりゃいいじゃん
0920915
2007/04/11(水) 13:48:33ID:ZybRpRjg昨日始めて,やっとまともに接続できるようになりました.
要領を得ない質問ですみません.
これは簡易スケジュール帳なんですが,なんでこんな処理をしたいかというと,
既にその日のスケジュールが定義されている場合は,フォームのvalueに既に入ってるスケジュールを表示して,
定義されてない場合でも,その日のスケジュールを編集するためのinputタグを出力したいからなのですが.
0921nobodyさん
2007/04/11(水) 13:50:58ID:???if(mysql_fetch_assoc(なんたら) ==false){echo '<form>.................';}
それだけの話しだろ
レス数が900を超えています。1000を超えると表示できなくなるよ。