【PHP】下らねぇ質問はここに書き込みやがれ 73
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/09/03(水) 20:14:53ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 72
http://pc11.2ch.net/test/read.cgi/php/1218855685/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0075N − 1
2008/09/05(金) 16:51:26ID:S0wC6xrrHTMLは分かるのですが、PHPは前の会社で少し使っただけで、きちんと理解していません。
タイトル
------
サブタイトル
本文〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
上記のような単純なページをタイトルごとに100ページ作るとして、これをHTMLで作ると、タイトルと本文以外のところをコピーして、そこにタイトルと本文を打ち込むようになりますよね?
HTMLで作ったすべてのページのフォントを変更したい、となった場合は、100全てのページを手作業で一つ一つ作り直さなければならないですよね?
そこでPHPを使いたいと思ったのですが、前の会社で理解しないまま使っていた下記のphp構文を見てください。
0076N − 2
2008/09/05(金) 16:54:35ID:S0wC6xrrif($_GET[pgfile]=="001"){
//だいこん
$title="だいこん";
$subtitle="おいしいだいこん";
$naiyo="だいこんは〜〜";
}elseif($_GET[pgfile]=="002"){
//みかん
$title="みかん";
$subtitle="おいしいみかん";
$naiyo="みかんは〜〜";
・
・
・
?>
これを「keyword.php」というファイル名で保存し、「index.php」にて「keyword.php」のファイルを読み込み、
<?
print $title;
?>
このようにすると、
http://○○○○.com?001
みたいにすると、だいこんのページが表示され、
http://○○○○.com?002
にすると、みかんのページが表示される。
の、ように使った覚えがあるのですが、何せ、理解しないままに使っていたので、
半年ほどphpに触れていないだけで忘れてしまいました。様々なページを見て、調べてみたのですが、わかりませんでした。keyword.phpを読み込む構文もどれを使えばいいのかわかりません。お力をお貸しください。よろしくお願いいたします。
0077nobodyさん
2008/09/05(金) 16:54:41ID:???0078N − 1
2008/09/05(金) 16:55:37ID:S0wC6xrrkeyword.phpは、メモ帳に残してあったのでそのままコピーしたのですが、
index.php
に書くphpがわからないということです。
■index.phpにてkeyword.phpを読み込む方法
■http://○○○○.com?001とすると、だいこんのページが、002だとみかんのページを表示させる方法
index.phpの書き方が何もわからない、と言うべきでしょうか。
お力をお貸しください。
宜しくお願い致します。
改行が多い、文字数が多いという制限で、このように3つに分けて書き込むことになりました。
見にくくなりまして申し訳ございません。
0079nobodyさん
2008/09/05(金) 17:07:34ID:???ここはおまえだけの質問スレじゃねえんだよクソがっ!
0080nobodyさん
2008/09/05(金) 17:24:29ID:???ちいたん使って最初から構築し直せ。
中途半端によく分からないコードをコピペしたところで、
オマイにとって何の役にもたたん。
0081nobodyさん
2008/09/05(金) 17:36:16ID:???ttp://www.sapphirus.biz/php/sformmail/
↑こちらのテンプレ(utf-8))を使わせていただいたのですが、
$mail_to の中身を自分のアドレスにしても
メールが届きませんでした。
あと
ttp://techblog.ecstudio.jp/tech-tips/mail-japanese-basics.html
などを見て( mail() で日本語は使えないということで)
<?php
mail('(メールアドレス)','test','testtest','(自分の別のメールアドレス)');
?>
としてみたんですが、これもメールが届きませんでした。
もしかしたら 自分が使っている hotmail でフィルタリング
されているのかもしれませんが
もし上のphpの使い方で間違っているところがあったら
教えてください。お願いします。
ちなみに実行環境は
land.to鯖(アップロードして実行)です
0082nobodyさん
2008/09/05(金) 17:38:57ID:???釣りなのか?
0083nobodyさん
2008/09/05(金) 17:46:06ID:???> されているのかもしれませんが
だったら、自分で確認出来るだろ。
0084nobodyさん
2008/09/05(金) 17:59:08ID:???0089nobodyさん
2008/09/05(金) 19:37:39ID:KqF5VkrUまちがっている
0090nobodyさん
2008/09/05(金) 22:21:02ID:???これがもっとも単純な例(普通はissetで$_GETのチェックするけど省略)
[index.php]
<html>
<head>
<title><?php echo htmlspecialchars($_GET['title']); ?></title>
</head>
<body>
<h2><?php echo htmlspecialchars($_GET['title']); ?></h2>
<hr>
<h3><?php echo htmlspecialchars($_GET['subtitle']); ?></h3>
<pre>
<?php echo htmlspecialchars($_GET['body']); ?>
</pre>
</body>
</html>
http://example.com/?title=baka&subtitle=aho&body=shine
GETだと渡せる値は制限あるので本文が長い場合は向いていない
0092nobodyさん
2008/09/05(金) 23:45:46ID:2tnTw7Tuで、掲示板とかショッピングサイトとか作ってみたいんですが、
そういうのの作り方とかサンプルソースがあるHPをおしえてください。
ちなみに、貧乏なのでできることなら本でなくネットで済ませたいです。
0095nobodyさん
2008/09/06(土) 00:32:12ID:???おまえさ、最近よく質問しにくるやつだろ
何でもかんでも聞くクセ直せよ
貧乏なら働けよ
金ないなら検索ぐらいしろよ
009692
2008/09/06(土) 00:37:14ID:D1i3e/MKグーグル先生に聞いても見つからないんです><;PHPのページが多すぎて何がいいかわからん。。
>>95
全然違います。見えない敵とあまり戦わない方がいいっす。
0097nobodyさん
2008/09/06(土) 00:39:11ID:???[あなたと違う専用しおり] /  ̄ヾ) ,彡 ,,,,,、 ,,,,、、 ミ;;;::::::::::::::::::::::::::::
i゙i ,,,ノ 、,,-=、 ミミミ! □c□6 ゞi" ̄ フ‐! ̄~~|-ゞ:::::::::ここまで::
{_i=・}-{_=・`} ̄レゥ:} ヽ┴`ノ, ヾi `ー‐'、 ,ゝ--、' 〉;:::::::::::::::::::::::::::::
l ̄,,,,_,゙ ̄` :::ン フフッ /<θ>\ `,| / "ii" ヽ | 客観的に見た
|/ _;__,、ヽ..::/l / ̄ ̄�T ̄ ̄\ 't ←―→ )/イl::::::::::::::::::::::::::::::
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
009992
2008/09/06(土) 00:43:16ID:D1i3e/MKなるほろ。。そういえば、PHPでできてる無料レンタル掲示板とかありますね。
そこいらをちょろっとダウンロードすればいいのか。参考になりました。ありがとう。
0101nobodyさん
2008/09/06(土) 00:50:27ID:???金無いならこのぐらい工夫しろ
010292
2008/09/06(土) 00:55:40ID:D1i3e/MKググル能力が著しく低いので。。すみませんねえ。
>>101
あ!たくさんでてきた。ありがとう。こういう風にぐぐればいいのか。
ありがとう。
010392
2008/09/06(土) 00:58:08ID:???みんな、ありがとう!でも、よくグーグルで検索できるなあ。感心しますわ。
ADSL2000円ですんだ。
0104nobodyさん
2008/09/06(土) 00:59:20ID:???010592
2008/09/06(土) 01:09:08ID:???010693
2008/09/06(土) 01:15:37ID:???しかも原因はMDB2::factoryに渡す引数ミスだったorz
0107nobodyさん
2008/09/06(土) 01:21:52ID:XthI4ZTstry {
require_once "hoge.php"
} catch(Exception $e) {
die("No such a hoge file.\n");
}
try{}内でエラーが発生した場合に直接エラーを出すのではなく、
catchの部分を実行すると解釈したのですが、そういう使い方ではないのでしょうか?
また、良ければどのように使うものか教えていただけたら嬉しいです。
0108nobodyさん
2008/09/06(土) 02:09:36ID:zIPXULTCCGIに環境変数を渡すのにputenvを使用したのですが、
putenv("QUERY_STRING=".getenv("QUERY_STRING"));
のようにしてもセットされてないようです。
ためしに以下のようなテストコードを書いてみましたが何も表示されませんでした。
putenv("QUERY_STRING=TEST");
print getenv("QUERY_STRING");
QUERY_STRINGを書き換えるにはどのようにしたらいいのでしょうか?
以上です。よろしくお願いします。
0109nobodyさん
2008/09/06(土) 02:14:14ID:???これでfileが存在したらそのままrequireされるし
なかったらthrowされてcatchブロックに移行する
try {
if (!file_exists("hoge.php")) {
throw new FileNotFoundException();
}
require_once("hoge.php");
} catch (FileNotFoundException $e) {
die("No such file");
}
0111109
2008/09/06(土) 02:17:17ID:???Exceptionにかえて読んで
0112nobodyさん
2008/09/06(土) 02:26:46ID:???0113nobodyさん
2008/09/06(土) 03:46:16ID:???finally使うくらいならtryすんなよ、何の為の例外処理か
0114nobodyさん
2008/09/06(土) 05:00:27ID:???0115nobodyさん
2008/09/06(土) 05:32:30ID:???1.おとなしくpreg系のパターン修飾子iを使用する
2.比較する前に文字列をstrtoupperもしくはstrtolowerする
0117nobodyさん
2008/09/06(土) 09:52:02ID:???FWと併用できないのがつらいが・・・
0119nobodyさん
2008/09/06(土) 10:31:24ID:qjClKg0q<?php
$down = "data.csv";
header("Content-Disposition:attachment;filename=$down");
header("Content-type:application/octet-stream;name=$down");
$result = file_get_contents("test.data");
print $result;
?>
5行目がおかしくて実行されないのですが どこか悪いところはありますでしょうか?
また、これでtest.dataとdata.csvとは自分で作ったファイルなのでしょうか?
それとも最初からあるものなのでしょうか?
3と4行目が何をしているのか分かりませんが 実行できたら分かると思うので
よろしくお願いします
0121nobodyさん
2008/09/06(土) 10:45:04ID:???>それとも最初からあるものなのでしょうか?
そんなのもわかってないんじゃまだその段階じゃないだろw
基礎勉強しなさい基礎を
0122nobodyさん
2008/09/06(土) 11:35:07ID:IBN49V47$youbi = array("日","月","火","水","木","金","土");
$yb = date(w); //この w で0から6の数字を得るのです
$newday = date("n月j日 ($youbi[$yb])");
これで$newdayを出力すると、土曜だけ(?8)という表示になるんだけど、どこかおかしい?
0123nobodyさん
2008/09/06(土) 11:48:45ID:???そのまま出たもの書いてけ
俺の環境では正常に
9月6日 (土)
と表示される
$newday = date("n月j日 (". $youbi[$yb]. ")");にしても同じ?
0124nobodyさん
2008/09/06(土) 11:51:55ID:IBN49V47それでやってみたけど同じだった
表示されたのは
9月6日 (・8)
0125nobodyさん
2008/09/06(土) 11:52:01ID:???0126nobodyさん
2008/09/06(土) 11:53:54ID:IBN49V47いや普通にぐぐって出てきたのを使ってるだけなんで、なぜと言われても・・・
他の曜日は問題なく表示されるんだけどなぁ
0127nobodyさん
2008/09/06(土) 12:03:02ID:???お前はレスの意味を理解できていない
なぜdateの中に$youbiを突っ込む・・・
↓
dataの中に$youbiを突っ込まずに試してみろ
ってことだろ
お前はとりあえず「色々試してみる」ということが欠けている
これはプログラマにとって必ず必要なものだから
そういう思考回路をもってやってみろ
0128nobodyさん
2008/09/06(土) 12:06:50ID:IBN49V47おー�d
$youbi = array("日","月","火","水","木","金","土");
$yb = date(w);
$newday = date("n月j日");
$out = "$newday ($youbi[$yb])";
これでうまくいったけど、なぜ土曜だけ文字化けしたのか理由がわからないなぁ
何かのバグ?
サンプルコードになってるくらいだから鉄板だと思ってたよ・・・
0129nobodyさん
2008/09/06(土) 12:29:43ID:???>いや普通にぐぐって出てきたのを使ってるだけなんで、なぜと言われても・・・
自分で思考することをやめてしまっては人間終わり。
ググって出てきたどこの馬の骨とも分からないコード>自分の思考能力、か。
>サンプルコードになってるくらいだから鉄板だと思ってたよ・・・
社会に出てからカモられないように気をつけてくれ。
>これでうまくいったけど、なぜ土曜だけ文字化けしたのか理由がわからないなぁ
>何かのバグ?
ちゃんと理由がある。自分で推測してみよう。そして調査してみよう。
0130nobodyさん
2008/09/06(土) 12:53:07ID:IBN49V47文字化けだから愚直に文字コードかと思って調べてみたら、
Shift_JIS文字コードとdateのformat関数がバッティングしてたということだった
調べてみたらなるほどだったわ
�dクス
0131nobodyさん
2008/09/06(土) 12:54:45ID:IBN49V47× dateのformat関数
○ date関数のformat
0132nobodyさん
2008/09/06(土) 13:09:41ID:???未定義定数は使わんほうがいいぞ
今件とは関係ないが
0133nobodyさん
2008/09/06(土) 14:54:08ID:PcddpkQO$dsn = "mysql://user:password@localhost/table";
$db =& MDB2::connect($dsn);
if (PEAR::isError($db)) {
die($db->getMessage());
}
$db->setFetchMode(MDB2_FETCHMODE_ASSOC);
$db->getMessage();
DBを使うスクリプトを書いていて、変なエラーがでるのでちゃんとつなげてるかなと
確認するために上のようなコードを書いたのですが
Fatal error: Call to undefined function: MDB2_Driver_mysql::getMessage(). in /usr/local/lib/php/MDB2.php on line 1936
というエラーがでます。どういうことでしょう? ちなみにXREAです。
0134nobodyさん
2008/09/06(土) 15:12:14ID:???http://〜〜/.phpってなってるやつって
どうしてプログラムのソースを見ることができなんですか?
セキュリティー面から云々はわかるんだけど、
どういう仕組みなのかが気になりました。
php、cgi、とかのソースは見れないようにしましょう、ていうのは何で判断してるんだろ。
よろしくおねがいします。
0135nobodyさん
2008/09/06(土) 15:16:04ID:???その拡張子でアクセスしたらサーバ側でスクリプトとして認識し実行されるから。
設定を間違えれば、ただのテキストファイルと同じくソースは見れる。
0136nobodyさん
2008/09/06(土) 15:20:34ID:???なるほど
無料なんたらサーバーとかしてるひとは、
そういう設定を踏んでいたのですか
わかりました ありがとうございました
0138nobodyさん
2008/09/06(土) 16:02:11ID:PcddpkQOrequire_once "MDB2.php";
var_dump(class_exists('MDB2'));
とやると
bool(true)
と。
0139119
2008/09/06(土) 16:10:16ID:qjClKg0qエラーが出るように設定してあるので
五行目が原因とでました
>>121
本当にそうです
基礎からはじめようと本を買ったのですが
本には記述されてなかったです
0140nobodyさん
2008/09/06(土) 16:16:13ID:???だからエラー書かないと原因がわからないだろうがカス
お前は情報隠して相手のエスパーに任せて問題解決してもらうのか?
Mr,マリックにでも頼んどけ!!
>>138
$dsnの値は正しい?
0141nobodyさん
2008/09/06(土) 16:23:36ID:???getMessage()を持ってるのはPEAR_Errorだから
PEAR::isError($db)がfalse($dbがちゃんとMDB2_Driver_mysql)のとき
getMessage()呼んで(>>133 8行目)もだめってだけじゃないのかなー
0142nobodyさん
2008/09/06(土) 16:46:53ID:PcddpkQO正しいです。何度も確認しました。
>>141
なるほど、この時点ではあまり意味のないということですね
では、
class readDB {
function readHeadline(){
$query = $db->queryOne('select * from ivent where type=`dialy` order by time desc limit 0,1');
return $query;
}
}
と下のほうに書いて、別のファイルにてinclude、そして
$hogehoge = readDB::readHeadline();
print_r($hogehoge);
と書いて動作確認してみたのですが、
Fatal error: Call to a member function queryOne() on a non-object in (readHeadlineが書かれたファイル) on line 33
となってしまいます。ちなみに33行目はreadHeadlineメソッドのqueryOneが書かれている行です。
いろいろ確認していたのですが、解決できず困っています。
続けてなんで申し訳ないですが、どうやったらうまくいくでしょうか?
0143nobodyさん
2008/09/06(土) 16:48:27ID:???←この時点で$dbはnull
$query = $db->queryOne('select * from ivent where type=`dialy` order by time desc limit 0,1');
return $query;
}
0144nobodyさん
2008/09/06(土) 17:20:29ID:???MDB2は抽象レイヤだから使うDBのドライバが必要
MDB2と同じディレクトリに入れなされ
0145nobodyさん
2008/09/06(土) 17:30:21ID:PcddpkQO無理やりreadHeadlineメソッドに接続部分を放り込んだところ
データを取り出すことが出来ました。$dbをglobal宣言させればいいのかな……
今文字化けでややしておりますが、それもなんとかなりそうです
お騒がせしました
0146119
2008/09/06(土) 18:01:36ID:qjClKg0qそういうことでしたか 申し訳ございません
Warning: file_get_contents(test.data) [function.file-get-contents]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\test.php on line 5
というエラーでした
よろしくお願いします
0147nobodyさん
2008/09/06(土) 18:03:23ID:???0148nobodyさん
2008/09/06(土) 18:07:59ID:???って言われてるじゃん
0149nobodyさん
2008/09/06(土) 18:09:15ID:???0150nobodyさん
2008/09/06(土) 18:48:52ID:???C:\Program Files\Apache Group\Apache2\htdocs\
C:\Program Files\Apache Group\Apache2\htdocs\
C:\Program Files\Apache Group\Apache2\htdocs\
C:\Program Files\Apache Group\Apache2\htdocs\
フイタ
0151119
2008/09/06(土) 19:00:11ID:qjClKg0qファイルを作ったのですが
test.data.phpとなっていたため
不思議だな って思っていました
ありがとうございました
0153ぬる ◆2ktvKfzrfk
2008/09/06(土) 20:05:53ID:Daa5S/Hxrからtestの
$test1という変数を参照したいです。
function test(){
$test1 = "関数1";
}
function r(){
test();
echo $test1;
}
これではうまく動きませんです。
0154nobodyさん
2008/09/06(土) 20:08:15ID:???0156nobodyさん
2008/09/06(土) 21:26:21ID:SQQYgTPo0157nobodyさん
2008/09/06(土) 21:48:53ID:SQQYgTPo0159nobodyさん
2008/09/07(日) 01:08:47ID:NLr3PNjo掲示板とチャットってどちらの方がいいですか?
リアルタイムに処理するのがチャットで、
バッチ処理で処理するのが掲示板だと思うんですが、
チャットってネット上でみたことがありません。
なれない時は、掲示板の方が無難でしょうか?
宜しくごきょうじゅ下さい。
0160nobodyさん
2008/09/07(日) 01:28:23ID:???$obj = test();
r($obj);
function test(){
$test1 = "関数1";
return $test1;
}
function r($aaa){;
echo $aaa;
}
0161nobodyさん
2008/09/07(日) 01:31:00ID:???最近ちょくちょく来る質問者君だね、こんばんは
掲示板は伝言を残す
チャットは接続してる人間とリアルタイムに話す
用途が違うのにどちらがいいですかはないだろアホか
自分の好きなものを作れ。こういう質問はほんとやめろ
0162159
2008/09/07(日) 01:37:22ID:NLr3PNjoご回答ありがとうございます。
> 用途が違うのにどちらがいいですかはないだろアホか
いや、そういう話をしているのではなく、
> なれない時は、掲示板の方が無難でしょうか?
と聞いているのですが?
0163nobodyさん
2008/09/07(日) 01:47:38ID:???掲示板の方が、サーバーにかかる負荷が少なくていいかもしれないよ。
チャットよりも掲示板の方がニーズがあるのは、
電話よりメールの方にニーズがあるのと一緒です。
理由は、考えてね。
0164nobodyさん
2008/09/07(日) 02:06:38ID:???どっちらを先に作るかなら、掲示板。
簡易な掲示板を作って、無理せずに徐々に機能を増やしていけば、
どんどん楽しくなっていくと思う。
それにチャットは今は流行らない。ライブチャット系なら別だと思うけど。
0165nobodyさん
2008/09/07(日) 02:55:40ID:???metaタグでrefreshするやつ
ただ投稿されたものを単純に表示するチャットより掲示板はめんどくさいぞ
スレあげたりさげたり
親記事にレスつける機能とか
ページの切り替えとか
0166nobodyさん
2008/09/07(日) 07:42:35ID:???大変なことになるぞw
0168nobodyさん
2008/09/07(日) 08:48:12ID:u4lgpvaPチャットと掲示板は表示やアクセスするタイミングが違うだけで
基本的にバックエンドでやっていることは同じようなもんだから
とりあえず、ログファイル とか DBに接続したりして、
読込み / 書込み を作ってみればいいと思うよ
0169nobodyさん
2008/09/07(日) 13:36:18ID:Cu6eG2hC日付の妥当性(checkdate関数使用)をチェックしようと思い
下記のコードを実行したところ"2008-08-31"がエラーになります。
これはなぜでしょうか?
<?php
$date = '2008-09-03';
list($year,$month,$day) = split('-', $date);
if(! checkdate($day,$month,$year) ){
echo $date." - NG<br />";
}else{
echo $date." - OK<br />";
}
$date = '2008-08-31';
list($year,$month,$day) = split('-', $date);
if(! checkdate($day,$month,$year) ){
echo $date." - NG<br />";
}else{
echo $date." - OK<br />";
}
// 実行結果
// 2008-09-03 - OK
// 2008-08-31 - NG
?>
0170nobodyさん
2008/09/07(日) 13:39:41ID:???http://jp.php.net/checkdate
0171169
2008/09/07(日) 13:40:00ID:Cu6eG2hC本来ならelseのOKの箇所は別のコードが入る予定でして。
0172169
2008/09/07(日) 13:42:50ID:Cu6eG2hCお返事ありがとうございます。
よく読んだらパラメーターを渡す順番が間違ってました。。。
0173nobodyさん
2008/09/07(日) 17:33:58ID:???$k1=0;
$k2=0;
$k3=0;
$k4=0;
…
Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\xampp\htdocs\saikoro.php on line 2
なんだろう、初心者なんだけどすげー初歩的な事で間違えてる気がする
今までこんな所でエラー出た事ないのに
0174nobodyさん
2008/09/07(日) 17:40:11ID:???■ このスレッドは過去ログ倉庫に格納されています