【PHP】下らねぇ質問はここに書き込みやがれ 66
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/03/16(日) 17:23:27ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 65
http://pc11.2ch.net/test/read.cgi/php/1203854597/
◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0266nobodyさん
2008/03/24(月) 13:32:08ID:???0267nobodyさん
2008/03/24(月) 13:34:17ID:BuclIAIb具体的にどう恐ろしいのでしょうか…?
1.無断で他サーバに接続し、勝手にプログラムを使用していること。
2.サーバの管理状態の適当さ
今パッと思いつくのがこの程度なのですが。
0268nobodyさん
2008/03/24(月) 13:59:15ID:???0269nobodyさん
2008/03/24(月) 14:03:28ID:???こんなことは可能ですか?
Aサーバのphp
<?php
$hoge_str="ほげほげ";
require_once("http://www.Bサーバ.com/hoge.php");
?>
Bサーバのhoge.php
<?php
echo $hoge_str;
?>
0270nobodyさん
2008/03/24(月) 14:26:16ID:BuclIAIbできませんね。
requireでもphpで処理して出力したHTMLしか取得してないということですかね。
少し勘違いしてました。
ありがとうございました。
0271nobodyさん
2008/03/24(月) 14:31:06ID:???0272nobodyさん
2008/03/24(月) 15:11:37ID:gLm40CNz$req =& new HTTP_Request($url);
if (!PEAR::isError($req->sendRequest())) {
$body = $req->getResponseBody(); }
$bodyが大きすぎる場合があります
例えば$bodyを5KByteだけ読み込みたい場合はどうすればいいでしょう
0273nobodyさん
2008/03/24(月) 15:37:15ID:???0275nobodyさん
2008/03/24(月) 17:35:29ID:???あるいは何バイトまで読むか関数に引数いれとくとか
0276nobodyさん
2008/03/24(月) 17:46:23ID:???0277nobodyさん
2008/03/24(月) 17:49:58ID:???セキュリティ的に不可能じゃね?試してないが
0278nobodyさん
2008/03/24(月) 20:18:25ID:???PHPで処理する方式だろ?AmazonAPIとかGoogleとかそうだったはず。
0279nobodyさん
2008/03/24(月) 21:00:43ID:???簡単にいえば内部で使っているものを外部でも簡単に使えるようにするための仕組み。
例えば内部処理だけで使っている配列を、外部の人も使いたいといった場合、
配列にアクセスするための仕組みを提供したりする。
方法は配列を返す関数を作ってgetリクエストで呼び出したり、
配列をXMLに書き出してXMLで提供したり。
0280nobodyさん
2008/03/24(月) 21:42:32ID:???0281nobodyさん
2008/03/25(火) 00:03:26ID:???中高生しかいないんですか?ということは>>280さんも中高生?
僕は中1です。
最近ホームページはじめたのでPHPに興味あります。
これで掲示板とカウンター作って将来会社たてたいとおもいます。
よろしく。
0282nobodyさん
2008/03/25(火) 00:05:32ID:???0284nobodyさん
2008/03/25(火) 00:18:02ID:???当方、PHP4.4.6でmb_send_mail でメール配信していたのですが、
PHP4.4.1 環境に移したところ
メール本文の途中が切れて送られるようになったり、
まったく空だったりするようになりました。
切れる場所も、文字数で切られている訳でもなく、
原因が掴めません。
メールが長い場合、(5KB以上程度?)の時に起こるようです。
しかし、MaxMessageSize を超えていることもなく・・・
似たような現象ご存知の方いらしゃれば
ご教授お願いします
0285nobodyさん
2008/03/25(火) 01:31:10ID:9FmYRybR良いエディタないですか?
0286nobodyさん
2008/03/25(火) 02:52:44ID:???普通にブラウザから処理したらタイムアウトになりそうなんで、
何か良い方法ないでしょうか。
0287nobodyさん
2008/03/25(火) 03:16:25ID:???ブラウザに定期的に何かを出力すればいいんでない?
flushあたりの関数使って
一応set_time_limitを0にしてやったほうがいいと思う
まぁ普通にバッチ処理でいいと思うけど
0290nobodyさん
2008/03/25(火) 09:15:14ID:tA2earVE同じでphp4でも、コード修正が必要な事はあるのてじょうか?
0291nobodyさん
2008/03/25(火) 09:17:33ID:???http://php.net/ChangeLog-4.php
0292nobodyさん
2008/03/25(火) 09:56:17ID:tA2earVEありがとうございます
0293nobodyさん
2008/03/25(火) 13:23:00ID:j8ua+z8Xスケジューラを作ってるんですが、カレンダーの画面で各日にちの
イベント名と簡単な概要が表示されるとします
この場合、たとえば3月なら31回(日にち分)sqlのリクエストをループまわして
そのイベント名なり概略なりを個別に受け取るべきなんでしょうか?
where month=3 and day=1 … day=31って感じで。
それとも、ループはせずにwhere month=3と一回だけにしてphpのプログラムで
結果を解析・表示すべきですか? どっちが効率がいいというか安全なのか、、
皆さんどうやってますか?
0294nobodyさん
2008/03/25(火) 13:35:18ID:???0295293
2008/03/25(火) 13:56:51ID:j8ua+z8X別の考え方も提示してくれるかもと思ったもので。。
そんなことないみたいですね ありがとうございました!
0296nobodyさん
2008/03/25(火) 14:44:38ID:???0297nobodyさん
2008/03/25(火) 16:37:28ID:DHM98VQbログイン→DBの登録情報を確認→正しければアクセス許可
としているのですが、ID情報をセッションで持ち回して
どのページでも上の処理を入れて毎回アクセスをチェックしています。
最近、こういう方法だとアクセスの度にSQLを発行するので良くないのでは?
っと思っているのですが、いかが思いますか?より良い方法があれば教えて下さい。
0298nobodyさん
2008/03/25(火) 16:44:42ID:???セキュリティを考慮したユーザID
をセッションに登録し
後の動作でそれを確認するのが普通だろ
0299nobodyさん
2008/03/25(火) 17:50:35ID:???クエリの回数が少なくなるようにしようぜ。
あとその日付をバラバラにしたカラムじゃ
「2007年3月15日〜2008年3月15日を削除」とかやってらんないぜ。
「日ごとのスケジュール登録件数」が欲しくても集計使えないぜ。
日付にふさわしいデータ型使え。
>>297
セッション変数に残すのは認証されているかどうかを表すフラグと、
認証されている場合はそのユーザの識別子、この二つだけでも十分なんだぜ。
クエリの事だが必要だったら遠慮せず発行するもんだぜ。
データベースを使うセッションハンドラとかよくある話だしな。
0302nobodyさん
2008/03/25(火) 21:59:53ID:1pYd+uTdログインしてページ内容を取得したいのですが
ヘッダーに
<noscript>
<meta http-equiv="Refresh" content="0; URL=http://javasをonにしてね.html"/>
</noscript>
という壁がありまして・・・どうにかいい方法はないのでしょうか?
0303nobodyさん
2008/03/25(火) 22:00:46ID:???覚えた言葉をすぐ使いたがる中高生だろオマエw
0304nobodyさん
2008/03/25(火) 22:06:37ID:???0310307
2008/03/26(水) 00:57:54ID:???はい、伊藤です。
0311nobodyさん
2008/03/26(水) 02:43:19ID:???0313nobodyさん
2008/03/26(水) 03:44:58ID:???主人公のアニメ・漫画。
0314nobodyさん
2008/03/26(水) 06:12:28ID:???どうしてココの住民は、無関心ではいられないのだろうか。
何かとすぐ切れやすい子どもが、このスレに体現されているとしか評価しようがない。
0315nobodyさん
2008/03/26(水) 07:17:30ID:BV+jSJbqやりたい事がphpを使って操作する事なのでこちらで質問させて頂きます。
php+mysqlでアクセス解析を作りたいのですが、UA、リファラー、現在の日時等を取得して、
UA、リンク元、累計アクセス数、日別・月別・曜日別アクセス数などを表示したい場合、
全て1つのテーブルに保存するのと、項目ごとに別のテーブルに保存するのではどちらが効率的でしょうか?
書き方がわかりにくいと思いますが、全て1つのテーブルに保存する場合、
1行目 useragent=IE6, referer=http〜, date=2008/1/1 0:00:00
2行目 useragent=IE5, referer=http〜, date=2008/1/1 0:00:00
という形になり、テーブルの内容を全て配列に入れてからphp側で検索・ソート等して出力するか、
表示したい項目ごとにデータベース側で検索して出力する事になると思います。
項目ごとにテーブルを作る場合、
テーブル「useragent」
name count
IE6 2
IE7 5
という形になり、テーブルの内容をほとんどそのまま出力すればいいだけになります。
アクセス時の処理では前者の方が後者より速く負荷もかからないと思うのですが、
表示時の処理はログが増えるほど前者が後者より遅く、高負荷になるのではないかと考えています。
mysqlについてはphpmyadminで軽く触った程度なので、根本的に間違っているor意味不明な質問かもしれませんが、
「ここはおかしい」や「こうした方がいい」等のアドバイスでも構いませんので、ご回答お願い致します。
0316nobodyさん
2008/03/26(水) 09:07:29ID:???サイトのアクセス状況による
一日数十とか数百単位しかアクセス無いなら前者で良いだろうけど
2ちゃん並にくることが予測されるなら後者の方が良いと思う
とりあえず前者でサイト開いてみて段階踏んだらどうよ?
あとログとしてデータが残り続けるなら前者である一定の値にきたら
offsetかましてcountの効率を上げる方法もある…
0317nobodyさん
2008/03/26(水) 09:14:01ID:???>2ちゃん並にくることが予測されるなら後者の方が良いと思う
10か3億か、ってお前極端すぎww
病院に行け
0318nobodyさん
2008/03/26(水) 09:15:32ID:???>>315
dbスレ行ったほうがいいんじゃね?
つか普通は全部纏めて入れる
日ごとにUAの集計したら「午前中」とか「リファラの無いIE6」とかが欲しくなった時どうにもならないし
表示スクリプトは数十行だろうから、とりあえず両方書いてダミーデータで速度見るのもいいかもね
0319302
2008/03/26(水) 09:50:54ID:ynVuNR2N0321nobodyさん
2008/03/26(水) 11:19:54ID:ynVuNR2Nmixiなりアマゾンなり、phpからログインして情報取れますよね?
例えば今回liveアカウントへいこうとすると
javascriptを有効にしてくださいというページに飛ばされてしまいます
単純にnoscriptでジャンプされてしまうのですが、どうしたら良いのか思いつかず・・・
0322nobodyさん
2008/03/26(水) 11:22:07ID:???0323nobodyさん
2008/03/26(水) 11:55:25ID:YOiMNcCaいや飛ばされない。IEで解決。
0324nobodyさん
2008/03/26(水) 12:00:13ID:???0325nobodyさん
2008/03/26(水) 12:03:32ID:???0326302
2008/03/26(水) 12:12:25ID:ynVuNR2N最初のレスポンスの時点でjs有効にしてねというページが返ってきます
0327nobodyさん
2008/03/26(水) 12:16:09ID:???0328nobodyさん
2008/03/26(水) 12:37:10ID:tSZRDvWr署名による認証のしかたがわかりません・・。
(PEARにもXML-RPCはあるのですが、暗号化や複合化ができるようなものはなさそうで)
わかる方がいればおしえてください。
0329302
2008/03/26(水) 14:58:59ID:ynVuNR2Nいろいろ試して見ましたが、解決せず
PEARスレに行ってきます
ありがとうございました
0330nobodyさん
2008/03/26(水) 15:07:16ID:???0331nobodyさん
2008/03/26(水) 16:08:50ID:oGx/hZT1if(strstr($test,"9")){
echo "含まれています";
}
とした場合、$test内に「9」が含まれていないのに、
「99」でもヒットされてしまいます。どういう風に修正すればいいのでしょうか?
0332nobodyさん
2008/03/26(水) 16:08:58ID:???0333nobodyさん
2008/03/26(水) 16:22:02ID:???0334nobodyさん
2008/03/26(水) 16:22:07ID:???は?
何がしたいの?
$test_ary=explode(".",$test);
foreach($test_ary as $val){
if(strstr($val,"9")){ echo "含まれています"; }
}
でもすれば?
0335nobodyさん
2008/03/26(水) 16:28:34ID:???>$test = "1,2,99";
>if(strstr($test,"9")){
>echo "含まれています";
>}
>とした場合、$test内に「9」が含まれていないのに、
9って思いっきり含まれてるじゃん。
0336nobodyさん
2008/03/26(水) 16:31:41ID:???0337nobodyさん
2008/03/26(水) 16:48:42ID:???explode するとループで悩む年頃だろうから
if (preg_match('/\D9\D/', $test)) 辺りでどうですか。
>>334
質問者と同じ地雷を踏んでますよ。
0338nobodyさん
2008/03/26(水) 16:54:54ID:???まぁそういう概念がないんだろうけど
0339nobodyさん
2008/03/26(水) 16:55:41ID:???0340337
2008/03/26(水) 16:56:21ID:???眠いので修正せず放置しとこう。
0341nobodyさん
2008/03/26(水) 17:05:24ID:???せめてカンマ区切りにしとけばいいのに・・。
0342nobodyさん
2008/03/26(水) 17:15:35ID:???態々==9とかあほかw
in_arrayでいいだろ
0344nobodyさん
2008/03/26(水) 17:45:18ID:???0345nobodyさん
2008/03/26(水) 18:04:16ID:???でも本人が含むって言葉思いっきり使ってるし$testを配列みたいに解釈してしまってんだろうか。
ひょっとして
$test = "1,2,99";
$test_ary=explode(".",$test);
foreach($test_ary as $val){
if($val ==9){ echo "含まれています"; }
}
みたいなことをしたいのか?これだと99と9はイコールじゃないが。
しかしこれだtstrstr使う意味がないしarray使うべきだし・・・難問だ。
0346nobodyさん
2008/03/26(水) 18:11:56ID:???0347nobodyさん
2008/03/26(水) 18:12:53ID:???0348315
2008/03/26(水) 18:18:00ID:???個人の趣味サイトなので、アクセス数は最大でも重複カウントなしで1000/日というところです。
>>318さんのおっしゃる通り、今後条件別にログを表示させたくなった時に前者の方が良さそうですね。
ログ表示ページはそれほど頻繁に閲覧されるものでもないと思うので、
表示に関して多少非効率的になっても、前者の方法を使う方向でいきたいと思います。
インデックスとか>>316さんの言うoffset等、理解できていない部分が沢山ありますので、
データベース関連のサイトやスレなどを見て勉強してきます。
回答ありがとうございました。
0349nobodyさん
2008/03/26(水) 18:29:36ID:???0350nobodyさん
2008/03/26(水) 21:34:16ID:???0351nobodyさん
2008/03/27(木) 02:13:01ID:???0352nobodyさん
2008/03/27(木) 06:31:18ID:???<html>
<head></head>
<?php
echo "<body>";
?>
テスト
</body>
</html>
これだけの記述でもタイムラグが発生するのですが、body要素をphpで出力するのには何か問題があるのでしょうか?
それとも、xreaの無料サーバーを使っているのですが、このサーバー側の仕様か何かなのでしょうか?
0353nobodyさん
2008/03/27(木) 07:12:29ID:???時間おいてためすべし。
0354353
2008/03/27(木) 07:14:52ID:???xrea無料といえば自動挿入広告が重い原因にもなるから、
htaccessで広告表示しないようにして手動広告はるのがお勧め。
0355nobodyさん
2008/03/27(木) 07:18:47ID:???いざ自分でコード書こうと思ったら意味不明
PHP考えた人まじ天才 もうわけわからないっす
0356nobodyさん
2008/03/27(木) 07:34:07ID:???0357352
2008/03/27(木) 09:24:16ID:???レスありがとうございます
確認したところ、どうやら広告関係の問題だった様です
広告は手動で挿入しており、出力後のソースを見ても自動の広告が無かったので、
手動で広告を入れると勝手に切り替わるものだと思っていました
サポートページ等を見ながら修正したいと思います
ありがとうございました
0358nobodyさん
2008/03/27(木) 09:41:52ID:5276Wbjq0359nobodyさん
2008/03/27(木) 09:50:33ID:???0360nobodyさん
2008/03/27(木) 10:31:06ID:???俺もチラッと触っただけだけど。
0361nobodyさん
2008/03/27(木) 10:42:00ID:5276Wbjq0363nobodyさん
2008/03/27(木) 12:07:08ID:???0364nobodyさん
2008/03/27(木) 12:15:59ID:???0365nobodyさん
2008/03/27(木) 12:25:39ID:???俺の場合、BASIC->C->C++->Java->PHPだな。
■ このスレッドは過去ログ倉庫に格納されています