【PHP】下らねぇ質問はここに書き込みやがれ 36
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/01/10(水) 11:20:10ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc10.2ch.net/test/read.cgi/php/1166676139/
◆質問する時の注意
・ 自分の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
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0657nobodyさん
2007/01/20(土) 12:31:50ID:+1gEJG5nPHPのディレクトリって、どこだ?
/usr/local/lib/php
とかだったら、PEARなんだがねw
0658nobodyさん
2007/01/20(土) 12:39:30ID:apT1PIiMCドライブにいつの間にかADSServiceっていうテキストファイルが作られてました。
他にも似たようなファイルが3つくらいありました、スパイウェアか何かでしょうか、ものすごく怖いですTT
0659nobodyさん
2007/01/20(土) 12:53:40ID:apT1PIiM0660nobodyさん
2007/01/20(土) 12:56:16ID:???0661nobodyさん
2007/01/20(土) 16:25:17ID:dyYgBfVX今日はじめて、phpをインストールして。
テストで、print("hello");
こんなかんたんな、出力をさせました。
そして、IEを終了させると、
"問題が発生したため、IEXPLORE.EXEを終了します。〜"
なんてのが現われます。
原因としては何が考えられますか?
すみません、こんな質問ですがお願いします。
0663nobodyさん
2007/01/20(土) 16:35:34ID:dyYgBfVX糞初心者ですみません。
となると原因はなんなんでしょうか?
0664nobodyさん
2007/01/20(土) 16:37:34ID:???あの〜〜、問題も何も「IEを終了させると、」だから、
「 "問題が発生したため、IEXPLORE.EXEを終了します。〜" 」
って出るのは普通だろ。それで終了しなかったら異常事態だが。
0665nobodyさん
2007/01/20(土) 16:40:19ID:???これをダブルクォートくくり相当にするか、シングルクォートでくくった文字列の中の変数名を
パースする方法はありますか?
0668nobodyさん
2007/01/20(土) 16:48:48ID:jfiH3bl8このwordの文字を「a'b"c」と表示させることはできたのですが
URLの文字をそのまま「a%27b%22c」と表示させることができません。
簡単にスクリプトを書きましたがうまくいきませんでした。
<?php
$word = $_GET["word"];
print $word;
?>
あといろいろやってみましたがうまくいきませんでした。
先輩方、よろしくお願いします。
0669nobodyさん
2007/01/20(土) 16:53:21ID:???$_GETとかはデコードされたデータだから
0670nobodyさん
2007/01/20(土) 16:59:26ID:???0671nobodyさん
2007/01/20(土) 17:06:00ID:???IEが糞
だと思う
>>668
お前の先輩になったつもりは無い
print_r($_SERVER)
で所望のが出るような気がする
0672668
2007/01/20(土) 17:08:58ID:???ありがとうございます。
しかしながら
<?php
$word = $_GET["word"];
$word = urlencode($word);
print $word;
?>
とやってみましたが
「a%5C%27b%5C%22c」と表示されてしまい
「a%27b%22c」とは表示されませんでした。
「a%27b%22c」と表示させたいので
「a%27b%22c」と表示させるにはどうしたらいいでしょうか?
0674nobodyさん
2007/01/20(土) 17:20:05ID:???>「a%27b%22c」と表示させたいので
>「a%27b%22c」と表示させるにはどうしたらいいでしょうか?
echo "a%27b%22c";
0676nobodyさん
2007/01/20(土) 17:37:20ID:???0677nobodyさん
2007/01/20(土) 17:39:06ID:???0678nobodyさん
2007/01/20(土) 17:39:21ID:KP/kHuU7「PHPによるデザインパターン入門」を読みながらデザインパターンを勉強してるのですが、
シングルトンパターンを使った場合、どのレベルでただ一つのオブジェクトとして機能するのでしょうか?
例えば、「そのPHPの動いているパソコンでただ一つ」なのか、
それとも「いま接続しているユーザーのsessionの中でただ一つ」なのか?
それとも「いま実行してるファイル内においてただ一つ」なのか?
ご存知の方いらっしゃいましたら、お教え願います。
0683nobodyさん
2007/01/20(土) 19:48:49ID:???エンコードしたらデコード。これ定説
0684nobodyさん
2007/01/20(土) 20:29:55ID:???index.php?hoge=a%27b%22c
というURLのGETの変数hogeのデコードされてないデータ「a%27b%22c」をHTMLに表示させたい。
要するに「a%27b%22c」をHTMLに出力したい。
#他の質問でもそうですけどわからない人はレスしないでください
#こういうこと書きたくなかったけど鬱陶しいレスが多いので…
0686684
2007/01/20(土) 20:46:48ID:???もう構わないでください。解決しました。
やはりというか、自分で調べたほうが勉強になりました。
しかし他の質問でもそうだけど、質問の意味も理解できずにレスするやつ鬱陶しいよね
0687nobodyさん
2007/01/20(土) 23:45:10ID:???0688nobodyさん
2007/01/20(土) 23:46:10ID:???0690nobodyさん
2007/01/21(日) 06:18:46ID:???0691nobodyさん
2007/01/21(日) 11:08:16ID:Y0OZFz+Sあれば教えて頂けると幸いですm(_ _)m
0692nobodyさん
2007/01/21(日) 12:11:17ID:08MwJFVu突然プログラムが実行されなくなりました
.phpを保存か開くか質問するダイアログがでます
何が原因でしょう?わかる方教えてください
ちゃんと動かなくなった時に動かしてたプログラムは
フォームに名前を入力して送信→同階層の.phpで受けて
送信した名前を表示するものです
その後はhello worldすら実行しなくなりました
助けてください、よろしくお願いします
0693nobodyさん
2007/01/21(日) 12:16:47ID:???0694nobodyさん
2007/01/21(日) 12:24:22ID:???0695nobodyさん
2007/01/21(日) 13:14:06ID:7pzdx2CI$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
echo "ERROR: $errno - $errstr<br>\n";
} else {
print "$fp";
}
?>
このようにUDP接続を行い、目的のデータを取得しようとしているのですが上手くいかないのです
具体的にはResource id #等と表示され目的のデータを取得できません
どのようにすれば取得できますか?
0696nobodyさん
2007/01/21(日) 13:16:54ID:???http://jp.php.net/fsockopen
0697nobodyさん
2007/01/21(日) 13:22:43ID:7pzdx2CIそこのテンプレート通りにやってもうまく行かないのですが・・・
0698nobodyさん
2007/01/21(日) 13:24:34ID:???0700nobodyさん
2007/01/21(日) 13:54:37ID:HMt1hfg+ファイルポインタですか?
>>697で言った通り
テンプレ↓
<?php
$fp = fsockopen("udp://127.0.0.1", 13, $errno, $errstr);
if (!$fp) {
echo "ERROR: $errno - $errstr<br />\n";
} else {
fwrite($fp, "\n");
echo fread($fp, 26);
fclose($fp);
}
?>
でやってもうまく表示されないんです
0702695
2007/01/21(日) 14:04:56ID:???windowsXP sp2
PHP4.4.4
サーバは 04Webserver
です
>>700の通り行った結果→タイムアウト(ページが表示できません)
0703nobodyさん
2007/01/21(日) 14:08:09ID:???localhostに接続できてるのか、$fpは取れているのか、書き込みで失敗しているのか
0704nobodyさん
2007/01/21(日) 14:25:08ID:???0708nobodyさん
2007/01/21(日) 14:51:24ID:08MwJFVuありがとうございます
ただ、おかしくなる前と今でhttpd.cofに変更を加えてないんです
同条件で動かなくなりました
まだ試してみますが、他の可能性についても気が向いたら教えてください
0709nobodyさん
2007/01/21(日) 14:52:40ID:xp0A917Whttpd.confが変更されてないことを確認した?
0710nobodyさん
2007/01/21(日) 17:38:28ID:Fae6i/Ozとするとき、正規表現を用いてUNKOを他の変数に代入することは出来ますか?
// Perlにおける↓のようなもの
$aaa =~ s/<!--(\w+)_START-->/$aaa/g; // $1にUNKOが代入される
0711nobodyさん
2007/01/21(日) 17:48:15ID:???0712nobodyさん
2007/01/21(日) 17:50:02ID:Fae6i/Oz0713nobodyさん
2007/01/21(日) 17:56:07ID:???0714nobodyさん
2007/01/21(日) 18:10:44ID:???現在、データベースにcategoryというテーブルがあり、格納されているデータは、
手動で数字インデックスを0から順に連番で付与して格納する仕様にあります。
当然ですが、そのテーブルから一行データを削除すると、
通常、連番でなければならない数字インデックスが、削除したデータの数字が飛んでしまいます。
この飛んだ数字を埋める為に、その削除したデータ以降のデータの数字インデックスを
一つずつ繰り上げたいのですが、スマートなコーディングが思い浮かびません。
現状は、一度削除した後に、再度、全データをfindして、ループでまわしながら、
全てのデータに0から順にupdateをかけて、その場をしのいでいます。
サーバ負荷の面からも、コードの可読性の面からも凄く泥臭いやり方になっています。
このようなコーディングをする場合は、何かうまい方法がないものでしょうか?
みなさまのお知恵をお借りしたく書き込みさせていただきました。
なお、現在のプログラムは、直ぐに書き込みいたします。
0715714
2007/01/21(日) 18:12:54ID:fPPKNR2L$comp_category->whereAdd("base='$base'");
$comp_category->whereAdd("key='$key'");
$comp_category->delete(TRUE);
$comp_category->whereAdd();
$comp_category->whereAdd("base='$base'");
$comp_category->orderBy("num");
$comp_category->find();
$comp_category_update = DB_DataObject::factory("public.category");
for($i=0;$comp_category->fetch();$i++){
$comp_category_update->whereAdd();
$comp_category_update->whereAdd("key='".$comp_category->getkey()."'");
$comp_category_update->num = $i;
$comp_category_update->update(TRUE);
}
宜しくお願いいたします。
0716714
2007/01/21(日) 18:16:30ID:???変に改行が入ってしまって、凄く読みにくくなりました。
申し訳ございません。
0717nobodyさん
2007/01/21(日) 18:22:30ID:???一行データを削除した場合は、番号が抜けたままにします。
0718nobodyさん
2007/01/21(日) 18:26:14ID:???update category set num = num - 1 where 削除したやつ以降
つーか、その連番は本当に絶対必要な仕様なのか?
あるレコードに付与された番号が時とともに変化すること自体、かなりわかりにくいと思うんだけど。
0719nobodyさん
2007/01/21(日) 18:27:12ID:???うちは実際は削除はしなくて
削除フラグ立てるだけにしてるけど
0720714
2007/01/21(日) 18:29:13ID:???お返事ありがとうございます。
シリアルによる連番は、この数字インデックスとは別に付与されています。
この数字は、テーブル内の同じ型のデータ内の連番インデックスなのです。
以下のような感じになります、
・グループAのデータが0〜5まで、連番である。
・グループBのデータが0〜6まで、連番である。
・この2つのグループは、同じcategoryテーブルに格納されている。
・自動付与の連番は、別に存在して、それを触る事はできない。
宜しくお願いいたします。
0721nobodyさん
2007/01/21(日) 18:32:37ID:???設計の方が悪いとしか言いようが無い…
0722714
2007/01/21(日) 18:34:24ID:???ありがとうございます。
やはりそういう感じで回すしかないですね。
この連番は、DBの仕様であって、自分ではどうする事もできない、おかしな仕様です。
>>719
そうですね。元を辿れば、DBの設計の問題なんですが…
このデータは、頻繁に削除され入れ替わるものですので、削除フラグで保存しておくと、
かなり肥大してしまう恐れがあります。
0723714
2007/01/21(日) 18:47:29ID:???例えば、現在4のインデックスを持つデータが1のインデックスを付与され繰り上がり、
それ以降のデータは、順番に数字がずれていく感じです。
DBの設計の問題かな?とも思いますが、これらの仕様を満たす、
よりよい設計も思い浮かばず、泣き寝入り状態になっています。
0724nobodyさん
2007/01/21(日) 18:52:26ID:???0725714
2007/01/21(日) 18:56:51ID:???徹夜で頭をひねって、もっと簡潔なコーディングができるDBの仕様を考え、提案してみます。
0726nobodyさん
2007/01/21(日) 19:18:52ID:???と俺は考えるが。
0727nobodyさん
2007/01/21(日) 19:55:13ID:Fae6i/Oz0728nobodyさん
2007/01/21(日) 20:00:56ID:???最近、PHPで構築されたっぽいサイトを見るとURLが
ファイル名.php?m=Kjifsk&p=Fgfkif
みたいな形式のサイトが多いですよね?ファイルは1つでincludeして各動作を
読み込む?のかよくわかりませんが。perlっぽい使い方な気がして。
(OpenPNEとかそんな感じかも。)
それで、なぜそういう風に=以下に識別コードか何かを付けて動作させるような
形式になってきているのでしょうか?単にindex.phpとかform.phpとかではなく。
やっぱり、セキュリティに関連するのでしょうか?
0729nobodyさん
2007/01/21(日) 20:13:31ID:???0730nobodyさん
2007/01/21(日) 20:29:24ID:???0731647
2007/01/21(日) 20:32:37ID:0sqXUt7pDB.phpの話ですがPEARのライブラリです。
これはレンサバでは問題なく動きます。
ブラウザにcookieを食わせたいんですが
ひとつのcookieに複数の値を設定する方法
(aaa=php&bbb=ohmygod こんな形の一つのcookieを作る方法です。)
が分かりませんので
ご指導お願いします。
0732728
2007/01/21(日) 20:49:11ID:???730さんの語句をググって見ましたが、なんとなくわかってきたかも。
要はファイル・機能のリクエスト(アクセス)を分散させると
それだけ負荷がかかりやすいから、1つにまとめてそこから
各部位を呼び出すようにコントロールすると言うことですね。
確かにその方が良いような気もするけど、開発している側としたら
どれがどのファイルか分かりづらくなる時もあるんですよね。。
それに単純に1ファイル毎に用意する方が使いやすいし。
とりあえずもう少し勉強します。ありがとうございました。
0733nobodyさん
2007/01/21(日) 20:58:43ID:???お前は凄まじいくらいに時代を逆走してるなw
いまどき1ファイル毎に処理する所なんてあるのか?
MVCどころか、オブジェクト指向ですら完全無視かよww
0734nobodyさん
2007/01/21(日) 21:17:26ID:???0735nobodyさん
2007/01/21(日) 21:52:01ID:???http://exsample.com/index.php
に飛ばす際、
$_POST['hoge'] = 'foo';
という値を渡したいのですが可能でしょうか?
可能でしたらやり方等お教えください
お願いしますm(_ _)m
0736nobodyさん
2007/01/21(日) 22:04:46ID:???0737nobodyさん
2007/01/21(日) 22:05:45ID:L6gn7cYVレンタルサーバーを借りてプログラムを公開しようとしてますが
データベースにアクセスできません。
自分のパソコンでは正常に動いていました。
<?php
require_once 'DB.php';
$dsn = "mysql://hibinotatsuya:(パスワード)@localhost/hibinotatsuya ";
$con = DB::connect($dsn);
if(DB::isError($con)){
exit('DBの接続に失敗しました');
}else{
echo('成功');
}
?>
Warning: main(DB.php) [function.main]: failed to open stream: No such file or directory in /home/hibinotatsuya/public/www/test.php on line 2
Fatal error: main() [function.require]: Failed opening required 'DB.php' (include_path='.:') in /home/hibinotatsuya/public/www/test.php on line 2
こういうエラーがでるんですがどこを直せばいいでしょうか?
0738nobodyさん
2007/01/21(日) 22:12:27ID:???↓
require_once '/home/hibinotatsuya/public/www/DB.php';
パスが通ってないんでしょう。
上記と違う場所に置いてるなら正しい場所を絶対パスで指し示してみること。
つーか、本名を2chに書き込まないでください
0740765
2007/01/21(日) 22:18:33ID:???http://exsample.com/index.phpに$_POST['hoge']の値が渡せればheaderでなくてもいいです。
switch($_POST['k']) {
case 1:
exsample.com/index.phpに $_POST[hoge]="foo"で飛ばす
break;
case 2:
exsample.com/index2.phpに$_POST[hoge]="foo"で飛ばす飛ばす
break;
…
}
こんな処理がしたいのです
0742nobodyさん
2007/01/21(日) 22:25:00ID:???いや・・・あきらかにPEAR::DBだろ
>>737
そのレンタルサーバでPEAR::DBが使えない可能性が高いけど、
使える可能性があるとすれば、↓かな?
/usr/local/lib/php/DB/DB.php
0743nobodyさん
2007/01/21(日) 22:44:59ID:Fae6i/Oz0744nobodyさん
2007/01/21(日) 22:48:56ID:???$_GETか$_REQUESTで取る。
それがどうしてもダメならheaderでは無理。
HTTP通信を実装してPOSTするしかない。
JavaにはHttpClientあるけどPHPにもそんなんあるのかね。
0745nobodyさん
2007/01/21(日) 23:08:42ID:xp0A917W自分のテスト環境にあるPEARライブラリの入っているディレクトリを丸ごと
レンタルサーバーにうpする。
で、そのディレクトリを、include pathに追加する。
0748nobodyさん
2007/01/22(月) 01:08:55ID:???GIFアニメを合成した場合、最初のコマで止ってしまいます。
GIFアニメをそのまま動かすにはどうすれば良いのでしょうか?
0749nobodyさん
2007/01/22(月) 01:17:17ID:H0oVPkgdhttp://58.188.237.103/iranai/
0750749
2007/01/22(月) 01:26:28ID:H0oVPkgd0753nobodyさん
2007/01/22(月) 02:15:54ID:???| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
0754nobodyさん
2007/01/22(月) 02:16:30ID:???0756nobodyさん
2007/01/22(月) 18:20:28ID:XtuQ8nwW色々気にする必要があるのかと思い、現在作成しているシステムも
作り直した方が良いのか否か、本気で悩んでいます。
過去レスも見ると、同じような質問もあったりして、「常識」の部類みたいですが
みなさんもやはり「常識」だと思われているのでしょうか?
どうもクラスとかの使い方がよくわからなくて、まとめられないのですが、
見るサイトすべてオブジェクト指向っぽいので、このままでいいのかと悩みます。
■ このスレッドは過去ログ倉庫に格納されています