【PHP】質問スレッドpart28【php】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2005/05/05(木) 17:17:11ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-10辺り
0809nobodyさん
2005/06/20(月) 19:38:06ID:RcQFSBZs上で検索して、その結果をつかってまた検索するといったような
処理をしたい場合
フォームを二つにわけるんですか?それとも一つのフォームのなかに
ボタンを二つつくるの?
0810nobodyさん
2005/06/20(月) 19:42:26ID:???Webブラウザ(クライアント側)に依存する話題というこっちゃろ。
FlashとかJavaScriptとかその辺のとこいって訊け。
0812806
2005/06/20(月) 21:13:52ID:mdvzeW1K返答ありがとうございます。
内部(LAN内)で使用するため他の環境(クライアント)を意識する必要はありません。
PHPでやりたかったのでここで質問させて頂きました。
分からない場合、もしくはPHPでは方法がない場合は返答されなくて結構です。
0813nobodyさん
2005/06/20(月) 21:27:36ID:???最後の一文が余計だ。ここはお前のHPじゃないんだよ?
質問の答えだが、ログインフレームで飛ばすtargetをtopにして、
フレームを呼ぶだけでいいんじゃないの?
0815
2005/06/20(月) 21:48:41ID:F0wN879Http://halpal.net/xoops/modules/auth/buy_list.html
のように検索→選択→.vcs .csv .pdbなどで出力というのは
どうやっているのでしょうか?
ずーぷすでないと無理なのでしょうか?
0816nobodyさん
2005/06/20(月) 22:20:11ID:???>>593あたりからのレスにもあるけど、PHP(というかWebサーバ)にとっては
送られてくるhttpリクエストにどう答えるかつーのが仕事でフレームやら別ウィンドウやらは対象外なんだよね。
そういう事はhttpリクエストの前、つまりリクエストをするブラウザ側で解決しておかなきゃいけない。
特に今回のようなログイン認証のような物の場合は、サイト構成を考える時点から気にしなきゃいけなかった。
つっても、選択肢はあんまりないんだけどね。
1. frameに固執する
a. >>813のいうように、_top自体から描き直す。各frameでのidの同期はsessionとかを使う。
b. JavaScriptを使って各frameを順次リクエストする。idの同期は上に同じ。
2. frameをやめて一枚のページにする
まぁ、htmlのお話でPHPはあんまり関係なかったと。
0817nobodyさん
2005/06/20(月) 23:49:40ID:???VirtualHost ごとに safe_mode を設定したいのですが、
どうも効いていないようなのです。
VirtualHost ごとの PHP_INI_SYSTEM な設定というのは
できないものなのでしょうか?
0819799
2005/06/21(火) 00:01:43ID:???すんません。
−RSSブロガー−■ 概要
特定サイトのRSSを表示します
ブログの右ブロックとかに置くとか。
シンプル。件数指定可能
0820nobodyさん
2005/06/21(火) 00:33:09ID:???サーバモジュール版を使ってる限り無理な気がする。
httpd.conf内の<VirtualHost>ディレクティブ毎にphp_flagでOn/Offしたら
"出来ちゃったり" するかも知れないが。
0821820
2005/06/21(火) 00:43:20ID:???User Contributed Notesの例に、
<VirtualHost www.example.com>
ServerName www.example.com
DocumentRoot /www-home/example.com
[...]
<Location />
php_admin_value open_basedir \ "/www-home/example.com/:/usr/lib/php/"
</Location>
</VirtualHost>
なんて、PHP_INI_SYSTEMなopen_basedirを設定してるのがあるので、
safe_modeもできるかもナ。
ただ、http://jp.php.net/manual/ja/configuration.changes.php
php_admin_valueで設定した値はグローバル値っぽいんだよな。
本当に<VirtualHost>ディレクティブ毎に切り替え(上書き)出来るのかは疑問だな。
0822820
2005/06/21(火) 01:07:43ID:???|.htaccess や VirtualHost ディレクティブ内から上書きできません。
これはこういうことか、
・php.iniの値はphp_admin_*で上書き可能。
・但しグローバルで設定したphp_admin_*の値は
VirtualHostディレクティブ内からは上書き不可。
・つまりグローバルで設定していなければ、VirtualHost
ディレクティブ内でphp_admin_*の値は個別に設定できる。
試して結果出してくれ>>817
0823nobodyさん
2005/06/21(火) 03:37:33ID:???0824nobodyさん
2005/06/21(火) 03:45:21ID:???0825nobodyさん
2005/06/21(火) 13:04:34ID:YilT+fOH駄目です。そんな俺を一人前にしてくれ
頼む・・・はげ板在住おろかなPHPプログラマより・・・お前らへ
最後のお願いです。
0826nobodyさん
2005/06/21(火) 13:13:07ID:???そしてどんどん規模が大きくて複雑なものに挑戦していこう。
はげ2号より。
0827nobodyさん
2005/06/21(火) 13:19:58ID:???0828nobodyさん
2005/06/21(火) 16:45:20ID:???Hello World
か
phpinfo()
だろ。
0829nobodyさん
2005/06/21(火) 17:20:01ID:???0830nobodyさん
2005/06/21(火) 17:28:53ID:???Hello world
0832nobodyさん
2005/06/21(火) 18:06:26ID:???<p>Hello<?php echo ' '; ?>
World!</p>
</body></html>
0835nobodyさん
2005/06/21(火) 18:21:08ID:???// phpによる至極簡単なHello World!表示の例
$a='eJyzySjJzbGzyUhNTLGzKcksyUm1C/AI'.
'aDrqkZqTk68Qnl+Uk6Joow+RsNGHKEvK'.
'T6m0symwQ1VTAJSHyOiDzQQAtVYfZw==';
echo gzuncompress(base64_decode($a));
?>
0836nobodyさん
2005/06/21(火) 18:21:35ID:???$aho = "Hello World!";
echo <<<HOGE
<html><head><title>$aho</title></head><body>
<p>$aho</p></body></html>
HOGE;
?>
0837nobodyさん
2005/06/21(火) 18:24:11ID:???0838nobodyさん
2005/06/21(火) 18:30:41ID:???0839nobodyさん
2005/06/21(火) 18:37:13ID:???σ(゚∀゚ ∬オレ自称神
0841nobodyさん
2005/06/21(火) 19:16:01ID:???0842nobodyさん
2005/06/21(火) 19:29:38ID:???童貞は半人前なのか、そうなのか?
0843nobodyさん
2005/06/21(火) 19:31:10ID:???0844nobodyさん
2005/06/21(火) 19:36:43ID:LzmmEaFG$id=printf("hello world",\n);
?>
<html><head></head>
<body>$id</body>
</html>
おまえらちゃんと答えてやろうぜ。
0845nobodyさん
2005/06/21(火) 20:39:23ID:???<?=$id?>
0846nobodyさん
2005/06/21(火) 21:14:41ID:???0847nobodyさん
2005/06/21(火) 21:49:58ID:???投稿できなくなることがあります。環境はApache1.3.33でPHP4.2.3です。
よろしければどこが悪いか見ていただけませんか?
http://www.uplo.net/www/vip18366.txt
error.txtの内容はスクリプトの一番下に記述しています。
0849nobodyさん
2005/06/21(火) 22:50:31ID:???ここは○投げスレか?
現在の目から見れば、そのプログラムの書き方は宜しくないよとの警告。
もっとも原因は古いPHPのバグ/挙動によるもので、そのソースが書かれた
当時に把握しとけというのは恐らく酷というもの。
俺の回答としては「古いソースを参考するのではなく、そのまま使うのは止めれ」
PHP4.2.xなんかで動かさないからという人は、マニュアルでも読んで自力で対処してください。
そもそもエラーメッセージにも書いてあるし。
0850nobodyさん
2005/06/21(火) 23:10:44ID:???全くそのとおりです。でも、改造してるという後ろめたさからどうも質問しにくくて・・・
>>849
よくわかりました。ですがワタシにはとてもスクリプトを組むことができません。
本来ならここでドキュメントあさりにいくところですが、今は少し時間がなくて、
力をお借りしようと思った次第です。
ご親切にありがとうございました。
#敬語ってムズカシイですね。
0851nobodyさん
2005/06/21(火) 23:12:55ID:???0854nobodyさん
2005/06/22(水) 09:20:03ID:???0856nobodyさん
2005/06/22(水) 17:20:22ID:36ejXiBF上司からは進捗をやたらきかれるし
フォーム制作だけで3週間かかっていますが
文字化けが解消しません・・・・
頼む・・・はげ板自称プログラマの俺が、ほんとにほんとに
最後のおねがいです...どうかどうか俺を一人前に・・・・
そして、願わくば俺の額に髪を・・・
0857nobodyさん
2005/06/22(水) 17:24:46ID:???環境もわからんのにどうしろと。
サーバーの種類、設定
PHPのバージョン、設定
とかぐらいかけよ。
あとは、何をいれたらどう化けるのかとかさ。
0859nobodyさん
2005/06/22(水) 18:26:16ID:BW+9vfGfファイルアップロード関数は使えないのでしょうか?
いろいろ実験してみたのですが、全く動作しません。
だれか教えて!
0860nobodyさん
2005/06/22(水) 18:45:09ID:???enable-memory-limitは、メモリの制限が「できるようにする」オプション。
つけなかった場合、メモリの制限ができない(ある意味怖い状態)だけ。
ファイルのアップロード(って行為しか示してなくて、実現する方法は一様じゃないんだけど...)
できないのは別の理由。
0861nobodyさん
2005/06/22(水) 19:31:46ID:SgJBDR+R本文が複数行入力された際に
確認画面及びメールが正しく改行されるものを教えて頂けないでしょうか
確認画面では<br>をつけて、メールでは消すというのが
自分では上手くできませんでした
0862nobodyさん
2005/06/22(水) 19:42:38ID:???0863nobodyさん
2005/06/22(水) 20:09:05ID:kA0IpK2mHTMLやテキスト形式、csvなど、色々な形式で出力したいと考えています。
それで、タグのサニタイズや改行の変換は
その出力時に行いたいのですが、その場合、フォームデータを
保存するときに、どのような形式にすればいいのかが
いまいち分かりません。
いまのところ、本文内の改行はCRに変換して、レコード区切りLFのtsvで
いこうかと思ってるんですが、変換処理がやたら多くなってしまう気が。
一般的にはどうするものなんでしょうか。
0864nobodyさん
2005/06/22(水) 20:14:27ID:???0865nobodyさん
2005/06/22(水) 20:34:12ID:???でも標準入出力以外では改行コードはあまり気にすることはない。
SHIFT-JISでは漢字をクォートでくくった時などに1byte文字の誤解釈が発生する場合がある。
最近じゃxmlがらみでunicodeがメジャーになりつつあるけどEUC-JPでもなんとかなる。
入力チェック,改行変換などはファイル保存前に行うのが鉄則。
手順が増えてエラーを返したりすることがあるかもしれないし。
データベースを使ったときのことを仮定したら答えは自ずと出ると思いますけど。
あとは↓あたりの命令を覚えておいて
タグを無効化
htmlspecialcharsもしくはstrip_tags
クォートなどを無効化
addslashesもしくはstripslashes
好きな文字コードに変換
mb_convert_encoding
csvの読み込み
fgetcsv
0866863
2005/06/22(水) 21:29:52ID:???>865
ありがとうございます。
やっぱりファイル保存前に改行はbrに変換しといたほうがいいんですかね。
テキストで表示したいときなんかに、いろいろ変換していると戻すのが
めんどくさい、ような気もするけど、保存前に処理してしまえば
確かにエラーの危険は少なくなりそうだし。
レン鯖考慮すると躊躇してしまうけど、やっぱりデータベースかな……
0869nobodyさん
2005/06/22(水) 23:57:53ID:ol7QAXcnclass classA {
...
}
class classB extends classA {
...
}
class classC extends classA {
...
}
0870nobodyさん
2005/06/23(木) 00:01:18ID:???別ファイルにした時はrequire_onceを忘れずに。
0871nobodyさん
2005/06/23(木) 00:05:23ID:ol7QAXcn0872nobodyさん
2005/06/23(木) 00:08:23ID:???0874nobodyさん
2005/06/23(木) 00:20:53ID:???0875nobodyさん
2005/06/23(木) 02:41:39ID:Ycsi6J8Z0876nobodyさん
2005/06/23(木) 03:28:07ID:???0877875
2005/06/23(木) 03:49:09ID:Ycsi6J8Zここまでは調べました。
■phpの共有メモリのアクセス関数
int shmop_open ( int key, string flags, int mode, int size )
■win32の共有メモリのアクセス関数
HANDLE CreateFileMapping(
HANDLE hFile, // handle to file to map
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
// optional security attributes
DWORD flProtect, // protection for mapping object
DWORD dwMaximumSizeHigh, // high-order 32 bits of object size
DWORD dwMaximumSizeLow, // low-order 32 bits of object size
LPCTSTR lpName // name of file-mapping object
);
phpは「共有メモリへの key が int」
win32は「共有メモリへの key が lpName(文字列)」
でアクセスすると書いてある。これでは互換性が無いですよね。
win32 側は、別の関数を使うのでしょうか。
勘違いしていたらツッコミお願いします。
0878nobodyさん
2005/06/23(木) 04:38:48ID:???つうか
phpの共有メモリのアクセス関数が提供するのは
UnixライクなOSで実装されてる共有メモリへのアクセスで
win32の共有メモリのアクセス関数(で示してるのが良く判らんが) は
Windows独自の実装の共有メモリへのアクセスではないのか。
後者は前者に対してもアクセス出来るような作りの関数なのか?
ネームドパイプ(Unix Socket)でも使った方が良いんじゃ...
0879877
2005/06/23(木) 06:41:46ID:Ycsi6J8Zなるほど。同じ「共有メモリ」と呼んでいても、
両者は別の規格、ってことみたいですね。
パフォーマンスのよさげな、共有メモリから当たってみたんですが、
ご指摘のネームドパイプでやってみます。
こんな明け方に、レスありがとうございました。
0880nobodyさん
2005/06/23(木) 07:46:13ID:4sGGPAImはいかんぞ
0881nobodyさん
2005/06/23(木) 09:29:53ID:???#include <sys/ipc.h>
#include <sys/shm.h>
int shmget(key_t key, int size, int shmflg);
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
void *shmat(int shmid, const void *shmaddr, int shmflg);
この辺ぐぐってみてはいかがでしょう?
しかしそろそろスレ違いだな。
0882nobodyさん
2005/06/23(木) 13:04:38ID:???0883nobodyさん
2005/06/24(金) 17:37:55ID:???{
printf("ぬるぽ");
return 0;
}
0884nobodyさん
2005/06/25(土) 01:59:03ID:???puts("ガッ");
return 0;
}
0885nobodyさん
2005/06/25(土) 04:57:53ID:???0886nobodyさん
2005/06/25(土) 05:00:29ID:???.._ .......、._ _ /:/l! またまたご冗談を
:~""''.>゙' "~ ,、、''‐'、| PHPを満足に扱えない人なんていませんよ。
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':, ましてや宿題ごときで躓くなんて本7以下ですよ
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'゙
0887nobodyさん
2005/06/25(土) 05:05:24ID:???ある数字を渡すと各桁の数字を上から順番に
配列に入れて返す関数って可能ですか?
0888nobodyさん
2005/06/25(土) 05:34:10ID:???''==ァ-‐‐,'゙<l _,, マタ マタァ〜
`、:/::r'゙゙'_ェ'゙゙i、._ /ラノ preg_split('//',(string)$param,-1,PREG_SPLIT_NO_EMPTY);
,=キヅ `'ラ/ヾ/ (シフ 負符号、小数値の時はシラネ
,ケ:: ',. / ,:'゙
0890カポコン
2005/06/25(土) 09:20:43ID:???まあ、これが2chの実装なわけだが。
っんでもサーバーが落ちる原因の30%以上はメモリ関連だから
875-879は実に有意義な話をしていると思うんだけどな。
0891nobodyさん
2005/06/25(土) 09:55:37ID:???winで開発、unixで運用ならラッパー関数/クラスでも書いて。
eAccelerator使うほうが楽チン?
0892nobodyさん
2005/06/25(土) 13:42:21ID:6Ztw8aQ7php_w32api.dll 経由で、すべてのwin32api を呼べるみたい。ウヒョ。
↓こんなの見つけました。
http://php.digipedia.pl/php/manual/pl/ref.w32api.php
<?php
if (! dl ( "php_w32api.dll" )) {
echo "Unable to load php_w32api.dll" ;
exit;
}
$api = new win32 ;
$api -> registerfunction ( "bool QueryPerformanceCounter (float &lpPerformanceCount) From kernel32.dll" );
$api -> registerfunction ( "bool QueryPerformanceFrequency (float &lpPerformanceFrequency) From kernel32.dll" );
$api -> QueryPerformanceCounter ( $a );
$api -> QueryPerformanceFrequency ( $b );
$c = $a / $b ;
$days = floor ( $c / 86400 );
echo gmstrftime ( "System uptime is $days Days, %H Hr, %M Min, %S Sec<br>" , $c );
?>
便利だけど・・遅くならないといいね。
0893nobodyさん
2005/06/25(土) 14:55:46ID:???0895nobodyさん
2005/06/25(土) 15:45:14ID:???無料で仕事をするようなアホはあまりいないと思うが。
それなりの報酬を払うつもりがあるなら↓こちら。
http://pc8.2ch.net/test/read.cgi/php/1111115228/
プログラミングは高いよw
0896nobodyさん
2005/06/25(土) 16:01:03ID:???報酬はお支払いする予定でした。
大きなモノではなく、ちょっとした日記系のphpを自分のwebで使いたかったので、
個人に依頼して安くしてもらえないかと思ったんですが…(´∀`;)
(無料配布されているphpが思い通りのが見つからず…)
とりあえず誘導ありがとございますた。
0897nobodyさん
2005/06/25(土) 16:30:45ID:???CGIから見られる事ってあるでしょうか?
CGIがsuExecで動作している限り、パーミッションが606等になっていても、他のユーザーのファイルは
見られる危険性は無いんでしょうか?
要は、セーフモードで動いていてもCGIからだと見られてしまうのかな?と言う疑問です。
0898nobodyさん
2005/06/25(土) 16:32:07ID:???ApacheスレかCGIスレで聞くべきだったかも…。
0899nobodyさん
2005/06/26(日) 02:01:40ID:ZljWfVvhどうすればいいのかさっぱりわかりません。
マニュアルを読んでfile()で配列に入れ、EUCにエンコードしたところで詰まってしまいました。
dbase_add_record()がそれっぽい挙動をしてくれそうなんですがエラー出る(ノД`)
Call to undefined function: dbase_add_record() 〜略
$lines=file('http://pc8.2ch.net/php/subject.txt');
foreach ($lines as $line_num => $line) {
$line=mb_convert_encoding($line,"EUC-JP","SJIS");
dbase_add_record (subtxt,$line);
}
MySQL 4.0.21
PHP Version 4.3.10
0900nobodyさん
2005/06/26(日) 02:10:50ID:???そもそもが間違ってる。
お前が必要としているのは
http://www.php.net/manual/ja/ref.mysql.php
他の選択肢としてPEARのDBやDB_DataObjectなどもあるけど。
0901nobodyさん
2005/06/26(日) 02:10:55ID:???MySQLを操作するのになんでdbase_xxx()を使ってるの?
MySQLでやりたいならここから目的の関数を探してくれ。
http://jp2.php.net/manual/ja/ref.mysql.php
0902899
2005/06/26(日) 02:23:36ID:???もう寝るヽ(`Д´)ノ ウワァァァン
0903nobodyさん
2005/06/26(日) 03:42:21ID:???$strmonth = array('1'=>'January'.....
こんな配列を作って変換するか、timeに直してdate関数で変換するしかないですか?
0905nobodyさん
2005/06/26(日) 04:24:04ID:???0906899
2005/06/26(日) 12:24:56ID:???もうちょっとコンパクトにできないかなあ?
$lines=file('http://pc8.2ch.net/php/subject.txt');
foreach ($lines as $line_num => $line) {
$line=mb_convert_encoding($line,"EUC-JP","SJIS");
list($num,$title)=explode(".dat<>",$line);
$title=str_replace ("'","\'",$title);
for($i=0;$i<count($title);$i++){
$sql="insert into subtxt (dat,title)values('$num','$title')";
$resultInsertrev=$db->query($sql);
if((DB::isError($resultInsertrev))){echo $resultInsertrev->getMessage();echo ('えらーでたよ');exit;}
}}
レス数が900を超えています。1000を超えると表示できなくなるよ。