トップページphp
1001コメント319KB

【PHP】下らねぇ質問はここに書き込みやがれ 44

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/04/12(木) 16:54:47ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0177nobodyさん2007/04/15(日) 22:39:09ID:???
>>176
逆にどうして問題にならないと思ったのか聞かせてくれ
0178nobodyさん2007/04/15(日) 22:40:39ID:???
>>176
>>175
0179nobodyさん2007/04/15(日) 22:44:10ID:y9EClMBI
DOCUMENT_ROOTだと、外部からのアクセスによっては何か変わってしまうのかなと思ったので・・・
0180nobodyさん2007/04/15(日) 22:49:58ID:???
>>179
何かって何?
0181nobodyさん2007/04/15(日) 22:51:53ID:???
UTF-8とutf8って何か違いあるの?
0182nobodyさん2007/04/15(日) 22:53:16ID:???
手元のPHPのソースでgrepしたらこうなってた。
PHPAPI php_stream_wrapper

if (wrapper && wrapper->is_url && !PG(allow_url_fopen)) {
 if (options & REPORT_ERRORS)
  php_error_docref(NULL TSRMLS_CC, E_WARNING, "URL file-access is disabled in the server configuration");
 return NULL;
}
要は、渡しているパラメータ(wrapper)やPHPそのものの設定(allow_url_fopen)によるってこった。
0183nobodyさん2007/04/15(日) 23:08:44ID:???
当スレ、のろのろ実況板ってスレタイにいれるべきかと
0184nobodyさん2007/04/15(日) 23:12:58ID:???
くだらない質問です。

<form method=post action=hogehoge>
<input type=hidden name=hoge value=hoge>
<input type=submit value=go>
</form>

このpostで送信されるデータを連続投票したい場合どうしたらいいでしょうか?
知識の向上として知っておきたいのですが
一応これを実行してpostで送信すると投票先のスクリプトに移動して
再度戻ってまたgoをクリックしないと連続投票できませんよね?
これを1回実行するだけで100回POSTのデータを送信することは可能でしょうか?
0185nobodyさん2007/04/15(日) 23:15:32ID:???
>>184
とりあえずID表示
01861842007/04/15(日) 23:17:46ID:P44SZArS
はぁ
>>185
じゃ、よろしく
0187nobodyさん2007/04/15(日) 23:19:46ID:???
100 回 for で回せば良いと思うよ^^
0188nobodyさん2007/04/15(日) 23:20:22ID:???
その程度のスキルで荒らしはよくないからやめろ。
どこに向けて打つのかしらないが対策されてるから無駄
01891842007/04/15(日) 23:21:24ID:P44SZArS
POSTのデータをどうやってforでまわすの?
0190nobodyさん2007/04/15(日) 23:22:57ID:???
終了
0191nobodyさん2007/04/15(日) 23:25:17ID:???
楽しいなこのスレは
01921842007/04/15(日) 23:26:26ID:P44SZArS
>>188
100%言われると思ったけど、知識として知ってるほうが対策もできるので知りたいだけだから。
100%言われると思ったから書いたはずなんだけどな…
まあそれはいいとして、どうやってforで回すのか知りたい。
わざわざID出したので、よろしく。
0193nobodyさん2007/04/15(日) 23:30:02ID:???
for ($i = 0; $i < 100; $i++) {
    処理;
}
0194nobodyさん2007/04/15(日) 23:31:22ID:???
テラ親切www
0195nobodyさん2007/04/15(日) 23:37:35ID:???
現在のスコープ内の全ての変数を返すような関数はあるでしょうか
例外クラスの getTrace() のようなものです

スコープ内で処理に使用する変数を、$var[] とった配列にまとめておき、
print_r すれば良いだけかも知れませんが、あれば教えてください
01961842007/04/15(日) 23:38:44ID:P44SZArS
その”処理”の部分を聞いてます
もう1度言いますよ?
その”処理”の部分を聞いてます
さあ説明よろしくwww
0197nobodyさん2007/04/15(日) 23:42:39ID:???
>>196
サーバーサイドは1回の送信につき1回のリクエストだから
100回送信すればいいと思う

ここまで言えばわかるだろ
01981842007/04/15(日) 23:47:09ID:???
ははは。もういいよ。
わからないならわかりませんって言えw
このカスどもが
01991842007/04/15(日) 23:48:10ID:???
>100 回 for で回せば良いと思うよ^^

こいつテラワロスwww
0200nobodyさん2007/04/15(日) 23:56:26ID:???
>>198
OKWaveへGo
0201nobodyさん2007/04/15(日) 23:59:33ID:???
184言語障害乙
0202nobodyさん2007/04/16(月) 00:02:30ID:???
>>184
相手側のスクリプトに依って変わる
その荒らしたいページはどこだよ?
0203nobodyさん2007/04/16(月) 00:10:16ID:???
>>202

もうやめましょう
0204nobodyさん2007/04/16(月) 01:19:47ID:???
>>184
丸投げスレと質問スレの違いを理解してから書き込んでね
0205nobodyさん2007/04/16(月) 02:55:10ID:???
知識の向上wwwwwwwwwwwwwwwwwwwwwwwwwwww
0206nobodyさん2007/04/16(月) 03:31:41ID:???
微笑ましいな。
0207nobodyさん2007/04/16(月) 11:36:16ID:???
こんな馬鹿まだいたのかw
0208虚弱PHP2007/04/16(月) 12:26:49ID:???
>>184
PEAR::HTTP::Request
0209nobodyさん2007/04/16(月) 12:29:42ID:???
荒らし助長するんなよ虚弱PHP
0210虚弱PHP2007/04/16(月) 12:52:01ID:???
「教えるからもうくんな」の意
0211nobodyさん2007/04/16(月) 13:01:04ID:???
なんて無責任な
0212nobodyさん2007/04/16(月) 13:57:58ID:???
mysql_queryでmysqlにデータを入れる際ロックは必須なのでしょうか?
DB板で聞くのが正解かもしれませんが、お願いしますm(_ _)m
0213nobodyさん2007/04/16(月) 14:10:41ID:???
insertのことならいらない。
複数のテーブルに書きに行くのならtransactionをかけたほうがいいかもしれない。
0214nobodyさん2007/04/16(月) 16:35:09ID:???
classの所を読んでいるのですが、使用するにいたって利便性は何なんでしょう?
セキュリティ面とか、新しいプログラム使いまわせるとかではなく
単一のphp内において、もっと身近な部分で言うと…。
0215nobodyさん2007/04/16(月) 16:42:47ID:???
>>208
教えていいことと悪いことぐらいは考えてもらいたいですね
0216nobodyさん2007/04/16(月) 16:43:29ID:???
>>214
あるひとつの機能が必要とするデータと処理をまとめて管理できること
0217nobodyさん2007/04/16(月) 16:53:27ID:???
SSLが使えるレンタルサーバを2種類借りているのですが、
片方では、httpsプロトコルで、echo $_SERVER['HTTPS']; とやると、onと表示されて、
SSLが有効なのがわかるのですが、
もう片方は、ブラウザに鍵マークはつくものの何も返って来ません。
$_SERVER['HTTPS']の説明をみると、
「スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。 」
とあるので、正常に機能していないということでしょうか?
それともサーバ側の設定で、何も返さないようにしているとかそういうことでしょうか?
02182172007/04/16(月) 16:54:21ID:N9diKUei
癖でsageてしまいました。すみません。
0219nobodyさん2007/04/16(月) 16:56:33ID:???
>>217
WEBサーバーがSSLをサポートしていると言う事と
PHPがSSLをサポートしていると言う事じゃ全く持って話が違う。

後者はWEBではサポートしているけどPHPじゃサポートしてないんでしょ
0220nobodyさん2007/04/16(月) 17:03:07ID:???
phpのsslはまだベータ版だしね
02212172007/04/16(月) 17:03:26ID:N9diKUei
>>219
なるほど。そういうことですか。
ではサーバのPHPをかえてもらわないとダメになるわけですね。
MySQL+PHPを使ったログイン機能があるサイトを作ろうと思っているのですが、
そのログインページ(PHPでできた)でSSLをつかいたいと思ったのですが、
PHPでSSLをサポートしなくても、Webでサポートしていれば、
入力された情報はちゃんと暗号化してくれるのでしょうか?
0222nobodyさん2007/04/16(月) 17:24:09ID:???
>>221
当たり前だけどしてくれるよ
PHPでSSLを使うって事はプログラムで内部でhttpsなURLに対して
リクエストを送る事が可能になったりするってことだ。
0223nobodyさん2007/04/16(月) 17:25:38ID:dwzdMgji
ttp://php.netからPHPをダウンロードしようとしたのですが、
「Windowu Binaries」の「PHP 5.2.1 zip package」をクリックすると
タイムアウトしてしまいます。

みなさんのところからはダウンロードできますか?
0224nobodyさん2007/04/16(月) 17:27:23ID:???
できる。
時間帯ずらしてダウンロードをためしてみたらいいよ
02252172007/04/16(月) 17:28:07ID:N9diKUei
>>222
ひとつ勉強になりました。これで一安心です。
早速プログラムを組みたいと思います。
どうもありがとうございました。
0226nobodyさん2007/04/16(月) 17:51:24ID:???
>>あるひとつの機能が必要とするデータと処理をまとめて管理できること
なんだかクラスを使った場合と使わない場合がうまく想像できないのです
0227nobodyさん2007/04/16(月) 18:00:38ID:???
グローバル変数使わなくてもすむだけでも、利便性があるよ。
0228nobodyさん2007/04/16(月) 18:09:26ID:???
>>6
必死だなw
0229nobodyさん2007/04/16(月) 18:21:04ID:???
あれ?全角ひらがなって1文字3byteもあるの?
0230nobodyさん2007/04/16(月) 18:26:19ID:???
Unicode
0231nobodyさん2007/04/16(月) 18:29:11ID:???
てっきり2byteかと思ってた
0232nobodyさん2007/04/16(月) 18:35:08ID:???
SJISやEUCは2byte、UTF8は3byteかな
日本語に関しては
0233nobodyさん2007/04/16(月) 18:40:47ID:???
%E3%81%9D%E3%81%86%E3%81%A0%E3%81%AA
0234nobodyさん2007/04/16(月) 19:10:27ID:???
%e3%81%ac%e3%82%8b%e3%81%bd
0235nobodyさん2007/04/16(月) 19:45:55ID:???
>>233-234

最近覚えたんですか?そういう風に書くの
0236nobodyさん2007/04/16(月) 19:51:10ID:???
exec、又はsystem()でお聞きしたいのですが
別のサーバからFTPでアップされたjpg画像を
上書き保存されない様にmv、cpとfopenはパーミッションの問題でエラーになりました。
そこで、上記コマンド実行前にchmodを入れてみましたがやはりパーミッションの問題が…。
file_get_contentsはPHPのバージョンの問題で使えませんでした。

要は、常に上書き保存されていってしまう画像をリネームして保存しておきたいのですが
上記以外の手法でパーミッションに捕われないような手法はありますでしょうか?
02372362007/04/16(月) 19:57:10ID:???
マニュアルみて解決しました。
02382362007/04/16(月) 20:29:36ID:Fo/N831C
>>237
ちょw誰だよwww
解決してネーよw
sageってメル欄だとID出ないんね。
メル欄空でもsagaるんかな?
02392362007/04/16(月) 20:41:35ID:???
>>238
解決したのに掘り起こすのやめていただけませんか?
0240nobodyさん2007/04/16(月) 20:53:17ID:???
>>236
それじゃ無理だろうね。FTPの方でパーミッションのread許可の対応するしかない。
FTPのユーザもあなたなら、簡単だけど。
0241nobodyさん2007/04/16(月) 20:57:54ID:???
>>236
ちゃんとIDださないから3つ分の答えを逃した骨折り損な奴
0242nobodyさん2007/04/16(月) 21:45:30ID:???
くだらない質問ですが、セフレってどこで探せますか?
0243nobodyさん2007/04/16(月) 21:55:35ID:ozAmxKpX
echo $_SERVER['SEFRE'];
0244nobodyさん2007/04/16(月) 21:56:06ID:???
>>243
IDがもうちょっとでDJオズマ
0245nobodyさん2007/04/16(月) 22:43:26ID:???
MAX(count) AS MAX
東MAX最近みないね、
0246nobodyさん2007/04/17(火) 01:52:56ID:wSkpW1Us
キャリアを判別しようと思ったのですが

function mobile_agent(){
$agent = $_SERVER['HTTP_USER_AGENT'];
switch ($agent){
case preg_match("/DoCoMo/", $agent):
$agent = "docomo";
break;

case preg_match("/Vodafone/", $agent) || preg_match("/SoftBank/", $agent):
$agent = "softbank";
break;

case preg_match("/KDDI/", $agent):
$agent = "au";
break;

case preg_match("/DDIPOCKET/", $agent) || preg_match("/WILLCOM/", $agent):
$agent = "willcom";
break;

default:
$agent = FALSE;
}
return $agent;
}

auでアクセスすると返り値が「docomo」になります。
switch内でのpreg_matchはダメなのでしょうか?
0247nobodyさん2007/04/17(火) 02:07:43ID:???
$agentとpreg_match(〜):の返り値が等しければそこが実行されるよ
0248nobodyさん2007/04/17(火) 02:43:45ID:???
>>246

ゆるくていいならそのままのやり方でも止めはしないけど
IP見て振り分けるほうが確実だよ。
0249nobodyさん2007/04/17(火) 03:26:53ID:???
UAなんて信用できないんだからIPでチェックしたほうがいいよ
0250nobodyさん2007/04/17(火) 05:38:28ID:???
何がなんでもIPアドレスでチェックなんて、業者と犯罪者ぐらいなもんだろうなw
0251nobodyさん2007/04/17(火) 06:42:52ID:???
>>233-234
専用のスレがあるよ
エンコード文字列だけのスレ
http://pc11.2ch.net/test/read.cgi/php/1065258181/
0252nobodyさん2007/04/17(火) 08:52:36ID:???
>>246

preg_matchの返り値って知ってる? 0か1がかえってくる。

ということは
case 0:
$agent = "docomo";
break;

とかやってくることになる。

switch使うんじゃなくてelseif使うのが良いと思われる。
0253虚弱PHP2007/04/17(火) 09:27:13ID:???
>>246
Net::UserAgent::Mobile
使うでいいんじゃないでしょうか。
0254nobodyさん2007/04/17(火) 11:24:13ID:cz59188T
携帯向けのサイト作成してますが、
ヒアドキュメント内でSIDを付加する方法はありますでしょうか?
02552542007/04/17(火) 11:28:14ID:???
自己解決しました。
0256nobodyさん2007/04/17(火) 11:40:27ID:???
自己解決したのはいいが解決法も書いていってよね!ぷんぷん
0257nobodyさん2007/04/17(火) 11:46:09ID:cz59188T
>>255-256
( ^ω^)お?

気を取り直して、
ヒアドキュメントでHTML部分を出力するのではなく、
<?php ?>と処理後に直接HTMLを書き、↓のように埋め込むか、
<a href="nextpage.php?<?php echo strip_tags(SID)?>">リンク</a>

もしくは、.htaccessが利用できるなら↓がスマートなんでしょうか。
php_flag session.use_trans_sid On

他にはどのような方法がありますでしょうか?御教示ありましたら宜しくお願いします。
0258nobodyさん2007/04/17(火) 12:16:24ID:wSkpW1Us
>>249
いや、位置情報取得のフォームを出力するんで、
携帯のブラウザによっても変化するからUAじゃないとダメっす
0259nobodyさん2007/04/17(火) 12:33:54ID:IrxiH2Fq
デザイン用のHTMLにPHPのコードを埋め込んで、WEBシステムとして
公開すると言うのが一般的だと思うのですが、
やっぱりデザインとPHPの分岐・分類って限界がありますよね?

Smartyとか使ってもやっぱり、デザイン用のHTMLにソースを埋め込むわけで。
かといってガチガチのプログラムにすると、後からデザイン面を
修正する時にしずらいし。(CSSを使っても限界あるし)

自分は各パーツをclass分けしてて、「登録内容一覧」とか表示する時は
classを使って必要情報を抽出し、whileで出力してます。

くだ質ですが、作りながら思ったので質問してみました。
0260虚弱PHP2007/04/17(火) 13:05:48ID:???
>>259
パーツ毎にきちんとテンプレートを分割するだけでも、
デザインとロジックはかなり分離できるよ。

> デザイン用のHTMLにソースを埋め込むわけで。

これは、人によってかなり差が出るところだね。

> デザイン用のHTMLにPHPのコードを埋め込んで

と似たような状態になるなら、
テンプレートエンジンを有効に使えてないと思う。
02612592007/04/17(火) 13:08:37ID:???
>>260
テンプレートは分けてますよ。ただ、例えばSmartyの場合でも
<table>
{foreach item=list from=$list}
<tr>
<td>{$list.name}</td>
<td>{$list.date};</td>
{/foreach}
</tr>
</table>

みたいに専用のコードがテンプレートファイルにはいるので、
結局分離出来ていないような気がするんです。
Smartyを知らない人は、SmartyのコードもPHPのコードも変わらないだろうし。
0262nobodyさん2007/04/17(火) 13:21:28ID:???
> Smartyを知らない人は、SmartyのコードもPHPのコードも変わらないだろうし。
それはない
0263nobodyさん2007/04/17(火) 13:23:58ID:???
>>262
俺、PHP勉強するまでPerlだのPHPだのJavaだのの
区別付かなかったけどw
0264nobodyさん2007/04/17(火) 13:27:25ID:???
>>261
それを突き詰めちゃうと完全なHTMLにするしかなくて
完全にHTMLのままでそれをパースして
コードに置き換えてくれるテンプレートエンジンもあるにはあるけど
結局それだとどこがコードに置き換わるのか
一目ではわかりづらくてそれはそれでやりづらいと個人的には思うよ
最小限のループと出力に留めるのが実際の落としどころだと思う
02652592007/04/17(火) 13:29:42ID:???
>>262
結構知らない人多いと思いますが・・。

>>264
そうですね。自分も基本的には、パーツ毎に分けてて
includeして読み込んでいるのですが、最近それすら良いのかどうか
よくわからなくなってきました。分離するという意味で。

ただ、おっしゃるようにやっぱり限界はありますよね。
どの程度分離するか考えながらコーティングします。
アドバイスありがとうございました。
0266nobodyさん2007/04/17(火) 13:41:55ID:???
PHPはHTMLへの埋めこみ言語として出発して、しかもまだその側面はかなり強いから、
PHPで書かれたテンプレートエンジンって屋上屋を架すみたいな印象はあるね。
0267nobodyさん2007/04/17(火) 14:06:31ID:ZbMg7dcR
CRONが使えないサーバを使っていたのですが、任意の時間にログを取ったり、ファイルを実行したりしたかったので
別にCRONが使えるサーバを契約しました。
CRONで、任意のスクリプトを任意の時間で実行することができるのは知っていて実際アクセス解析などのログ格納などに
使っているのですが、CRONから起動される(シェルスクリプトから起動される)PHPファイルの書き方で、あるページのURLをクリックしたときと同等の効果を期待することができる
スクリプトの書き方はどのようにすればよろしいでしょうか?

今やっていることは、
CRON起動→シェルスクリプトの実行→PHPファイルの実行
という流れです。
そこで、最後のPHPファイルに
<META HTTP-EQUIV="refresh" content="0;URL=http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0";>
という記述をしています。

流れの最後のPHPファイルや、http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0
に直接ブラウザからアクセスすると、きちんと起動してくれてるのですが
CRONからの起動はうまくいっていない模様です。

0268nobodyさん2007/04/17(火) 14:09:35ID:ZbMg7dcR
失礼しました。文字化けしているようです。
http://www.example.com/test.php?param1=0¶m2=1¶m3=1¶m4=0 の部分は
http://www.example.com/test.php?param1=0&param2=1&param3=1&param4=0 です。
よろしくお願いします。
0269虚弱PHP2007/04/17(火) 14:14:07ID:???
>>261
> 結局分離出来ていないような気がするんです。

そういうのは「分離できてる」って表現するのが一般的だと思う。
原理主義に陥らないのが一番。
使ったことないから分からないけど、
デザイナが良く使ってるDreamweaverって
Smarty対応してるんじゃなかったっけ?

>>265
↓こんな考え方もあるみたいね。
http://kaede.to/%7Ecanada/doc/mvc2-framework
0270nobodyさん2007/04/17(火) 15:08:32ID:???
>>267
前スレにwebcronというやつが紹介されてたのを思い出した
0271nobodyさん2007/04/17(火) 15:34:18ID:???
PHP4では Domxml PHP5ではDomなんだけどソースを共通化するには
ラッパー関数でも作らないとダメ?
0272nobodyさん2007/04/17(火) 15:47:30ID:???
>>267
そら<meta>タグを出力しても動かないだろう
出力された<meta>タグを解釈して、動かすのはクライアント側の機能なんだから

PHPの設定にもよるけど、これでいけるだろう
別にreadfileでなくてもいいけど
readfile("http://www.example.com/test.php?param1=0¶m2=1¶m3=1";);
0273nobodyさん2007/04/17(火) 15:56:40ID:???
>>269
>こんな考え方
一見高尚な話しのようにみえるが、一言で言えばラッパでいいじゃん、ということだな。
0274nobodyさん2007/04/17(火) 19:16:53ID:teAF4U4F
教えて下さい

$temp = array('a','b','c');
echo $temp[2]; // OK
echo array('a','b','c')[2]; // NG

3行目のNGですが、1行で出力するにはどうすればいいでしょうか?
0275nobodyさん2007/04/17(火) 19:19:48ID:???
>>274
PHPではできません
0276nobodyさん2007/04/17(火) 19:25:41ID:???
マニュアルも読めないんだ
■ このスレッドは過去ログ倉庫に格納されています