【PHP】質問スレッドpart28【php】

このエントリーをはてなブックマークに追加
1nobodyさん
・PHP全般の質問スレです。
・新規質問の方は上げてください。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辺り
2nobodyさん:2005/05/05(木) 17:19:50 ID:???
前スレ
【PHP】質問スレッドpart27【php】
http://pc8.2ch.net/test/read.cgi/php/1109857283/l50

関連スレ
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/l50
【PHP】セッションについて語ろう!【PHP】
http://pc5.2ch.net/test/read.cgi/php/1064399467/l50
PHPでPDF
http://pc5.2ch.net/test/read.cgi/php/983858078/l50
【PHP】Phrameを使う【フレームワーク】
http://pc5.2ch.net/test/read.cgi/php/1093238107/l50
PHP?+?PostgreSQL
http://pc5.2ch.net/test/read.cgi/php/983128806/l50

3nobodyさん:2005/05/05(木) 17:21:24 ID:???
PHP系blogツール part2
http://pc5.2ch.net/test/read.cgi/php/1094725439/l50
PHPBB
http://pc5.2ch.net/test/read.cgi/php/1065334037/l50
Pear
http://pc5.2ch.net/test/read.cgi/php/985665522/l50
★負荷軽減対策委員会(Perl、PHP)★
http://pc5.2ch.net/test/read.cgi/php/1034645635/l50
【PHP】Smarty【Template】
http://pc5.2ch.net/test/read.cgi/php/1047225437/l50
【PHP】処理能力向上テクニックスレ
http://pc5.2ch.net/test/read.cgi/php/1088823837/l50
【PHP】自作スクリプト発表会
http://pc5.2ch.net/test/read.cgi/php/1017456911/l50
親切な人が初心者にPHPの関数を使い方を教える
http://pc5.2ch.net/test/read.cgi/php/1068190843/l50
4nobodyさん:2005/05/05(木) 17:25:44 ID:???
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
  目の前で生じている現象をそのまま具体的に書くなどもっての外。
  事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
  「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
  「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
  "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
  「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
  示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
  絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
5nobodyさん:2005/05/05(木) 17:28:34 ID:lUYNUyUo
http://p231.net220148094.tnc.ne.jp/
おkwwwっっうぇwwwwおkwwwwwwwwwwwwwww
っうぇwwwうぇwwwおkwwwwっうぇ
っwwwwwwwwwwwwwwwうはっwwwwww
6nobodyさん:2005/05/05(木) 17:32:08 ID:HJsvd1wb
ttp://pc3164.chukai.ne.jp/
wっwwwwwwwうぇwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwうはっっうぇw
wwwwwwおkっwっwwwうはっうはっwwwwww
wwwwwwwおkwwwwwwwwwwwww
wwwwwwwwwwww
7nobodyさん:2005/05/05(木) 19:08:26 ID:???
うんこ
8nobodyさん:2005/05/05(木) 23:21:09 ID:QynlR/yC
参考サイト、技術名、検索キーワードだけでもいいので教えてください。

出会い系サイトにありがちですが、空メールのみで会員登録するものです。
例:
1.メールをサーバーが受信する。ID発行プログラム起動
2.受信と同時にmd5等でIDを作成。メールアドレスとIDとともにデータベースにつっこむ
3.ID付きURLの記述されたメールを自動返信
4.URLをクリックすると、画面にメールアドレスが表示

というものです。自分でテキストボックスにメルアドを記入させればすむことですが、
記入の手間を減らしたいと思っています。
これらを行なうには、レンタル鯖ではなく、自宅鯖を立てるしかないのでしょうか?
検索できるようなキーワードか、参考にできるサイト、書籍名でもかまいません。
どうか宜しくお願いします。

ちなみに、レンタル鯖の環境は以下です。
MySQL 4.0
Perl 5.8.3
PHP 4.3.10・PHP 5.0.4
Ruby 1.8.2
Sendmail
nkf
ImageMagick
Netpbm
9nobodyさん:2005/05/06(金) 00:08:34 ID:???
>>8
特に名称がついてるわけじゃないと思うよ。
1.の部分を実現する手段の1つとしてMDA(Mail Delivery Agent)の機能を使う方法がある。
鯖がメールを受信してデータとして保存する時にスクリプトを実行させることができる。
「MDA procmail mail.local qmail-local」あたりでググれば良いかと。
これらの機能を使えるかどうかは鯖の設定次第。無料レンタル鯖だとほぼ無理と思われ。

その他(2〜3)はよくある処理で難しいことは無いので、
自分で書いている通りの処理をスクリプトに反映させればよい。
10nobodyさん:2005/05/06(金) 01:23:43 ID:IFZ+5alj
>>9 さん
どうもありがとうございました。
一度ググってみます。本当にありがとうございました。
11nobodyさん:2005/05/06(金) 10:25:27 ID:???
今日、ふとファイルのアップロードにzipを選択してみると、$_POSTとかが
消滅するらしい現象が発生しました。他のファイルでは正常にアップロード
出来る点から考えると、どうもzipファイルの取り扱いに問題があるように
想われるのですが、この点に関してバグ情報などをお持ちの方は
いらっしゃらないでしょうか?。
12nobodyさん:2005/05/06(金) 11:25:06 ID:qI/vadDO
自宅鯖にMovable Typeを組み込みたいと思い、PHPを稼働させたいのです。
質問事項
 phpMyAdminにログインすると、
「mbstring PHP 拡張は見つかりませんでした。また、マルチバイト文字セットを使用し
ているように見えます。phpMyAdmin は mbstring 拡張なしでは文字列を正確に
分割することができず、また、予期しない結果が返ってくるかもしれません。」
と出るので、過去スレを遡って調べ、書かれているように
extension_dir = "c:\php\extensions\"
とし、さらに
extension=php_mbstring.dll
の前の;を外しました。
ところが、IISを再起動してもPCを再起動しても相変わらず上記のエラーが出ます。
mbstring拡張を読み込ませるにはどうしたらよいのでしょうか?

php.iniはc:\windowsに置いてあります。
phpのフォルダは、c:ドライブ直下にあります。

環境はWindows server 2003
phpは4.3.11、phpMyAdmin 2.6.2、mysql4.0.24
以上の情報でおわかりになりますか。よろしくお願いいたします。
13nobodyさん:2005/05/06(金) 11:27:59 ID:???
なお、php4ts.dllは、c:\windows\system32にコピーしてあります。
1412:2005/05/06(金) 11:28:43 ID:???
>>13=>>12です。IDが???になってしまいました。すみません。
15nobodyさん:2005/05/06(金) 11:48:24 ID:???
>>12
テンプレに乗ってるじゃないかなぁ
窓のextension_dirは無効だから、c:\windows\system32\php_mbstring.dllという
感じでシステムフォルダに入れないとダメだよ
@apacheの再起動も忘れないようにね
それにphp.iniの設定でもコメントアウトしないといけないような

今は犬なので窓の事はハッキリとは覚えてないけど、そんな感じだったかと
16nobodyさん:2005/05/06(金) 12:00:20 ID:???
>>15
>窓のextension_dirは無効だから
それは初耳。つかextension_dir設定してそこから読み込んでる。
だだextensionの中には更に別のdllに依存するものがあって、
それをextension_dirやカレントディレクトリから読んでくれないので
WindowsのDLLパスが通ってるところに置くことはある。

mbstringはextension_dir設定してそこから読むけどね。
IISとか書いてるのでISAPIじゃなくてCGI版使ってて
違うphp.iniの方が影響してるんじゃないかね
1712:2005/05/06(金) 13:52:57 ID:???
>>15>>16
ありがとうございます。
サーバーにはIIS6を使っていてapacheは使ってません。
CGIでは無くてISAPIを使ってます。

c:\windows\system32\php_mbstring.dll
に置くことと、コメントアウト
 ;extension=php_mbstring.dll
を行ってみます。

また結果を報告にあがります。
1812:2005/05/06(金) 14:12:09 ID:???
>>17の通りにして鯖を再起動。やってみました・・・・が、結果は>>12と同じでした。

<? info(); ?>を実行してConfiguration PHP Core の表を見たのですが、
extension_dir c:\php4  と表示されています。
php.iniに、extension_dir = "c:\php\extensions\"と書いたのになんでえ?
どうやらphp.iniが読み込まれてないのでしょうか・・・。

php.iniを読み込ませるにはどうしたらよいのでしょうか。
1912:2005/05/06(金) 14:32:08 ID:???
php.iniと、他の〜.iniとのプロパティを開いてじっと見つめました。

どこかが違うかも・・・。

すると、セキュリティタブを開いた瞬間、脳裏にぴぴとひらめきましたです。

php.iniには、users権限が割り当てられてない! systemとadministrators権限のみだ!

そこで、php.iniのプロパティのセキュリティタブで、usersを追加しました。

そして再起動。

見事、Configuration PHP Core の表にextension_dir c:\php\extensions  と表示されています

高鳴る胸を押さえてphpMyAdminにアクセスすると、みごと!>>12の現象が直ってました!!

なお、c:\windows\system32\php_mbstring.dll は削除して、extension=php_mbstring.dll のコメントアウト
はコメントインしました。
これでも同じです。extension_dir = "c:\php\extensions\" が有効になっているということです。

考えるヒントをくれたみんなありがとう!! 権限に気づいた俺も偉い!!
2012:2005/05/06(金) 14:34:09 ID:???
なお、php.iniに付与したusers権限は、読み取りと実行、と、読み取り、です。
21nobodyさん:2005/05/06(金) 14:37:59 ID:???
IIS(ISAPI)って、ちゃんとuserレベルで動いてるのか。
MSのことだから管理ユーザレベルで動かしてるのかと思ってた。
2212:2005/05/06(金) 14:43:05 ID:???
>>21
僕もadminisutratorsレベルで動作するのかと思ってました。
phpディレクトリも、usr/bin/phpでは無く、c:\phpに置きますし。
usersレベルで動くんだから、c:\usr\bin\phpディレクトリに置くと分かりやすいかも。
23nobodyさん:2005/05/06(金) 17:33:59 ID:7XggbpDP
すみません質問させてください。今までperlを使っていたものです。PHP 4.3.11で、iniは特に弄ってません。
$DbName = 'database';
$TbName = 'linkSiteDate';
$sql{'db'}{strtolower($DbName)}{'DbName'} = strtolower($DbName);
$sql{'db'}{strtolower($DbName)}{'TbName'}[] = strtolower($TbName);
$sql{'db'}{strtolower($DbName)}{'table'}[] = "create table strtolower($TbName) (
id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
hp VARCHAR(100),
str VARCHAR(300),
unique (hp),
time TIMESTAMP(14) NOT NULL
);";



function setMysqlStract ($DB){
〜〜


のようにある程度構造体をもった変数を定義してから
サブルーチンにてその構造体をもとに処理させたいと考えているのでウsが
引数に参照渡しを使えばいいのでしょうか?
一応参照渡しをしてみたのですがうまくいかず、サブルーチン内にてglobalを宣言したのですが
$sql ←このような変数にはアクセスできますが、$sql{’test’}こrをglobal宣言しようとするとエラーがでてしまいます。

アドバイスいただけると助かります。
24nobodyさん:2005/05/06(金) 17:37:00 ID:koT4Gk1l
http://207-2.m7.ntu.edu.tw/

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwっっwwwおkwwwうぇwww


wwwwwwwwwwwwwwwおkwww
25nobodyさん:2005/05/06(金) 18:13:15 ID:???
>>23
構造体は無いので、クラス或いは配列を使うことになります。
参照渡しも可能です。
それと、多次元配列を使う場合は $a['a']['b']['c']のように、[ ]を使って{ }を使いません。
(でも、なんかうまく配列扱いになってるんだよね。不思議(笑))

function setMysqlStract ($data){
// $dataは$sqlの参照
}
setMysqlStract(& $sql); // 参照渡し
26nobodyさん:2005/05/06(金) 19:05:17 ID:hjSdpWYJ
すみません、初歩的なことなのかもしれませんが、
"A1A2" という文字列を実際に A1A2 というバイナリデータとして扱うには、
どうすればいいのでしょうか?

具体的には、外字コード変換用テーブルより取得した
文字コードに対応した文字を出力したいのです。

@文字コード xを16進数に変換、それを文字列として保持。
 (仮に、文字列"B1B2"となったとする)。 //できた

A文字列"B1B2"に対応する文字文字列をテーブルより取得。
  (仮に、文字列"A1A2"が返ってきたとする。)//できた

B文字列"A1A2"を、文字コード A1A2 のバイナリデータとして出力
  //できない

Bに関してイロイロ調べた結果、以下の方法だと思ったのですが
期待通りの結果が得られません。

$codestr = "A1A2" ;//実際にはテーブルより取得。
$str = pack("C*", pack ( "H*" , $codestr ) );
echo $str //文字コードA1A2に対応する内部外字データが出てほしい。

27nobodyさん:2005/05/06(金) 19:16:14 ID:???
>>26
$codestr = "A1A2";
$codestr = pack ( "H*" , $codestr );
echo bin2hex($codestr);
$str = pack ( "C*" , $codestr );
echo bin2hex($str);
28nobodyさん:2005/05/06(金) 19:34:41 ID:hjSdpWYJ
>>27
ありがとうございます!
できました!

pack("C*" ・・・・が要らなかったんですね。
PHP マニュアルのフォーマットの説明を見ても
理解できませんでした。

なんとなく自分の中でつじつまがあったような気がします。

ありがとうございます
29nobodyさん:2005/05/07(土) 08:32:58 ID:???
>>25
設定によってはWarningがでるのでこっちが推奨されている
function setMysqlStract (&$data){
// $dataは$sqlの参照
}
setMysqlStract($sql);
30nobodyさん:2005/05/07(土) 17:34:33 ID:???
"藤井隆さんと乙葉さん婚約"
(p)http://headlines.yahoo.co.jp/hl?a=20050507-00000102-kyodo-ent
31nobodyさん:2005/05/07(土) 17:48:17 ID:???
ぐは、、、どっちもしらねー
32nobodyさん:2005/05/07(土) 21:17:00 ID:???
file_put_contentsで、
http://jp.php.net/manual/ja/function.file-put-contents.php
>flagsには FILE_USE_INCLUDE_PATH かつ/または FILE_APPENDを取ることができます。
とあるのですが、このflagsは具体的にどのように指定するものなのでしょうか?

33nobodyさん:2005/05/07(土) 21:29:35 ID:???
>>32
どのようにって、、、3番目の引数に入れるだけだけど。

意味かな?
FILE_USE_INCLUDE_PATH open()の3番目の引数と同じ
FILE_APPEND open() の2番目の引数に'a'を入れたときと同じ
3432:2005/05/07(土) 21:45:40 ID:???
>>33
どうもです。たとえば、FILE_USE_INCLUDE_PATH と FILE_APPENDを
同時に指定する時は、どんな値を渡すんですか?
3532:2005/05/07(土) 21:49:35 ID:???
あ〜、パーミッションの指定を同じような感じなのかな。
36nobodyさん:2005/05/08(日) 21:56:17 ID:OHdCeEKV
<form method="POST" enctype="multipart/form-data" action="このPHP名"><br>
年<INPUT type="text" name="y" size="5"><br>
月<INPUT type="text" name="mo" size="5"><br>
日<INPUT type="text" name="d" size="5"><br>
時<INPUT type="text" name="h" size="5"><br>
分<INPUT type="text" name="mi" size="5"><br>
秒<INPUT type="text" name="s" size="5"><br>
<INPUT type="submit" name="submit" value="計算"><br>
</form>
<FORM METHOD="post">
入力した時間の時は、<INPUT NAME="time" SIZE="12" value="
<?php
$start = mktime($h,$mi,$s,$mo,$d,$y);
print ($start);
?>
">です
</FORM>

こういうの作ったんですが、どうもこの計算方法だと使い勝手が悪いです
これを、10桁の数字いれて逆に年月日時分秒を出力してくれるように改造して頂けませんか・・・?
なんか丸投げスレになげるには単純なものなので、こちらに書かせていただきました
37nobodyさん:2005/05/08(日) 22:03:03 ID:???
>>36
つ 日付・時刻関数
38nobodyさん:2005/05/08(日) 22:07:56 ID:OHdCeEKV
>>37
(´・ω・`)
3923:2005/05/09(月) 02:09:18 ID:5TcE9neg
>>25さんアドバイスありがとうございます。
なんとかうまく多次元配列をつくることができました。
なのですが、もうひとつ問題が・・

$sql = "select * from site where site_name in ('$tmp[hash][name]');";

このような形でデータを格納したいのですがこの場合
$tmp[hash][name]を変数として参照してくれません。
そのまま$tmp[hash][name]と言うデータが入ってしまいます。

$temp = $tmp[hash][name]
$sql = "select * from site where site_name in ('$temp');";
もしくは
$sql = "select * from site where site_name in ('".$tmp[hash][name]".');";
としてやればいいのですがどうもスマートではありません・・

同様に
print"$tmp[hash][name]<BR>\n";
↑これでは$tmp[hash][name]と表示されてしまいます。
print $tmp[hash][name]."<BR>\n";
↑これでやっと変数を表示してくれます。

ここらへんの書き方を探したのですがどのサイトでも
みつけられませんでした。
私の探し方がよくないのでしょうか・・
ご指摘いただければ助かります。
40nobodyさん:2005/05/09(月) 02:31:34 ID:SCkyzNUL
http://YahooBB220034048052.bbtec.net/
うぇwwwwwwうぇwwwっうぇwwwうはっwww
wwwwwwwwwwwwっうぇうはっwwwおkwww

wwwwwwっうぇwwwwwwwwwwww
41nobodyさん:2005/05/09(月) 03:03:12 ID:???
>>39
ttp://www.php.net/manual/ja/language.types.string.php#language.types.string.parsing
あたりの説明を考慮して、
$sql = "select * from site where site_name in ('{$tmp['hash']['name']}');";
42nobodyさん:2005/05/09(月) 15:01:23 ID:???
$sql = "select * from site where site_name in '{$tmp['hash']['name']}'";
print"{$tmp['hash']['name']}<BR>\n";
43カポコン:2005/05/09(月) 22:23:40 ID:???
どっかに素晴らしいTrueTypeフォントは無いかな。。。
44nobodyさん:2005/05/09(月) 22:35:31 ID:???
なければ作ればいいじゃない
45カポコン:2005/05/10(火) 00:00:27 ID:???
出来なくは無いが画像データ以上に難しいじゃない。
tteditにしても何にしても、まー作れる時間が無いからなー。
csv形式からシコシコ作るのも最近は萎えている。
やっぱり人が作ったのを拝借するに限るよ。。。
46nobodyさん:2005/05/10(火) 10:01:29 ID:???
(‘ε‘) これと (・σ・) どっちが可愛い?
47nobodyさん:2005/05/10(火) 17:20:26 ID:???
腐女子乙
48nobodyさん:2005/05/10(火) 18:23:42 ID:???
なんで腐女子ってわかったの!!
49nobodyさん:2005/05/10(火) 23:29:28 ID:???
ある条件が発生したら./optimizationというファイルを作成して
ある処理をさせようと想うのですが、どうした訳か以下の行程
では削除されないようです。
$optimizationには1が入るのですが・・・・。
パーミッションもディレクトリ権限も問題ありません。
以下の部分を通っていないのかとも想ったのですが、そうでもない
ようです。何か間抜けな事をしているのだとは想うのですが
エスパーさん募集中です。

is_readable('./optimization') && $optimization = 1;
isset($optimization) && unlink('./optimization');
echo'とおったよ';
50nobodyさん:2005/05/10(火) 23:41:13 ID:???
>>49
win+apacheの環境でそのまま実行してみたけど、ちゃんと削除されたよ。
5149:2005/05/10(火) 23:43:03 ID:???
ファイルの作成と削除の順番が逆になってた-;ごめん。

>>50
ありがとうございます。
52nobodyさん:2005/05/11(水) 02:24:59 ID:0snN3vGS
is_object()が思った動きをしてくれません。
$p_valueは自前のクラスのインスタンスです。

if(is_object($p_value)){
print("オブジェクトだよ");
}else{
print("オブジェクトじゃないよ:" . $p_value);
}

この結果が
オブジェクトじゃないよ:Object
となります。
クラスのインスタンスはオブジェクト型じゃないのでしょうか?
53nobodyさん:2005/05/11(水) 02:34:07 ID:???
class Value {
}

$p_value = new Value();
if(is_object($p_value)){
print("オブジェクトだよ:".gettype($p_value));
}else{
print("オブジェクトじゃないよ:" . $p_value);
}
--
オブジェクトだよ:object
5452:2005/05/11(水) 02:56:19 ID:0snN3vGS
>>53
返信ありがとうございます。
確かにうちでもその通りの結果がでました。
もしかして>>52での$p_valueが引数で渡したクラス型だからかな。
55nobodyさん:2005/05/11(水) 06:09:38 ID:???
RedHat9.0にPHP5.0.2をインストしようと思ったんだが
libphp5.soが生成されないorz
誰かあほな僕に解決策を教えてください
56nobodyさん:2005/05/11(水) 06:41:43 ID:???
エスパーではない僕に作業手順とその時々の作業結果を教えてください
57nobodyさん:2005/05/11(水) 09:24:14 ID:???
>>54
<?php
class Value {
}
$p_value = new Value();
test1($p_value);
print("\n");
test2($p_value);

function test1(&$o) {
if(is_object($o)){
print("オブジェクトだよ:".gettype($o));
}else{
print("オブジェクトじゃないよ:" . $o);
}
}
function test2($o) {
if(is_object($o)){
print("オブジェクトだよ:".gettype($o));
}else{
print("オブジェクトじゃないよ:" . $o);
}
}
?>
--
オブジェクトだよ:object
オブジェクトだよ:object
ちなみにPHP4.3.11
5852:2005/05/11(水) 23:06:38 ID:???
原因がわかりました。
すいません。僕のミスでした。
実際>>52の$p_valueには文字列が入ることもあり、addslashes()をかけていた事が原因でした。
エラーにはならないけどObject型ではなくなるみたいです。
59nobodyさん:2005/05/12(木) 00:00:49 ID:q2eyoFxP
PHPの動作速度について質問があります。

現在、Linux上で、コマンドラインからPHPを起動して
CSVからデータを読み込んでPosgreにレコードを登録する処理を
作ってます。

レコードは10万件近くあって、列数は50個くらいです。

PHPでやるよりもPerlでやるほうが速かったりしますか?

60nobodyさん:2005/05/12(木) 00:50:53 ID:KoUlpu2o
http://mjh.kaist.ac.kr/

うぇwwwwwwwwwっっっうぇ
おkwww


ww
うはっwwwwwwwwwwwwwwwwww

wwwwww
っおkwwwうはっwwwおkwww
61nobodyさん:2005/05/12(木) 02:14:03 ID:???
>>59
使ってるライブラリは一緒だし、そんなに気にするほど変わらんと思うよ。
62nobodyさん:2005/05/12(木) 09:12:41 ID:???
>>59
こういった質問見るたびに思うんだけど、
大抵のDBってバックアップとリストアの機能があって、
CSVとかテキスト形式のデータを登録するためのコマンドが普通は用意されてるんだよね。

なんで、それを使わないでPHPとかその他の言語とか使って登録しようとするの?
鯖が直接データ取り込んで登録するのが一番速いに決まってるじゃん。
63nobodyさん:2005/05/12(木) 09:19:59 ID:???
PostgreSQLのFAQの中にも同様のアドバイスがあるね。
それ以外にもヒントがあるので読んでおくと良いよ。>>59
64nobodyさん:2005/05/12(木) 09:26:26 ID:???
cronからの自動実行でMySQLのDBを操作するPHPを実行していたのですが
PHP/4.3.10の時にはなんの問題もなく実行出来ていたスクリプトが
PHP/4.3.2に変わったとたんconnect時にエラーが出てしまう様になってしまいました。

(1) PEAR使用時 ---------------------
$conn = DB::connect("$dbType://$dbUser:$dbPass@$dbHost/$dbName");
if(DB::isError($conn)){ exit($conn->getMessage()); }

結果:DB Error: no such database

DBが見付からないと言われてしまう…(しかしDBは確かに存在する)
------------------------------------
(2) mysql関数使用時 ----------------
$dbh=mysql_connect($dbHost, $dbUser, $dbPass) or die(mysql_error());

結果:Fatal error: Call to undefined function: mysql_connect() in test.php on line 3

こちらは未定義関数の呼び出しエラーが出てしまう…
------------------------------------

鯖缶に問い合わせて見た所、セキュリティー上の問題からバージョンが変わったらしいです。
エラー原因については、鯖側の問題というよりも
PHPスクリプト自体の作り込みが原因ではないか?と言われました…

しかし、どうしても原因が掴めず困っています…
6564:2005/05/12(木) 09:29:14 ID:uDP5UTsR
すみません、age忘れてました。
66nobodyさん:2005/05/12(木) 09:53:01 ID:???
>>64
phpinfo()は出せる?
6764:2005/05/12(木) 10:15:58 ID:???
>>66
これです。
鯖はXREAになっていますが、実際は違います。
http://beam.s101.xrea.com/phpinfo.html
68nobodyさん:2005/05/12(木) 10:45:43 ID:???
>>67
mysql関数がインストールされてない。
サーバ側の設定ミスじゃないのかね。
6964:2005/05/12(木) 10:50:31 ID:???
>>68
やはりそうでしょうか。
"Call to undefined function: mysql_connect()" はどう考えてもおかしいですよねぇ…
70nobodyさん:2005/05/12(木) 11:22:10 ID:???
>>67
sharedになってるね
dl('mysql.so');
とか
7164:2005/05/12(木) 11:45:19 ID:???
mysql.soが見付からないと怒られました…

Warning: dl(): Unable to load dynamic library '/usr/lib/php4/mysql.so' -
/usr/lib/php4/mysql.so: cannot open shared object file: No such file or directory in /home/xxxxxx/public_html/test.php on line 3
72nobodyさん:2005/05/12(木) 22:22:27 ID:???
どっかに同じ環境作って同じソースで動かして
こっちで動くのにあんたんとこで動かんのはどーして

とか持ってったら。
作り込みが原因とか言われるとはらたつな(俺が言われたんじゃないが)
73教授:2005/05/13(金) 01:16:20 ID:p6STq+85
教えてgooで質問したのですが、回答して頂ける方がいなくて
非常に困っています。宜しくお願い致します。

PHPからSQLServerに接続しようと試みております。

ですが、以下のソースで
$conn = mssql_connect("localhost", "sa", "");
mssql_select_db("hoge", $conn);

以下のワーニングが発生してしまいます。
Warning: mssql_connect(): Unable to connect to server: localhost
Warning: mssql_select_db(): supplied argument is not a valid MS SQL-Link resource

接続のために行なったことはphp.iniの
extension=php_mssql.dll
のコメントアウトを外しました。

クエリアナライザでは"sa"、""で接続できるのですが・・・
"localhost"を"127.0.0.1"にしても、IPアドレスにしてもサーバ名にしても同じでした。(hostsファイルに追記もしました。)

ご存知の方がおられましたらご教授頂けませんでしょうか。



サーバ
OS:Windows2000Server SP4/WebServer:Apache2.0.54/言語:PHP4.3.11/RDBMS:SQLServer2000 SP4

端末
OS:Windows2000Professinal SP4/IE6 SP1
74教授:2005/05/13(金) 02:11:08 ID:p6STq+85
$conn = mssql_connect("サーバ名\DB名", "sa", "");
で繋がりました。
7564:2005/05/13(金) 03:31:12 ID:???
昨日鯖缶から連絡があり、改善されていました。
ご丁寧にレスくれた方、どうもありがとうございました!
76nobodyさん:2005/05/13(金) 05:35:52 ID:JdBVVipf
if ($_POST['passwd'] == $_POST['passwd2'])
{
print "パスワード違います"
}
 フォームでパスワード変更をしようと思うのですが、
 上の比較演算子で2つのフォームの内容をチェックしようと思ったのですが、
 フォームの内容が違っても、素通りして次の処理をしてしまいます。

 比較演算子がまちがっているのでしょうか?
77nobodyさん:2005/05/13(金) 07:38:03 ID:???
たぶんexit;とかdie;で処理終わらせてないからそのまま処理が続いている
die("パスワード違います");

あと説明がないから良く分からんが
確認のためパスワードを二回書くやつかな?

なら == だとおかしくね?
値が違う場合にエラー出すのでしょ?
if ($_POST['passwd'] != $_POST['passwd2'])
{
die("パスワード違います");
}
78nobodyさん:2005/05/13(金) 07:38:26 ID:???
>76
内容が違う場合に処理させたいのなら、
if($_POST['passwd'] != $_POST['passwd2']){}
if($_POST['passwd'] <> $_POST['passwd2']){}
でしょ。
if($_POST['passwd'] == $_POST['passwd2']){}
これだと内容が同じなら処理される。

ifは、式がTRUEである場合に、文を実行する。だぞ?
どっちゃにしろ、マニュアル読んでこい。
79nobodyさん:2005/05/13(金) 08:36:06 ID:ZsOHWwh7
http://z189.220-213-18.ppp.wakwak.ne.jp/
おkwwwうぇwwwwwwうはっwwwうぇwwwおkwww
wwwwwwwwwっwwwwwwwwwwww
うぇwwwうはっwwwwwwwwwwwwwww
80nobodyさん:2005/05/13(金) 20:21:56 ID:SDhwmUt9
PHP でリンクからそのページ自身をリロードさせる方法が
わかりません。
ブラウザの更新ボタンを押した時と同じような
動作が希望です。

<a href="<?php print($_SERVER['PHP_SELF']); ?>">更新</a>

と書いてみたんですが、これだと希望のとおりにならないのです。
81nobodyさん:2005/05/13(金) 20:47:25 ID:???
キャッシュが効いてるんじゃないの
82nobodyさん:2005/05/13(金) 20:52:55 ID:???
>>81
そのキャッシュを無効にするにはどうしたら良い?

もう少し書くと、掲示板でSQLiteを使ってます。
ブラウザ1を開いといて、ブラウザ2を開き書き込む。
ブラウザ1でその新規カキコを見たいが、
リロードするにはブラウザの更新ボタンを押すしかない。
どうにかできないものかな。
83nobodyさん:2005/05/13(金) 20:55:10 ID:???
>>80
<a href=".<?php print($_SERVER['PHP_SELF']); ?>">
(絶対指定じゃなくて、相対指定とするために.を入れる)
じゃ駄目か?
84nobodyさん:2005/05/13(金) 21:01:52 ID:???
>>83
試したがダメっぽい
もう少し試してみる
85nobodyさん:2005/05/13(金) 21:02:10 ID:???
>>82
キャッシュで引っかかってるなら

httpのヘッダで
・Expires: 十分に古い日付を指定する
・Cache-Control: no-cache
・Pragma: no-cache

補助的に、htmlのheadエレメントで
・<meta http-equiv="Expires" content="十分に古い日付" />
・<meta http-equiv="Cache-Control" content="no-cache" />
・<meta http-equiv="Pragma" content="no-cache" />
86nobodyさん:2005/05/13(金) 21:12:52 ID:???
>>85
キャッシュじゃないのかな
SQLite でデータベースを強制的に読みに行くように
すれば良い気がするができないんだなリンクでは。

2chの最新みたいな感じが良いんだけどな希望としては
87nobodyさん:2005/05/13(金) 21:36:26 ID:???
>>85
できましたよ!
<meta http-equiv="Expires" content="Fri, 31 Dec 1980 23:59:59 GMT" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />

とすることで希望のものになりました。
ありがとん。
88nobodyさん:2005/05/13(金) 22:51:38 ID:4h6Whmqq
質問させてください。
Perlのsubのような戻り値を返さない処理を呼び出したい場合どのように書けば良いのでしょうか。
functionで無理矢理っぽくやるしかないんでしょうか。

例えば

------------------------------
if ($hoge eq "hogehoge"){
&hoge_list;
}

sub hoge_hoge{
処理
}

------------------------------
こんな感じで処理(ここではhoge_hoge)を呼び出したいのですが。
89nobodyさん:2005/05/13(金) 22:52:24 ID:4h6Whmqq
間違えました
------------------------------
if ($hoge eq "hogehoge"){
&hoge_hoge;
}

sub hoge_hoge{
処理
}
------------------------------

ですorz
90nobodyさん:2005/05/13(金) 23:01:45 ID:???
つ [マニュアル (ユーザ定義)関数]
91nobodyさん:2005/05/13(金) 23:26:05 ID:4h6Whmqq
>>90
ありがとう。一回読んだつもりでいたら肝心のとこをスルーしてたらしいorz
ほんとありがとございますたーー
92nobodyさん:2005/05/14(土) 17:20:03 ID:???
PHP4から5にしてみたら

$name == 'abc' && $this->line++;

if ($name == 'abc') $this->line++;

の挙動が違うみたいなのですが、そもそもこの書き方自体の意味が違うのでしょうか?
何となく短い上の方を使っていたのですが・・・
93nobodyさん:2005/05/14(土) 17:27:34 ID:???
こんなソース見にくすぎる
94カポコン:2005/05/15(日) 01:13:32 ID:???
http://f13.aaa.livedoor.jp/~mugen/admin.php
久しぶりに更新したんでヨロシコー
95nobodyさん:2005/05/15(日) 11:05:29 ID:???
>>94
ブラクラ
96nobodyさん:2005/05/15(日) 12:01:28 ID:???
>>94
カポコンさん、久しぶりの登場ですが
相変わらず汚いスクリプトですねwプゲラ
97nobodyさん:2005/05/15(日) 12:33:08 ID:???
何かと思えば、俺が2chからリンクされてて初めて「痛い」と思ったサイトじゃねーか。
ようはPerlが分からないからPHPに逃げた厨のサイトだろ(プゲラw
9896:2005/05/15(日) 13:15:22 ID:???
イチョウガイですかね?それかマベガイクラスの真珠香具師でっせ。
アワビじゃないけど。取り合えず貝捕り大成功ですねカポコンさん。
99nobodyさん:2005/05/15(日) 13:48:04 ID:???
つっこみどころ満載だね

>Java(ジャバ、ジャワ)
>また、現在ではWeb用、サーバー用、家電用などと3つの派に分類されている。
じゃこれは何用?
public class Unko {
public static void main(String args[]) {
  System.out.println("ウンコサイト");
}
100nobodyさん:2005/05/15(日) 14:02:19 ID:???
}
>2007/07/16 システムの脆弱性等2件 ☆
>2007/07/16 Apache1.3.X+PHP5のバグ ☆
未来レスですか

>Javaでは、
>int i;
>i = (g==5)?0:1;
> このようにiには同じ型以外のものは入らないような構造になります。しかし、Perlはこれが0の代わりに"零"という風に文字列を代入する事が出来てしまうのです
PHPでもできてしまいますが、何か?

>PHPは型の指定が曖昧だと言われていますが、曖昧に使うのかどうかはユーザーの腕次第です。むしろ、出来ない方が無知だと言えます。


>echo"出力";
>print("出力");
マニュアルより
print()は実際には関数では(言語構造です)ありま せん。このため、引数を括弧で括る必要はありません。

>前回ではecho()とprint()という2つの関数を紹介したと思う。


101nobodyさん:2005/05/15(日) 14:11:27 ID:???
>先ずは、AAACafeで ユーザー登録を済ましてしまいましょう。
募集していませんが、何か?
>5:flock($fp,LOCK_SH);
>6:$count = (int)fget($fp,fileSize);
>7:flock($fp,LOCK_EX);
何このロック
しかも”fget()”
>格納した値は文字列なため。(int)はこれを整数にキャストしています。
いらない
>require()
>外部のファイルを取り込みます。取り込めなかった場合404エラーを出します。
大嘘
102nobodyさん:2005/05/15(日) 14:17:14 ID:???
>/**
> * 多くの開発者が悩むであろうポイント↓。
> */
>if($process==one):
>$cnt++;
>endif;
if($process==one) ++$cnt;でいいのに何で回りくどいことを?
>unset()
馬鹿?

おまけにJavadocコメント間違ってるよ
明日までに修正しなさい
103nobodyさん:2005/05/15(日) 14:22:16 ID:???
入れ食いだなぁ…
104nobodyさん:2005/05/15(日) 14:34:46 ID:p7a+MkNk
age
105nobodyさん:2005/05/15(日) 15:35:01 ID:???
>>99
JavaのSDKそのものが3つに分かれているって事じゃ・・・(ry
106nobodyさん:2005/05/15(日) 15:38:19 ID:???
phpdocとjavadocの違いってなんだろ?

>>102
無駄です、そこの管理人は面倒臭がり屋なので
自分本位にしか動きません。
107nobodyさん:2005/05/15(日) 15:39:44 ID:???
>>99がアホすぎてワロタ
108nobodyさん:2005/05/15(日) 16:13:03 ID:???
おっ糞サイトのカウンタが上昇したぞ!!
ホリエモンもホクホクだなぁ。。。
109nobodyさん:2005/05/15(日) 19:27:24 ID:???
     ミミ ヽヽヽヽリリノノノノ
    ミ   ,,、,、,、,、,、,、,、、 彡
     l  i''"        i彡
    .| 」  −-   − |
    ,r-/   fエ:エi, 、fエエ) |
    l        ( 、_, )   | 僕はきれいなホリエモン
    ー'     !ー―‐r、  |
     ∧     ヽニニソ  l   カポコンさんよくやったy!
   /\ヽ          /
 /     ヽ.  `ー--一'ノ/ヽ
110nobodyさん:2005/05/15(日) 20:20:07 ID:???
>>105
99は
3つ分かれて=J2EE SE ME
で、SEがWeb用になってるから突っ込んだのでは?
スレ違いスマソ
111nobodyさん:2005/05/15(日) 22:53:55 ID:???
>>110
反応が遅いなぁ・・・99さん。
112110:2005/05/15(日) 23:24:10 ID:???
そうくると書きながら思ってたw
113nobodyさん:2005/05/16(月) 02:43:58 ID:???
テンプレートエンジン使うとき、
フォームの入力画面、バリデート画面、単独で作りますか?
flexyつかってます。
できればhtml 1ファイルにまとめたいんですけど。
quickform使えばできるけどややこしい。
114nobodyさん:2005/05/16(月) 15:23:57 ID:goO1rgy6
$path = './hoge.txt';
header("Content-Disposition: attachment; filename=text.txt");
header("Content-Type: application/download");
readfile($path);

で、テキストファイル(タブ区切りデータ)をダウンロードさせようとしているのですが
なぜか、ダウンロードしたファイルの、最後の行にタブが2個ほど追加されてしまいます。
サーバ上にある hoge.txt 自体にはそのようなタブはありません。

色々なブラウザで試してみたのですが、同じでした。タブを付けずにダウンロードさせる
には、どうすれば良いんでしょうか?
115nobodyさん:2005/05/16(月) 15:40:26 ID:???
>>114
<?php 〜 ?>の外に余計なTABが入ってるとか。
116114:2005/05/16(月) 19:17:53 ID:???
>>115
まさにそれでした。
うーん、全く気が付かなかった orz
117nobodyさん:2005/05/17(火) 05:49:53 ID:???
しょうがない、
TABは馬鹿には見えないからな
118nobodyさん:2005/05/17(火) 07:40:10 ID:???
おれはバカだけどエディタが記号で表示してくれるので見られる。
119nobodyさん:2005/05/18(水) 04:27:43 ID:???
phpでhtmlソースをゲットしてから、特定の語句の周り(または行)だけ抜き出したいのですが。
どういう方法が一般的なのでしょうか。
くだらねぇ質問ではスルーされました。
120nobodyさん:2005/05/18(水) 04:42:57 ID:???
>>119
一般的かどうか分からないけど、その質問に書いてある通りに処理をすればいいんでないの?
1. 行単位でリモートからデータを取得(或いはローカルに保存後に行単位で処理開始)
2. 特定の語句があるか調べて(strpos()等)、存在すればデータをどっかに保持。(或いは正規表現を使う)
3. 繰り返す。
121nobodyさん:2005/05/18(水) 20:58:16 ID:???
特定語句の周りだけ抜き出す…googleみたいな?
122nobodyさん:2005/05/19(木) 18:13:28 ID:???
データベース検索サイトで[立花]で検索すると
http://hogehoge.jp/catalog/search_result.php?keywords=%CE%A9%B2%D6&x=0&y=0
というURLで結果が返されます。
EUCエンコードで検索文字列が下記のようにエンコードされている事が分かりました。
http://hogehoge.jp/catalog/search_result.php?keywords=立花&x=0&y=0

phpでEUCエンコードをした文字列を上記の[立花]の部分に入れたいのですが、単純に文字列をEUCにエンコードして挿入する方法が分かりません。
長々とすいません。
123nobodyさん:2005/05/19(木) 18:31:32 ID:???
>>122
URLエンコード
124nobodyさん:2005/05/20(金) 00:46:49 ID:hzltzNE3
phpでw32apiが使いたいのだが、w32api_register_functionがどうね上手く動かん原因わかりませんか?
125nobodyさん:2005/05/20(金) 01:05:04 ID:???
詳しく
126nobodyさん:2005/05/20(金) 01:08:54 ID:TNhieU4U
SQLiteとMYSQLのどちらのほうがPHPで使いやすいでしょうか?
またどちらが簡単なのでしょうか?初心者なのでよろしければ教えてください。
127124:2005/05/20(金) 01:13:14 ID:???
QRコードを自動生成するものを開発しているのだが、phpのAPI使うの初めてで
勝手が全くわからんのですよ。
とりあえずphpマニュアルの例題スクリプトを試したが、undefinedと言われる
ワケで、そりゃ自分で定義してないけど、たったらなんの為のextensionやねん
とか。
128nobodyさん:2005/05/20(金) 03:39:53 ID:???
>>126
環境を構築する事とPHPからDBMSを利用することは別のこと。
PHPからDBMSを利用するだけなら、SQLiteの方が簡単。

環境を構築の話になると、使うOSとかで全然違うわけだが、
その辺を適当で考えるとPHP5ならSQLite。PHP4ならSQLiteを
使えるようにするまでを考えると、MySQLの方が楽かと。
129nobodyさん:2005/05/20(金) 03:46:34 ID:???
>>127
phpのバージョンに注意。
該当バージョン以外のやり方は、php.netのマニュアルのuser noteに解説あり
130nobodyさん:2005/05/20(金) 06:00:28 ID:y2xo3LJo
タグでサイズ指定された、画像を 同じ大きさで表示るにはどうすればよろしいでしょうか?

例えば・・
$hoge1 = '<a href="hoge1.html"><img src="hoge1.gif" width="24px" height="32px"></a>';
$hoge2 = '<a href="hoge2.html"><img src="hoge2.gif" width="100" height="63"></a>';
$hoge3 = '<a href="hoge3.html"><img src="hoge3.gif" width="30%"></a>';
・・・・・
と、あって
echo $hoge1;
echo $hoge2;
echo $hoge3; などとした際に、画像サイズをがバラバラになりますが
      これを、width=100pt などで、同じサイズで表示するには??

 JAVAスクリプトでも構いませんし、HTMLタグやスタイルシートでも構いません
 どなたか、お願いします。
131nobodyさん:2005/05/20(金) 06:05:39 ID:???
>>130
君には $hoge1 = '<a href="hoge1.html"><img src="hoge1.gif" width="100pt" height="32px"></a>';
とする権利と、弁護士を呼ぶ権利がある。
132nobodyさん:2005/05/20(金) 06:44:01 ID:???
echo preg_replace("/(width=\")[0-9]+[a-z]*\"/","width=\"100pt\"",$hoge1);
133初期不良:2005/05/20(金) 07:30:11 ID:???
PHP5.0.4 なんだけど # の処理がおかしくない?

_SERVER["REQUEST_URI"] /post.php?comment=2004WorldMatchplayDarts%2301PARTvsANDERSON
_SERVER["QUERY_STRING"] comment=2004WorldMatchplayDarts
_GET["comment"] 2004WorldMatchplayDarts

%23 が URL エンコードされた # だけどそれ以降ぶった切られちゃってて取得できん。
ちょっと前まで取得できてたはずなんだが... 最近入り込んだバグか?
他の人はどうでつか?
134nobodyさん:2005/05/20(金) 07:52:54 ID:???
>>132
やはり、正規表現しかないですか。。
 でも、ありがとうございました。
 
135nobodyさん:2005/05/20(金) 08:26:48 ID:???
>>127
俺も以前PHPとGDでQRコード作成プログラムを作ろうと思ったことがある。
QRコードの検索してたらプログラムそのものがすでにあったのでやめた。
PerlにはGD::Barcode::QRcodeがあるし。
136nobodyさん:2005/05/20(金) 09:08:04 ID:???
>>133
4.3.11ではちゃんと取得できた。5の問題かな。
137nobodyさん:2005/05/20(金) 10:28:18 ID:???
>>133
手元の5.0.4(Windows)はちゃんと
_SERVER["QUERY_STRING"]comment=2004WorldMatchplayDarts%2301PARTvsANDERSON
_GET["comment"]2004WorldMatchplayDarts#01PARTvsANDERSON
でした
138nobodyさん:2005/05/20(金) 11:41:08 ID:???
フォームからの入力(URL)をDBレコードに追加する場合、$_POST{'nn'}をSQL文にそのまま投げると危険ですよね?
でもどういう予防措置をしておけばよいかわかりません。rawurlencodeすればいいのかな。
139nobodyさん:2005/05/20(金) 12:24:16 ID:???
>>138
ヒント♪
''して$_POST{'nn'}に含まれる'を\'に変換する
140nobodyさん:2005/05/20(金) 12:34:44 ID:???
私は、htmlspecialchars で変換して DBにぶち込んで
引っ張ってきた時
下記で変換してるけど・・弱いのかな...(不安だな

function unhtmlspecialchars( $string )
{
$string = str_replace ( '&', '&', $string );
$string = str_replace ( '?', '\'', $string );
$string = str_replace ( '"', '"', $string );
$string = str_replace ( '<', '<', $string );
$string = str_replace ( '>', '>', $string );
return $string;
}
141nobodyさん:2005/05/20(金) 12:48:18 ID:???
>>140
arrayに突っ込むかマニュアルにある方法を使う方がスマートかも
142nobodyさん:2005/05/20(金) 12:55:49 ID:???
クロスサイトスクリプティングとSQLインジェクションがごっちゃになってるのかな。
それとも別の質問なのかしらん?
各DB用の文字型の変換関数(ex. (pg|mysql|..)_escape_string)があるならそれを使うのも手かと。
143初期不良:2005/05/20(金) 13:27:42 ID:???
>>137
>手元の5.0.4(Windows)はちゃんと

おろ、環境依存?
こちら FreeBSD5.3-Stable ports mod_php5-5.0.4_2,1 です。
設定による部分はどこか可能性あるだろうか...
144初期不良:2005/05/20(金) 13:29:14 ID:???
あ、書き忘れました。Apache2 で動作中ってのも重要かも?
145nobodyさん:2005/05/20(金) 13:49:26 ID:???
>>139
そんだけじゃint型いれるときに「;delete from tablename;」が通ってしまうがな。
146nobodyさん:2005/05/20(金) 17:34:23 ID:???
$sql = 'SELECT * … id="'.$request_str.'"';
$sql = mysql_real_escape_string($sql);


上の文で、… id='.$request_str;
とかやると、";"を処理しないと、危ないな。
147nobodyさん:2005/05/20(金) 19:55:51 ID:???
   〃∩ ∧_∧
   ⊂⌒( ´・ω・`) くぜんぶマニュアルに書いてあんがな
     `ヽ_っ⌒/⌒c

http://www.php.net/manual/ja/security.database.sql-injection.php
148初期不良:2005/05/20(金) 20:18:00 ID:???
php.net のバグレポート見ると普通に URL エンコードを勘違いしているものとか
古い話で mbstring をはずせとか言う話があったが、mbstring をはずしても変化ない。
このテストコードで hidden の値まで取得できなくなるわけだが...
けど、他の人は取得できるのかな...

test.php
<?
if(count($_GET)>0){
phpinfo();
print_r(parse_url($_SERVER["REQUEST_URI"]));
exit;
}
?>
<html><body>
<form action="test.php" method="get">
<input type="text" name="comment" value="test#test">
<input type="hidden" name="hidden" value="hiddenValue">
<input type="submit">
</form>
</body></html>
149nobodyさん:2005/05/21(土) 07:39:21 ID:???
これブラウザ側でぶった切ってるって事は無いよね?

あ、REQUEST_URIには入ってるのか・・・・
150初期不良:2005/05/21(土) 12:26:09 ID:???
>>149
いや、よく考えてみたら $_SERVER["QUERY_STRING"] だから Apache が作った値だね。
Apache Environment の QUERY_STRING 見てもぶった切られてる。
ありがとう、気付かなかったよ。Apache2 を疑ってみまつ。お騒がせしますた。
151初期不良:2005/05/21(土) 12:54:29 ID:???
解決
mod_encoding の問題だった...
mod_encoding モジュールをはずしたら解決した。
WebDAV に関係する部分だけ EncodingEngine on すれば
良いみたい。スレ違いすまそ
152nobodyさん:2005/05/21(土) 23:48:55 ID:???
$n_dir = scandir($dir);
print_r($n_dir);
print_r(natsort($n_dir));

このようなPHPスクリプトを、PHP5で実行してみました。

Array ( [0] => . [1] => .. [2] => 1 [3] => 10 [4] => 2 [5] => 3 [6] => 4 [7] => 5 [8] => 6 [9] => 7 [10] => 8 [11] => 9 )
Array ( [0] => 1 [1] => 2. [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 [9] => 10 [10] => . [11] => .. )

といった出力結果を期待していたのですが、実際には二番目のprint_rが1を出力してしまいます。
なにかが間違っているのでしょうか、ご教示願います。
153nobodyさん:2005/05/22(日) 09:29:21 ID:???
>>152
natsortは戻り値は返さない。マニュアルぐらい読もうよ。
$n_dir = scandir($dir);
print_r($n_dir);
natsort($n_dir);
print_r($n_dir);
でないと。
実際には、期待した順にはソートされないと思う。"." ".." が前に来ると思われ。
154nobodyさん:2005/05/22(日) 21:41:43 ID:???
include_pathに新たなパスを追加する関数ってありますかね?
set_include_pathだと上書きになってしまうので。
一応自分で以下のような関数を自作したんですけど、
もし標準であるならそっちを使いたいので。

function add_include_path($path) {
$include_path = get_include_path();
set_include_path($include_path . ":" . $path);
return true;
}
155nobodyさん:2005/05/24(火) 13:11:43 ID:E/H71Uk/
I teach good Blog which is usable as a substitute for a homepage, and it is clay る? I made a ASABlogBlogzine person, but examine most nobody. Yahoo || of watching it || because there is much it, but is not usable for business.
Why is it good if charged a fee?
156nobodyさん:2005/05/24(火) 13:29:18 ID:???
>>154
多分、色々と見かけてるとは思うけど、

ini_set('include_path', '追加したいパス' . PATH_SEPARATOR . ini_get('include_path'));

という方法が、昔からの定石として使われている。
157nobodyさん:2005/05/24(火) 19:04:13 ID:???
>>156
ini_setの方が定石ですか。
ありがとうございます。
158nobodyさん:2005/05/26(木) 06:13:16 ID:???
クレクレ君ですみませんが
PHPコードの高速化・効率化を書いていたりまとめているHPってないっすか?

(Perlですが↓みたいな感じ)
ttp://www.rfs.jp/sitebuilder/perl/09/05.html
ttp://www.din.or.jp/~hagi3/Perl/Perf.htm

検索してもMLと数件見つかるだけです・・・。探し方が悪いのかな?
159nobodyさん:2005/05/26(木) 11:25:17 ID:???
zipファイルにパスワードを書ける方法を教えてください
160nobodyさん:2005/05/26(木) 11:47:43 ID:???
>>159

$fp = fopen('hoge.zip', 'a+');
fwrite($fp, 'パスワード');
fclose($fp);
161nobodyさん:2005/05/26(木) 13:31:25 ID:t2iex5dJ
PHPで作成した(PHPに限らずですが)プログラムのバグを発見するための
チェックリストみたいなものって、どっかにありませんか?
XSSや、文字化けとか、見落としがちな定番穴見つけリストみたいので良いのですが。
162nobodyさん:2005/05/26(木) 13:46:52 ID:???
>>161
IPAのセキュア・プログラミング講座
ttp://www.ipa.go.jp/security/awareness/vendor/programming/
文字化けまで考慮したチェックリストは無いんじゃないかなぁ。。
つーかそこまでリスト化すると対象が膨大すぎて意味をなさなくなるような。

別のアプローチとしてphpunit等のテストツールとか。
163nobodyさん:2005/05/26(木) 14:25:11 ID:???
>>160
ありがとう
164nobodyさん:2005/05/26(木) 20:00:20 ID:???
http://www.yahoo.co.jp/

を取得してソースを

sample.htmlで保存したいのですがどうすればいいのでしょうか?
165nobodyさん:2005/05/26(木) 20:12:07 ID:???
>>164
ttp://www.php.net/manual/ja/ にPHPのマニュアルがある。
やりたい事に関係しそうなものを探していく。
「リモートファイル、ファイルシステム関数、HTTP関連の関数、ネットワーク関数、ソケット関数、URL関数 etc.」
これらの単語が目に付く筈だ。
それぞれのページを見ていくと、今回のスクリプトに使えそうかそうでないかを判断することができる。
サンプルまで書いてある場合もある。
さぁ、これでオマイは今までの質問するだけのヘタレでは無くなった。後は実際にスクリプトを書くだけだ!
166nobodyさん:2005/05/26(木) 20:42:28 ID:???
>>165 サンクス

<?php
$file = fopen("http://www.yahoo.co.jp/", "r");
?>

保存の仕方教えて
167nobodyさん:2005/05/26(木) 21:04:59 ID:???
おまえwwwwwwwwww
168nobodyさん:2005/05/26(木) 21:27:26 ID:???
↓でエラーがでる、、、何処だめなん

<?php
$file = fopen("test.html", "w");
$line = fopen("http://www.yahoo.co.jp/", "r");
fputs($file,$line);
?>
169nobodyさん:2005/05/26(木) 21:49:33 ID:???
ヒント:ファイルリソース
170nobodyさん:2005/05/26(木) 22:19:29 ID:???
<?php
$logfile ="a.dat";
$files = file_get_contents("http://www.yahoo.co.jp/");
$fp = fopen("$logfile","w");
fputs($fp, $files);
fclose($fp);
?>

171nobodyさん:2005/05/26(木) 22:21:54 ID:???
>170  サンクス
172nobodyさん:2005/05/26(木) 23:51:33 ID:Jhl0Cun1
PHPをいちから始めるつもりなんですが
アパッチいれても動きません・・・2000とXPで設定が違ったりするんでしょうか?
173nobodyさん:2005/05/26(木) 23:53:47 ID:???
phpdevにしれ。
174nobodyさん:2005/05/27(金) 00:00:06 ID:oSADx+e2
やーいPHPのデブー^3^
175nobodyさん:2005/05/27(金) 00:02:31 ID:???
wammp
176nobodyさん:2005/05/27(金) 00:07:15 ID:???
>>172
設定は同じ
インストール方法なんてゴロゴロしてんだろ
検索してからまた来い
177nobodyさん:2005/05/27(金) 00:12:22 ID:???
>>176
それは分かっております
178nobodyさん:2005/05/27(金) 00:45:23 ID:???
class moe
{
function chikan($ary){
$aa = array_map("call_back_arr",$ary);
print_r($aa);
}

function call_back_arr($a){
return $a+1;
}

}

とクラス内でコールバック関数を定義して使用したいのですがいまいちいい方法が思いつきません。
何かいい案がないでしょうか?
"$this->call_back_arr"
等試してみたのですができなかったので。。。。。、
179nobodyさん:2005/05/27(金) 00:49:36 ID:???
XSAS!
180nobodyさん:2005/05/27(金) 09:57:01 ID:???
>>178
多分こんな感じ。
$aa = array_map(array(&$this, 'call_back_arr'), $ary);
181nobodyさん:2005/05/27(金) 11:59:21 ID:???
PHPを独学で初めて1週間程度なのですが、変数について型の宣言が必要ないということについて質問です。

array関数で配列にまとめて入力するときに参照したテキストには
「$test = array("あ","い","う")」
などとやればよいとありました。
これがたとえば数値を入れたいのであれば
「$test = array("1","2","3")」
とやればできたのですが、
「$test = array(1,2,3)」
とやっても問題ないようです。
「"」でくくると文字列の扱いになるのかな?とCをかじった身では思ってしまうのですが、
いずれで試しても
「print $test[0] + $test[1] + $test[2] . "<BR>";」
で計算結果を出力したところ問題なく計算されています。

PHPでは変数に数値を入れるときは「"」をつけてもつけなくても変わらないということなのでしょうか?
182nobodyさん:2005/05/27(金) 12:15:36 ID:???
183nobodyさん:2005/05/27(金) 12:19:00 ID:???
>181
マニュアル「型の相互変換」を参照。
184183:2005/05/27(金) 12:19:29 ID:???
orz
185181:2005/05/27(金) 13:46:14 ID:???
>>182,183
レスどうもです。
なるほど、使用時にその都度決定されるという理解でよさそうですね。
ためしに
$a = "a1";
print substr($a,1,1) . "<BR>";
print substr($a,1,1) + 2 . "<BR>";
とやってみたところ最後の計算も問題なくできてました。

どうもありがとうございました。
186nobodyさん:2005/05/27(金) 17:10:05 ID:nWSYjCL0
PHPで定数の共有化を行うには
グローバル変数を使う、
defineで定義した値や変数をrequireで呼び出す

などがありますがどれがおすすめでしょうか?

昨今ではグローバル変数は問題ありだと思いますし
defineで定義した変数は $記号が無いためちょっと読みづらい
気がします。

で呼び出すにはrequireを使う感じでしょうか。
それとも、他の方法で呼び出すのでしょうか?

187nobodyさん:2005/05/27(金) 17:21:28 ID:???
>>186
自分のコードは定数だけ大文字だしエディタで色を変えてくれるので特に読みづらくは無い
188nobodyさん:2005/05/27(金) 19:23:15 ID:nPYYisrT
ApacheにPerlとPHPの両方ともを設定することはできますか?
189nobodyさん:2005/05/27(金) 19:24:32 ID:???
>>188
はい
190nobodyさん:2005/05/27(金) 19:27:24 ID:nPYYisrT
http://y-kit.jp/saba/
このサイトを参考に両方を設定したんですが、PHPの方だけ起動が確認できませんでした。

>>189
レスありがとうございます。
自分に設定の間違いがあると思うので探してみます。
191nobodyさん:2005/05/27(金) 23:21:53 ID:m4bC+hhp
俺は「釣ったよ!」を参考にした
192nobodyさん:2005/05/28(土) 00:27:09 ID:???
MYSQLへのデータベース接続しようと思ったのですが、MYSQLのサーバーのホスト名、ユーザー名や
パスワードの設定の仕方がわかりません。
学校でコマンドプロントで設定し、家にそれを使ったプログラムを持ち帰ってやろうとしたのですが、
サーバー接続でエラーが出るので気づきました。
PHPのプログラムで
// データベース接続
$host = "localhost";
if (!$conn = mysql_connect($host, "usr", "passwd")){
die("データベース接続エラー.<br />");
}
mysql_select_db("sample", $conn);

となっているのでユーザー名は"usr"でパスは"passwd"だと思うのですが
これをMYSQLに設定するやり方がググッテも解りません。
データベース板で聞くべきかもしれませんがどなたか教えてください。
193nobodyさん:2005/05/28(土) 01:39:06 ID:???
>>192
復習する心がけは良いが、
>学校でコマンドプロントで設定し
授業もちゃんと聞きましょう。

http://dev.mysql.com/doc/mysql/ja/user-account-management.html
194nobodyさん:2005/05/28(土) 11:33:55 ID:vndaXCbx
アパッチ入れるの成功したんだけど、肝心のスタートメニューに「restart」がないんだけど、
なんで?
アパッチ。exeでリスタートする方法ありますか?
コマンドなんかつけりゃいいの?
195nobodyさん:2005/05/28(土) 11:45:18 ID:???
>>192
まさかとは思うけど、自宅から学校のMySQLにアクセスしようとしてないよね?
そうだとしたら、その辺は学校側のセキュリティの問題だから、俺らじゃ解決できない。

>>194
普通にサービスからリスタートしたら?
196nobodyさん:2005/05/28(土) 11:56:30 ID:???
>>194
まずOSを名乗れ
次にApacheのバージョンも
197194:2005/05/28(土) 11:58:48 ID:vndaXCbx
OSは2000です。すいません
アパッチはver4?1?
確か今現時点の最新より一個前のバージョンです。

あと、サービスからリスタートする方法って・・・?すいません、初心者で。。
198nobodyさん:2005/05/28(土) 12:06:38 ID:???
オキャクサン、サービススルヨ!
199nobodyさん:2005/05/28(土) 12:09:08 ID:???
>>197
インストール時の状況によって変わる。全部読め or die()
ttp://httpd.apache.org/docs/windows.html
ttp://httpd.apache.org/docs-2.0/platform/windows.html
200nobodyさん:2005/05/28(土) 12:09:46 ID:???
素直に解説本買ってこい。

「初心者」ならできるシリーズがオススメ!
201nobodyさん:2005/05/28(土) 12:13:32 ID:???
XMLファイルの文字コードを変換したいんだけど、

$objXml=simplexml_load_file("test.xml");
mb_convert_variables("EUC-JP", "auto", $objXml);

エラーがでる、何がいけないの?
202nobodyさん:2005/05/28(土) 12:25:44 ID:???
軍曹!エラー内容は極秘でありますか?(=゚ω゚)ノ
203nobodyさん:2005/05/28(土) 12:29:56 ID:???
>>197
Apacheにはメジャーバージョンで1と2があるの
2をWinNT,2000,XPにインストールするとApacheモニターというプログラムもインストールされるからそこから再起動とかできる
204nobodyさん:2005/05/28(土) 13:10:06 ID:RUnx6ukk
>>194
スレタイ嫁。
205194:2005/05/28(土) 14:07:45 ID:vndaXCbx
>>199
ありがとう!!

>>203
アパッチのバージョン1を入れました。
2を入れたほうがよかったのかな・・・。
206nobodyさん:2005/05/28(土) 14:51:19 ID:???
foreach関数でループ内の処理結果を変数に入れたいのですが、
できますか?
207nobodyさん:2005/05/28(土) 14:53:10 ID:???
処理結果って?
208nobodyさん:2005/05/28(土) 14:54:39 ID:???
>>206
こういう結果を期待して、こういうコードを書いたら、こういう結果になって絶望した。
というのを書いてもらえませんか?
209nobodyさん:2005/05/28(土) 14:59:08 ID:???
>>206
なんとなくだけどできる
210206:2005/05/28(土) 14:59:35 ID:???
<?php
foreach ($rss as $item){

print ($item->title);

}
?>

↑こう書きました。

print ($item->title);
の結果を変数に入れたいのですが、
211nobodyさん:2005/05/28(土) 15:01:51 ID:???
foreach ($rss as $item){
print ($item->title);
$hoge[] = $item->title;
}
212206:2005/05/28(土) 15:15:25 ID:???
>>211 初歩的ですいません。ありがとうございます。

$hoge[] の全てのキーを求める事もできますか?
213nobodyさん:2005/05/28(土) 15:37:51 ID:???
つ [ ttp://www.php.net/manual/ja/function.array-keys.php ]
foreachを使っておきながら何をいまさらって気もするが。。
214nobodyさん:2005/05/28(土) 18:09:58 ID:???
$objXml=simplexml_load_file("sample.xml");
print ($objXml->channel->title);
print ($objXml->channel->dc:date);

[title]の部分は表示されるのですが[dc:date]は表示されません。
たぶん:(コロン)が原因だと思うのですが、
解決方法ありませんでしょうか?
215nobodyさん:2005/05/28(土) 20:17:48 ID:sWsyG2zN
foreach ($hoge as &$value) {
  $value = "あああ";
}

ができるのはPHP4.3系からですか?
4.2.3だとエラーになるのですが。
216nobodyさん:2005/05/28(土) 20:56:41 ID:???
どうしてもわからん!!
preg_replaceで文字列の一部分だけ
置き換えしたくない場合はどうすれば一番良いねーーーん!
217nobodyさん:2005/05/28(土) 21:13:09 ID:???
>>216
例えばどんな場合?
聞くなら、取りあえずどうしたいのか、例題と解答を出してみないか?
でもって、今はこうやってみたけど結果がこうなってダメだったと書くと
的確に答えやすい。
218nobodyさん:2005/05/28(土) 22:12:48 ID:???
$s="abc\ndef[ghi\njkl]mno\npqr[stu\nvwx]yz";
$s=preg_replace("/\n/","<br>",$s);

こうなってしまうが
abc<br>def[ghi<br>jkl]mno<br>pqr[stu<br>vwx]yz
こうしたい・・・
abc<br>def[ghi\njkl]mno<br>pqr[stu\nvwx]yz

↓こんな感じもやってみたんだが・・・
$s=preg_replace("/([^\[].*?)\n(.*?[^\]])/","$1<br>$2",$s);
219nobodyさん:2005/05/28(土) 22:27:48 ID:???
>>218
つまり、[]で囲まれた部分は置換の対象外にしたいと。
220nobodyさん:2005/05/28(土) 23:32:51 ID:???
正規表現道場にいけば?
221nobodyさん:2005/05/28(土) 23:37:48 ID:???
マッチさせるものなのに、マッチさせない。
これいかに。
222192:2005/05/29(日) 02:09:10 ID:???
>>193 >>195

学校で作ったPHPの課題を家で動かすのにMysqlのデータベースが必要で
自宅のパソコンにMysqlを入れて、パスワードをつけたデータベース作ろうとしてつまずいたもので。
データベース板でも聞いたのですがrootにパスをかけてしまい学校でやったように
作成したデータベースのみにパスをかけて動かせず途方にくれています
223nobodyさん:2005/05/29(日) 02:47:23 ID:???
>>222
示したリンクからドキュメントを辿ってれば判るかと思うが、
MySQLのユーザに対してパスワードは設定できるが、
データベースに対して各々にパスワードを設定することはないよ。
あるのはMySQLのユーザに対して、各データベースの各種利用権限を設定することだけ。

取りあえず、DB板でやってるみたいだから後はそっちで。




224nobodyさん:2005/05/29(日) 07:49:32 ID:???
PHP覚えたいのだが何か良い本ないー?
225nobodyさん:2005/05/29(日) 09:19:52 ID:lGP1siTx
PHPを実行する前にシンタックスエラーだけでも
とりたいんだけど、いいソフト無い?
出来ればコマンドラインベースで。
226nobodyさん:2005/05/29(日) 09:53:34 ID:???
227nobodyさん:2005/05/29(日) 15:16:25 ID:???
ちょっとお尋ねしますよ。

parse_ini_file()

の逆の動きをしてくれる関数ってありますか?
連想配列をiniファイルフォーマットで書き出してくれるようなやつです。
228nobodyさん:2005/05/29(日) 15:25:08 ID:???
>>227
無いです。
大掛かりですけどPEAR::Configを使うのもありかと。
229nobodyさん:2005/05/29(日) 17:49:04 ID:???
>>224
お勧めかどうか分からないけど、PHP4徹底攻略改訂版のPDF版が無料でDLできる。
まぁ、PDFファイル自体はセキュリティ掛かってて印刷とか出来ないけど、
PDFでPCでみる分には無料。

ttp://www.php.gr.jp/php/php4tettei/
230nobodyさん:2005/05/29(日) 18:18:38 ID:???
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY><a href="http://location.request/dummy.cgi?my=http://***/index.php&pos=$location">GET</a>
<?php
$_GET['$pos']
print "座標 = $pos";
?>
</BODY>
</HTML>


URLは〜index.php?pos=N11.22.33.44E11.22.33.44
となるのに表示されません。
なぜでしょうか?
231nobodyさん:2005/05/29(日) 18:47:25 ID:???
>>230
>$_GET['$pos']
232nobodyさん:2005/05/29(日) 18:54:18 ID:???
つか<?php〜?>の中、全体の処理が意味不明だな。
printf("座標 = %s",$_GET['pos']);
とか。文字結合しながら出力でも勿論よいが。
233nobodyさん:2005/05/29(日) 20:18:44 ID:???
複数の変数の値を同じ関数で処理したいのだが

$aaa $bbb $ccc $ddd ...

strlen()で処理する場合

どうすればいいのでしょうか?
234233:2005/05/29(日) 20:37:29 ID:???
自己解決しました ><
235218:2005/05/29(日) 23:10:27 ID:???
自己解決・・・。
半画面の関数一つつくるのに丸一日かかったTT
236nobodyさん:2005/05/30(月) 10:03:00 ID:Zho+fj0B
質問です。
JPEG の画像(主に写真)を任意の角度で回転させたいのですが、imageRotate 関数ではかなり質が落ちてしまいます。(はしっこがギザギザになるわ、中身がモゴモゴになるわ)
そこで自作で関数書くことにしてみました。使った補完アルゴリズムは面積平均法です。
できあがった画像は極めて高品質で感動したのですが、肝心の実行速度がめちゃくちゃ遅いのです。100x75の画像の処理に約7秒かかります(既存のimageRotate関数は0.005秒・・・)。
どうやら回転によって傾いた画素と、出力用のまっすぐな画素との重なった部分の面積を求めるのに、交点をひたすら出して多角形の面積を求めているためかと思います。
希望する結果としては、品質的には少しくらい劣っても斜めになった縁の部分のギザギザがあまり目立たなければオッケーで、実行速度は今の状態の数倍はほしいです。なにか良い知恵がありましたら、ご教授願います。
環境はレンタル鯖で、Apache/1.3.33 で PHP/4.3.11 です。
237nobodyさん:2005/05/30(月) 10:11:41 ID:g9V9N+zS
eaccelerator の設定で、
eaccelerator.keys
eaccelerator.content
は、何のことを指しているのでしょうか?
238nobodyさん:2005/05/30(月) 13:03:28 ID:???
>>236
作った関数をCで書き直したらどうでしょう。
239nobodyさん:2005/05/30(月) 13:51:32 ID:???
>>236
レンタルサーバでも、ImageMagick(Cで書かれた画像ライブラリ)は
使えるところが多いと思うけどな。未インストールなら相談すれば
入れてもらえる可能性も。勿論画像の回転機能がある。

その手の実装をPHPでやろうとすると、スピード面ではやっぱりつらいやね。
書きやすいから試作ではやることもあるけど。
240236:2005/05/31(火) 00:30:14 ID:???
>>238
サーバ側でコンパイルする方法がない(もしくは知らないだけ?)のです。
Cで書けたら断然スピードアップしそうですよね^^;

>>239
ImageMagickは初めて知りました。
うちのサーバではインストールされてなかったのですが、オープンソースのようなので、ソースの関連部分を読んでみると、とても参考になるアルゴリズムで書かれていました。
PHPで書くと限界があるかもしれないので、相談してImageMagickを入れてもらうことも検討してみます。

お二方ともどうもです。
241nobodyさん:2005/05/31(火) 01:43:20 ID:???
お前ら騙されたと思って「こんとんじょのいこ」って言ってみろ
えなりかずきが「簡単じゃないか」って言ってるように聞える
242nobodyさん:2005/05/31(火) 02:16:33 ID:???
>>240
巷のレンタルサーバはそんなに特殊なハードやOSで動いてる訳でもないので、
ローカルでターゲット(レンタルサーバ)に合わせて、リンクも静的にしといて
コンパイルして、バイナリーで持ち込むようにすると、
ちょっと変わったことをやろうとする場合には良い。
まあ、自作のバイナリーの持込に制約のある鯖屋も多いけどね。
243236:2005/05/31(火) 03:07:08 ID:???
>>242
そんなこと実際にできてしまうんですね。
そういう場合ってハード面はどこまで合わせる必要があるんですか?
それともOSだけ合わせればオッケーなんでしょうか?
244nobodyさん:2005/05/31(火) 06:40:37 ID:???
>>243
CPUはi386でやっておけばたいがいOK
245nobodyさん:2005/05/31(火) 07:21:05 ID:???
複数の静止画像(png, jpeg, pgm 等)から動画を生成するにはどうすればよいのでしょうか?
246nobodyさん:2005/05/31(火) 09:17:49 ID:???
>>245
ターゲットの動画のファイルフォーマットを調べて、それに適合するようにファイルを作成する。
文字では一行で書けるけど、かなりめんどくさいよ。
247nobodyさん:2005/05/31(火) 09:29:16 ID:???
複数静止画像フォーマット→動画gifなら、
GDもImageMagickもサポートしてるけどな。
他の動画フォーマットは製品では見かけるけど、
安く簡単に使えそうなのは知らない。
248nobodyさん:2005/06/01(水) 01:33:51 ID:???
>>245
つ [ttp://www.wotsit.org/]
>>246の言う通りだが根性あるなら。w
249nobodyさん:2005/06/02(木) 15:52:47 ID:???
すみません、質問させてください。

普通、ブラウザでアドレス欄に「http://aaa.com/bbb」と入力すると、
実際には「http://aaa.com/bbb/index.htm(または.php)」だと解釈されて、
ブラウザはそのファイルを探しに行ってしまいます。

これを、「http://aaa.com/index.php」の「引数bbb」だと解釈させるには
どうしたらいいのでしょうか。アパッチの設定変更が必要ですか?
250nobodyさん:2005/06/02(木) 16:53:18 ID:???
>>249
mod_rewrite
251初期不良:2005/06/02(木) 17:04:29 ID:???
まさかだけど
http://aaa.com/?bbb
でいいとか
252nobodyさん:2005/06/02(木) 19:43:56 ID:???
>>250
mod_rewriteってレン鯖でもいじくれましたっけ?
いじくれたとしても、なんか設定とか相当に難しいらしいけど・・・。

>>251
それなら引数として認識させるのはわりと簡単なんだけど、
http://aaa.com/?bbb じゃなくて
http://aaa.com/bbb で認識させたいのです。
253nobodyさん:2005/06/02(木) 19:51:23 ID:???
254nobodyさん:2005/06/02(木) 19:57:14 ID:???
>>253
それは強引だな。スマートな方法ではない。
255nobodyさん:2005/06/02(木) 20:29:46 ID:???
>252
mod_rewrite使えない場合は、
.htaccessに、"ErrorDocument 404 /hoge/index.php"みたいに追加して
/hoge/index.phpで、$_SERVER['REQUEST_URI']を解析すると言う方法もある。
が、これやるとhttpdのエラーログが404で埋まるのでお勧めしない。
(レン鯖だったら関係ないとか言うかもしれんが)
256nobodyさん:2005/06/02(木) 20:32:05 ID:???
>>252
mod_rewriteを使わせてくれるかどうかなんて、
レン鯖ならそこの運営者に聞けよ。

そもそも、http://example.com/bbb と打って
http://example.com/bbb/を見るのも
ブラウザが勝手に解釈しているわけじゃないし、
ましてや/bbb/index.html(php)をブラウザが探しに行くわけでもない。
257nobodyさん:2005/06/02(木) 20:57:16 ID:???
>>256
いや、IEは勝手に末尾に「/」を付加するぞ。内部的に。

>ましてや/bbb/index.html(php)をブラウザが探しに行くわけでもない

大ウソこくな。自分で試してみろ。
258nobodyさん:2005/06/02(木) 21:11:32 ID:???
>>257
じゃまだ、寝てろ。
259初期不良:2005/06/02(木) 21:14:41 ID:???
>>257
Apache が 302 で普通に / 付きに転送してると思うが。
後者は... ネタ?
260nobodyさん:2005/06/02(木) 21:16:14 ID:???
>>257
(´-`).。oO(Location・・・)
261nobodyさん:2005/06/02(木) 21:31:05 ID:???
bbbの時は、
鯖がbbb/じゃねーの?ってレスして、
ブラウザが、じゃbbb/くれって言って、
鯖がbbb/に対応するbbb/index.htmlを返す。って感じ

この挙動(2回リクエストする)じゃ無いと問題が起きるケースがあったような。
ブラウザが相対URIの解決をする時だったかなぁ。
262256:2005/06/02(木) 22:10:37 ID:???
>>257
幸せなやつだなぁ〜。
263nobodyさん:2005/06/02(木) 22:48:10 ID:???
IEならやりかねないかもと思った俺がいた。
bbbってファイルにアクセスするときゃどうするんだろうと。
264nobodyさん:2005/06/02(木) 22:50:08 ID:Bb2Nk9Kh
すいません、index.incファイルをインクルードして読み込んでいるんですが
その際index.incファイル内の定義を別々に読み込むことは可能でしょうか?

たとえば、echoに名前を付けて
<?php
Echo 1("ここだけ読み取る1\n");
Echo 2("ここだけ読み取る2\n");
Echo 3("ここだけ読み取る3\n");
?>
っとEcho 1 Echo 2 Echo 3と名前を付けて、それをインクルードで読み込む歳に。

<?php include("index.inc"class="echo1");?>
<?php include("index.inc"class="echo2");?>
<?php include("index.inc"class="echo3");?>

っと、こんな感じで別々に読み込みたいんですが。
php全然初心者でまだよくわかってなくて、どなたかお助けください・・・orz
265nobodyさん:2005/06/02(木) 22:50:46 ID:???
IE等のブラウザが付加するのは後ろのほうじゃなくて
省略した前のほうだな
266nobodyさん:2005/06/02(木) 23:14:21 ID:???
>>264
それぞれの処理を関数にしてindex.incにまとめておき、
冒頭でrequire_once('index.inc");
必要個所で func1(); func2(); .. とかじゃ駄目なのん?
267nobodyさん:2005/06/02(木) 23:50:00 ID:???
>>261が正しい。>>262は知ったかのバカ。
268256:2005/06/02(木) 23:53:26 ID:???
>>267
ほんと、幸せ回路全開ですねw
269Imo ◆.jC7ANgFY. :2005/06/03(金) 00:14:55 ID:???
http://example.com/bbbにアクセスした場合一般的には
『HTTP/1.1 301 Moved Permanently』を返して
『Location: http://example.com/bbb/』というヘッダーを付加する。
それにしたがってブラウザはhttp://example.com/bbb/へ移動するから
二回のリクエストが起こるのですよ。

とりあえずこれ見たらいい。
http://web-sniffer.net/?url=http%3A%2F%2Fpc8.2ch.net%2Fphp
270233:2005/06/03(金) 00:27:46 ID:???
PHPプログラマーズマガジンって書店で売ってますか?
271nobodyさん:2005/06/03(金) 00:32:00 ID:???
>>269
つづき
http://example.com/bbb/をリクエストされたサーバは
http://example.com/bbb/index.html(設定によるが)を返すと。


つーかここPHPの質問スレな訳で。
272nobodyさん:2005/06/03(金) 01:10:07 ID:???
>>267
馬鹿丸出しですねえ。

ブラウザが補完するのはドメイン直後のスラッシュだけですよ、と。
273nobodyさん:2005/06/03(金) 07:53:29 ID:???
スレ違いだっつーの
274nobodyさん:2005/06/03(金) 07:59:39 ID:???
pugya-
275nobodyさん:2005/06/03(金) 09:43:23 ID:jMnj8COP
>>266
回答ありがとうございます。
調べて色々行ってみたんですが、やり方が間違っているのか全然出来ません・・・orz

初心者で申し訳ないのですが、よろしければ方法教えてください(>_<;
276nobodyさん:2005/06/03(金) 10:19:32 ID:???
>>275 >>264
とりあえずひとつのファイルをincludeしたら
そのファイル全てが読まれてしまうから一部分だけ読むこと
はできない。
ファイルを3つに分けて読み込めば希望のものになる。

全てを一旦読ませてそこだけ実行するにはfunctionを利用する。
277nobodyさん:2005/06/03(金) 18:22:13 ID:???
>>275
>調べて色々行ってみたんですが、やり方が間違っているのか全然出来ません・・・orz
とりあえず>>266を再現

---index.inc---
<?php
function func1() {echo "ここだけ読み取る1\n";}
function func2() {echo "ここだけ読み取る2\n";}
function func3() {echo "ここだけ読み取る3\n";}
?>

---インクルードする側.php---
<?php
require_once "index.inc"; // 冒頭で一発
func1(); func2(); func3(); // お好きな場所でドゾー
?>
278nobodyさん:2005/06/03(金) 19:56:31 ID:???
まずその拡張子やめれ
279nobodyさん:2005/06/03(金) 20:24:40 ID:VBKePBZt
>>278
理由を簡潔に。
280nobodyさん:2005/06/03(金) 21:05:59 ID:???
.incのせいで彼女を寝取られたっていうトラウマがあるんだよ!!
281nobodyさん:2005/06/03(金) 21:22:26 ID:???
>>279
>>278じゃないけど
・コードがそのまま表示される可能性がある。
・どうでもいいことだが、エディタの関連付けがめんどくさい。
(うちの環境だと、ダブルクリックでVS.netが開く)

あえてやるなら、hoge.inc.phpみたいにするか、
AddType application/x-httpd-php .inc
などした方がいいかと。
282nobodyさん:2005/06/03(金) 21:33:24 ID:???
.htaccess使うならデニるのが基本だろ。
283nobodyさん:2005/06/03(金) 21:43:33 ID:???
>>282
無理だろ。

此処に居る奴等の8割以上は.htaccessすら使えない。
書き込みみれば分かるけどな。
284nobodyさん:2005/06/03(金) 21:59:46 ID:???
質問しているやつのことをそこまで心配する必要ないだろ。
285nobodyさん:2005/06/03(金) 22:05:35 ID:Aav4DKSz
お世話になります。

Unicode(UTF-8)の文字列中の特定の文字(具体的にはi-modeの絵文字)を
それぞれ対応する画像に変換したいのですが、
文字の正しいコードが所得できずに難儀しています。

例えば『α』マークの場合、正しいコードは『E70C』となるはずなのですが
自分で作ったスクリプトでは『ee9c8c』となってしまいます。

正しいコードを所得する方法をご教授頂ければ幸いです。
サーバはApache/1.3.31、PHPのバージョンは4.3.8です。よろしくお願いします。
286nobodyさん:2005/06/03(金) 23:09:30 ID:???
>>277
できたんだろ?
なんかさ echo だけだったらさ

---echo.php---
<?php
$hoge1 = "ここだけ読み取る1\n";
$hoge2 = "ここだけ読み取る2\n";
$hoge3 = "ここだけ読み取る3\n";
?>

---インクルードする.php---
<?php
include_once "echo.php";
echo $hoge1;
echo $hoge2;
echo $hoge3;
?>

で十分だろ。。。 include してる意味もないがな
287nobodyさん:2005/06/03(金) 23:11:51 ID:???
288nobodyさん:2005/06/03(金) 23:13:08 ID:???
>>285
どういうコード書いたのか晒してくれ。
289nobodyさん:2005/06/03(金) 23:20:38 ID:???
>>285
UTF-16では「e70c」。UTF-8では「ee9c8c」。
290nobodyさん:2005/06/04(土) 03:27:45 ID:+GcaB5nm
すみませんPHP初心者ですが 教えてください

phpで指定されたhtmlをまるまる読み込んで html内の
指定のタグを書き換えて 出力できますか?

read文で1行読み込んで 調べてprintで出力
するしか 方法はないのでしょうか?


291nobodyさん:2005/06/04(土) 03:43:32 ID:???
>>290
まるまる読み込みたいならfile_get_contents
それとも置換方法かなんかの悩み?
292nobodyさん:2005/06/04(土) 04:11:22 ID:???
>>291
すみません PHPってメモリ確保の手続き無しで
まるまる 読めるんですね
すごいなPHP・・・・

ありがとうございました
293nobodyさん:2005/06/04(土) 05:38:46 ID:???
これだな
>注意: 文字列が非常に大きくなっても問題ありません。
>PHPに課せられる文字列 のサイズの実用上の制限はありません。
>このため、長い文字列に関して 恐れる必要は全くありません。

で、その上で質問なんだが、スクリプトを書く時、わざわざ長さを
制限する処理とか入れてる?
PHPcoreのバグの可能性とかも考慮して一応入れている場所も
あるんだけど・・・・心配し過ぎ?
294nobodyさん:2005/06/04(土) 07:40:07 ID:SiwHKpMg
PHPで画像を出力してるんですが、ブラウザが同じ画像を再取得するときに$_SERVER['HTTP_IF_MODIFIED_SINCE']も$_SERVER['HTTP_IF_NONE_MATCH']もセットされていないのですが、何か心当たりある人いますか?
更新されていない画像には304 Not Modifiedを返したいのですが、上記の理由で全く機能しません。
画像を出力する際にヘッダにETag:もLast-Modified:も入れてるし、ブラウザのリクエストヘッダにもIf-Modified-Since:やIf-None-Match:はちゃんとありました。ApacheかPHPが消してるとしか思えないのですが・・・。
Apache1.3.33 - PHP4.3.11です。よろしくお願いします。
295nobodyさん:2005/06/04(土) 07:46:06 ID:9qCVt472
EUCJPの文字コードからSJISに変換して
文字列を標示させたいのですが
うまくいきません。

$str = "はい!!よしきた!";
$str = mb_convert_encoding($str, "SJIS");
echo "$str";
よろしくお願いします。
296nobodyさん:2005/06/04(土) 08:23:32 ID:???
>>295
internal encodingはEUCになってるかい
とりあえず変換元も明示してみる
$str = mb_convert_encoding($str, "SJIS", "EUC-JP");
297nobodyさん:2005/06/04(土) 08:40:17 ID:9qCVt472
>>296
mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS
です!
errorを表示させると
Fatal error:Call to undefined function
:mb_convert_encoding() in /home/adonis/html/3.php on line 3
とでます。
<?php
$str = "はい!!よしきた!";
$str = mb_convert_encoding($str, "SJIS", "EUC-JP");
echo "$str";
?>

298nobodyさん:2005/06/04(土) 08:44:02 ID:???
>>294
セットされてないのは送られてないから
俺はお前よりApacheとPHPの方を信じる
299nobodyさん:2005/06/04(土) 08:47:29 ID:???
>>297
multibyte関数自体が使えないんじゃないかバカ
エラーでてるんなら最初に書けバカバカ
どうすれば使えるようになりますかとか質問するなよバカ
そんなこと検索すれば分かるバカバカ
300nobodyさん:2005/06/04(土) 08:51:03 ID:???
>>295
念のためエディタの保存形式もチェックしてみては?
301nobodyさん:2005/06/04(土) 10:31:18 ID:???
>>298
IEはIf-Modified-SinceもIf-None-Matchも吐き出してます。
ただ、今気づいたのですが、IEの吐いたヘッダの中にPragma: no-cacheも書いてありました。orz
もしかしたらこれが原因で$_SERVER['HTTP_IF_MODIFIED_SINCE']とかが強制的に未定義にさせられたのでしょうか?
それにしても、なぜIEはPragma: no-cacheを吐いてるのでしょうか?
通常のjpegファイルなどへのリクエストにはPragma: no-cacheは入ってないのですが。
302nobodyさん:2005/06/04(土) 10:58:05 ID:???
チョンのようにF5押したから。
303nobodyさん:2005/06/04(土) 11:04:27 ID:???
>>301
IEの要求が矛盾してることだけは判った。

良くわからないけどIEのキャッシュが変だとか。
いっぺん物理的に(ファイルシステム的に)クリアしてみては。
304nobodyさん:2005/06/04(土) 12:27:27 ID:???
>>302
あ、本当ですね。F5押さない限りはリクエストすら送らないんですね。
でもPHPではなく素のJPEGに関しては、F5を押すと同じように要求を出し、If-Modified-Since、If-None-Match、Pragma: no-cacheの3点セットがそろっているにもかかわらず、アパッチからは304 Not Modifiedが返ってきてます。
PHPの方はif (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) などに引っかからないため、否応なく200 OKを返し、ファイルの内容を出力してます。
なんとかPHPでブラウザから送られてきたIf-Modified-Sinceなどを受け取る方法はないものでしょうか?
リクエストヘッダをまるごと取得とかできないものですかね?

>>303
IEのキャッシュをクリアすると、If-Modified-SinceやIf-None-Matchを送らなくなります(当然ですが・・・)。
でもやっぱりPragma: no-cacheは送っているようです。
謎ですよね。IE・・・。
でもいくら謎でもIEユーザーが多数派なのでなんとかしたいです。
305303:2005/06/04(土) 13:18:10 ID:???
>IEのキャッシュをクリアすると、If-Modified-SinceやIf-None-Matchを送らなくなります
>でもやっぱりPragma: no-cacheは送っているようです。

ieHTTPHeaders v1.6で確認してみたが、
IE6.0.2800.1106.xpsp2.050301-1526
ではリクエストでPragma: no-cacheは送ってないけどな。
何らかのproxyが噛ましてあって、それを通ったあとのリクエストを
キャプチャして見てるってことはない?
306nobodyさん:2005/06/04(土) 13:24:02 ID:sb3TzWhw
質問させてください
他サイトのHTMLやCGI等の文字を抜き出して、PHPの引数にしたりすることは出来ますか?
307nobodyさん:2005/06/04(土) 13:26:40 ID:???
できません ><
308nobodyさん:2005/06/04(土) 13:38:31 ID:BqXj2EH6
他サイトのCGI等のフォームに文字を書き込むことは出来ますか?

例えば他ドメインの掲示板などに自分で作ったフォームから書き込んだりとか
309nobodyさん:2005/06/04(土) 13:57:38 ID:???
悪用(・A ・)イクナイ!
310スーパーハカー:2005/06/04(土) 14:07:07 ID:???
>>306 >>308 両方とも可能です。
311nobodyさん:2005/06/04(土) 14:12:41 ID:BqXj2EH6
いや、悪用じゃないんです。
何がしたいかと言うと、巡回する掲示板(同じフォーマット)をプルダウンで選択して
URLを変えずに書き込みたいんです。

ダメですか・・・
312nobodyさん:2005/06/04(土) 14:41:34 ID:???
巡回する掲示板なら巡回したときに書き込めば良いじゃない。

掲示板を見もせずにマルチポストしかけるためのスクリプトにしか見えませんが。
313nobodyさん:2005/06/04(土) 14:47:00 ID:???
>>311
本当に正当な事をやりたいのなら、
PHPで書かれてる2chブラウザ(p2)なんかを読んでみな。
ちょろっと読むには大仰だけど、読んで書き込むだけの部分は、
そんなに大きくはないのだから。
314nobodyさん:2005/06/04(土) 14:59:28 ID:BqXj2EH6
ありがとうございます。
DLしたけど、ものすごい量ですね^^;
でも、これでがんばってみます。
315314:2005/06/04(土) 15:09:48 ID:BqXj2EH6
ところで、
これってプロバイダで関数が規制されているような
316314:2005/06/04(土) 15:17:51 ID:BqXj2EH6
Unable to open remote fileって出ました(orz
これは諦めた方がよさそうですかね・・・
317nobodyさん:2005/06/04(土) 15:21:21 ID:???
もしかしてレンタルサーバか?
318nobodyさん:2005/06/04(土) 15:48:06 ID:BqXj2EH6
レンタルサーバです。
自サバでも立ててみます。
319nobodyさん:2005/06/04(土) 16:18:43 ID:???
>>316
allow_url_fopenかね。エラーが違うように思えるけど。
レンタルサーバだと、引数のチェックをしないよう作りの
クソプログラムを使われるか判らんので、使えないようにしてるかも。
利便性とのバーター。

参考にして自分で組んで見た結果なら、
SSLを使うようビルドしてないPHPでhttps、ftpを使うようビルドしてないPHPでftp、
元からサポートしてないmmsとかrtspプロトコルを指定したとか。
320285:2005/06/04(土) 18:25:34 ID:ZARj7JSX
お返事が遅くなりまして申し訳ありません。>>289さんのご指摘通り、
文字列のエンコードをUTF-8からUTF-16に変更する事で正しいコードが得られますた(´・ω・)

>>288
そんなわけで今更なのですが、自分が書いたのはこんな感じのものでした。

$str = "何か適当な文字列";

$str = unpack("C*", $str); // アン(゚Д゚)パーック!
$len = count($str); // 長さ(゚Д゚)チェーック!!
$n = 1;
while($n <= $len) {
echo $n.": ".dechex($str[$n])."<br>\n"; // コード(゚Д゚)エコー!!!
$n ++;
}

作成にあたっては以下のサイトのコードを参考にさせて頂きました。
ttp://www.sound-uz.jp/php/tips/mobile.html

お二方とも、どうもありがとうございました。
321nobodyさん:2005/06/04(土) 20:30:20 ID:+tj+PzMb
perlだと下みたいに、ヒアドキュメント中に命令文をかけますが、
PHPでは可能でしょうか?可能ならどうすればいいんでしょうか?
よろしくお願いします。

print <<"EOD";
ああああ
@{[$flag ? "true" : "false"]}
ああああ
EOD

環境:
Windows Server 2003
PHP 4.3.11
322nobodyさん:2005/06/04(土) 22:56:32 ID:en4OOD87
日本語が表示されません。

例えば
print "japanese日本語";
と書くと
「japanese」
とだけ表示されます。
「japanese日本語」と表示させるようにするにはどうしたらよいですか?

解説があるページでも良いので教えてください。
323nobodyさん:2005/06/05(日) 04:28:26 ID:???
>>322
マルチーズかよ
324nobodyさん:2005/06/05(日) 09:02:34 ID:???
ポメラニアンです
325nobodyさん:2005/06/05(日) 11:52:24 ID:fHB//NoE
XPホームエディション

Apache+php5+MySQLの導入を図っているものですが、
Apacheとphp5のインストールを終え、Apacheの再起動によるインストールの確認作業で詰まりました。

Apacheのインストール後に、http://localhost/で確認ページはでたのですが
php5の設定後にhttp://localhost/test.phpを見ようとしたのですが、表示されません。

システム管理のサービス画面からApacheの再起動を促したのですが、
起動させても、すぐにサービス停止のメッセージボックスが表示されて停止状態になります。

手動設定にしても停止してしまいます。

tp://allabout.co.jp/career/database/closeup/CU20040928A/index.htm

このページを見て設定したのですが、何が悪いのかわかりません
おそらく私の設定が悪いのかPCが悪いのか私の頭が悪いのかの
どこかに理由あることはわかりますが、上手く動作しません。


326nobodyさん:2005/06/05(日) 12:05:21 ID:???
>>325
エラーログを見たら?
327nobodyさん:2005/06/05(日) 12:18:37 ID:fHB//NoE
なにも書かれていませんでした
328nobodyさん:2005/06/05(日) 12:19:40 ID:WUf4gILF
質問です。フレームで上下に分けているページで

上のフレーム
print "<FORM name=form1 method=POST target=bottom action=$PHP_SELF?mode=output ";
print "<INPUT TYPE=TEXT NAME=comment SIZE=50><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信>\n";

上のフレームで↑のように「送信」を押した時に、outputの処理をさせつつ、下のフレームが別のウェブページが表示されるようにするにはどうしたらよいですか?

例えば、「送信」を押す前は下のページはYAHOOのページ。「送信」を押した後の下のページはGOO。

「画面」
上フレーム
  【送信】
----------------
下フレーム
  YAHOOページ

 ↓

【送信】ボタンを押す

 ↓
「output」の処理

「画面」
上フレーム
  【送信】
----------------
下フレーム
  GOOページ
329nobodyさん:2005/06/05(日) 12:33:23 ID:???
>>327
ログには出ないパターンかもな。

php.ini-distをphp.iniにして書き直せと解説されてるけど、
取りあえずphp.iniが無い(コピーしない)状態でApacheを起動してみな。
php.ini内の記述が問題かどうかの確認。
駄目なら、httpd.confのphp絡みの記述の問題。

330nobodyさん:2005/06/05(日) 12:33:52 ID:???
スレ違い

ヒント:JavaScript
331nobodyさん:2005/06/05(日) 12:35:50 ID:???
>>328
手っ取り早く、header("Location: 〜");だけ出力して飛ばしたらいいんでないの?
332nobodyさん:2005/06/05(日) 12:42:18 ID:???
自分のプロバイダには最初から日本語が使用できるようになってるから仕組みはわからないけど、
php.iniを書き換えるだけで、PHPのプログラムでかかれたものに日本語も認識出来るようになるの?
333332:2005/06/05(日) 12:44:07 ID:???
ごめん332はスレ違いでした。無視して
334nobodyさん:2005/06/05(日) 12:44:49 ID:fHB//NoE
>>329
やってみます
ありがとうございます
335328:2005/06/05(日) 12:57:04 ID:WUf4gILF
みなさん、お答えいただいてありがとございます。質問がちょっと違ってました。ごめんなさい。

上のフレーム
print "<FORM name=form1 method=POST target=up action=$PHP_SELF ";
print "<INPUT TYPE=TEXT NAME=comment SIZE=50><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信>\n";

上のフレームで↑のように「送信」を押した時に、上の画面を別の画面を更新させつつ、
下のフレームが別のページが表示されるようにするにはどうしたらよいですか?

例えば、「送信」を押す前は下のページはYAHOOのページ。「送信」を押した後の下のページはGOO。

「画面」
上フレーム
 画面A【送信】
----------------
下フレーム
  YAHOOページ

 ↓

【送信】ボタンを押す

 ↓
「output」の処理

「画面」
上フレーム
 画面B
----------------
下フレーム
  GOOページ
336nobodyさん:2005/06/05(日) 13:00:12 ID:???
>>335
だからJavaScriptだって。
337328:2005/06/05(日) 13:17:57 ID:WUf4gILF
お答えありがとうございます。

JavaScriptをOffにされた時はどうしましょう?
338nobodyさん:2005/06/05(日) 13:23:15 ID:???
>>337
phpでやりたいのか?
<frame>…を書いているphpに、POSTデータを送る。
送られたPOSTデータによって、上下フレームのsrcをphpで変更。
339nobodyさん:2005/06/05(日) 13:23:45 ID:???
>>337
動く訳が無い。
JavaScriptをOnにさせないと正常に動作しない旨を明記する。

それか、構造自体を変えるしかない。
つまり1画面にする。

携帯用とPC用のページを作るのと同じように、JavaScriptのON/OFFによって
表示させるページを変えるとかね。
340nobodyさん:2005/06/05(日) 14:11:36 ID:???
>>338
スレタイ嫁
341nobodyさん:2005/06/05(日) 14:21:38 ID:???
>>340
(どうしても)phpでやりたいのか?って意味だったんだけどね。
まぁ、良いけどさ…
342nobodyさん:2005/06/05(日) 15:34:20 ID:lYJETCr8
>>321
どなたもご存知ないでしょうか。
申し訳ないですが、別の場所にもマルチさせてもらいます。
343nobodyさん:2005/06/05(日) 15:42:12 ID:???
不可能です。
344Imo ◆.jC7ANgFY. :2005/06/05(日) 17:03:23 ID:???
>>342
ヒアドキュメントとは違うけど
?>
ああああ
<?=$flag?"true":"false"?>
ああああ
<?
345nobodyさん:2005/06/05(日) 18:34:59 ID:???
マルチは放置
346nobodyさん:2005/06/05(日) 19:55:55 ID:bZeUemJD
PHP(4.3)で
WEB上でメールアカウントの発行を行いたいと考えておりますが、
どのような関数を使ったらよいのかわかりません・・
ヒントだけでももらえませんでしょうか?

今は
PHP

データベース

手動メルアカ発行 ←この部分を自動化したいのですが・・
347nobodyさん:2005/06/05(日) 20:07:58 ID:???
>>346
コマンドラインからメールアカウントを発行する時のコマンドを、
system()とかのプログラム実行関数で実行する。
348nobodyさん:2005/06/05(日) 20:40:24 ID:sNIsIaeC
OS X(Tiger)のApache/1.3.33にPHP5.0.4を入れてローカルで動かしています。

UTF-16で保存したPHPスクリプトを実行しようとすると
何故か<?php〜?>の部分がそのまま出力されてしまうのですが、
これはPHPの仕様によるものでしょうか?
それとも当方のPHPの設定によるものでしょうか?

同様のスクリプトをUTF-8やEUCで保存した場合はすんなり動きます。
PHPはUTF-8もUTF-16も問題なく扱えるものと思っていたのですが、
UTF-16でコードされたPHPスクリプトを動作させる方法等、
ご存じの方が居られましたら何卒ご教授頂けますようよろしくお願い申し上げますm(__)m
349nobodyさん:2005/06/05(日) 20:50:37 ID:???
>>348
そんな方法など無い。
UTF-16は全ての文字を2バイトで表現し、PHPのパーサはそれを解釈できない。

入出力のエンコーディングにUTF-16を使うことは可能。
350nobodyさん:2005/06/05(日) 22:09:44 ID:fHB//NoE
>>329
記述が間違ってました
ありがとうございます
351348:2005/06/06(月) 00:35:39 ID:???
>>349
ぐはあ、2バイトだからか…orz
近い将来対応される事を祈りつつUTF-8で行く事にします。

どうもありがとうございました。
352nobodyさん:2005/06/06(月) 11:13:53 ID:???
>>346
メールアカウントをそのデータベースで管理すれば
データベースに追加=メールアカウント発行となる。
データベース認証と連携できるSMTP/POPサーバを探してみ。
353nobodyさん:2005/06/06(月) 11:15:32 ID:???
>>351
シングルバイト圏のマルチバイト対応のスタンスを知れば
そんなのは甘い幻想だということが判る。
待ってても辛いぞ。
354nobodyさん:2005/06/06(月) 12:21:14 ID:???
>>353
日本の開発者が頑張ってマルチバイトに対応させてきたのを蔑ろにするかのように
mb_*関数をiconv_*関数でリプレースさせようとしてる連中だからな〜。

かといって日本人がメインでやってるRubyは書式が好かん。
LLとしてはPHPがいちばん性に合うんだよなぁ。

Tickで茶を濁すんじゃなくてユーザレベルスレッドが欲しいとか
ネイティブにイベントドリブンなプログラムが書きたいとか
欲を言えばきりがないけど。
355nobodyさん:2005/06/06(月) 13:02:47 ID:6gysl0iC
>>347
ありがとうございますた。
鯖でCpanelを使っていたので、そこから発行している
コマンドがわかれば使えるかなと思って、調べていたら、
そのまんまクラスが落ちてましたw

>>352
噂には聞いた事ありますが、sudoとかmtaとか
サバーにも詳しくならないといけないなと思いますた
356nobodyさん:2005/06/06(月) 18:40:19 ID:AU1ko05N
htmlページを解析して名詞単語をキーワード抽出するようなcgiを作りたいのですが
資料がなく、アルゴリズムもイメージできません。辞書ファイルなど作って一致したものを抽出させるのでしょうか?
なにか助言ください。
357nobodyさん:2005/06/06(月) 18:53:53 ID:???
つ [ 形態素解析 ]
358nobodyさん:2005/06/06(月) 18:57:23 ID:???
>>356じゃないけど
PHPから茶筅とかを使う例とかはあるけど、PHPのみで形態素解析してる例ってあるのかな?
359nobodyさん:2005/06/06(月) 20:32:12 ID:cu+btNTG
当日の曜日と時刻が
ある曜日の時刻からある曜日の時刻の範囲内であるかどうかを
チェックするには
どのようなコーディングをすればよろしいでしょうか。
多分、機能の実現自体は出来ると思うのですが、
いかに綺麗なプログラムで実装するかという意味では
こちらで識者の意見を仰いだほうがよいと思ったので
質問させていただきました。

よろしくお願いします。
360nobodyさん:2005/06/06(月) 20:50:23 ID:???
>>359
ある曜日と時刻という意味が良く判らんが、ある日時の範囲内という意味なら
以下でいいんでないかい。外してたらスマソ。

$start = '2005/06/06 00:00:00';
$end = '2005/06/06 23:59:59';

$between = (time() >= strtotime($start) && time() <= strtotime($end));

if ($between)
 echo '範囲内';
else
 echo '範囲外';
361359:2005/06/06(月) 21:01:59 ID:???
>>360
レスありがとうございます。
何故「ある曜日と時刻」かと申しますと、
1週間の中で曜日と時刻で変化するパラメータを設けたいのです。

なので、ある日時の範囲ではなく
ある曜日と時刻からある曜日の時刻の範囲内で在るかを
見ていきたいというわけなのです。

362nobodyさん:2005/06/06(月) 21:21:50 ID:7fi2eBpp
webサービスなどで自動更新される
(株価やランキングの数値など)ものを
IFRAMEを使わずに表示するには
どうしたらできるでしょうか?
表にその数値を入れたいので、レイアウトがくずれないようにしたいからです。
phpでできるようなことを聞きました
助言おねがいします
363nobodyさん:2005/06/06(月) 21:26:01 ID:???
>>362
自動更新されるデータをとってきて変数にいれて、
表の中で表示すればいいだけじゃん。
364nobodyさん:2005/06/06(月) 21:32:14 ID:???
>>362
あとはjavaかなんかで自動でリロードさせれば完璧(´・ω・`)b
365nobodyさん:2005/06/06(月) 21:54:33 ID:???
>>361
function in_the_range()
{
  $today = to_seconds(date('D'), date('H'), date('i'), date('s'));
  $from = to_seconds(3, 12, 0, 0); // 水曜日12時
  $to = to_seconds(5, 18, 30, 0); // 金曜日18時30分
    // 曜日は 0 が日曜日 - 必要に応じて調整して。引数にするもよし。
  $gap1 = $today - $from;
  if ($gap1 < 0) $gap1 += 604800;
  $gap2 = $to - $today;
  if ($gap2 < 0) $gap2 += 604800;
  return ($gap1 + $gap2 < 604800);
}
function to_seconds($d, $h, $m, $s)
{
  return $d * 86400 + $h * 3600 + $m * 60 + $s;
}
366nobodyさん:2005/06/06(月) 22:13:08 ID:???
>>362
IFRAMEを使わずにってことはブラウザ側でも一定間隔で自動更新したいって意味?
それだったらXMLとかの形でJavaScriptで定期的にロードすればそのまま整形できるし(スレ違いだけど)ページ全体を更新する必要もない。
別にブラウザ側で自動更新しなくていいなら>>363の方向で。
>>364はよーわからん。
367362:2005/06/06(月) 22:48:00 ID:7fi2eBpp
遅くなってすみません
>>363
cgiやperlはやったことがありますが、phpは
ないので、今のところできません
>>364
24時間に一回更新すればそれでいいです。
>>366
とりあえずやってみます。
368362:2005/06/06(月) 22:54:40 ID:7fi2eBpp
>>363
自動更新されるデータはxmlなのですが
htmlの中のtableの中にどうやって組み込むのですか?
369nobodyさん:2005/06/06(月) 23:11:32 ID:???
>>368
パースして適当に表にする
370362:2005/06/06(月) 23:47:41 ID:7fi2eBpp
>>369
具体的に、
http://xml-jp.amznxslt.com/onca/xml3?t=miseinennnoka-22&dev-t=1AMVZMZT2SZPSET21J82&AsinSearch=4797314133&type=heavy&locale=jp&f=xml
の32行目の<SalesRank>25,200</SalesRank>をhtmlのページに表示するには
どうすればいいのですか?
371nobodyさん:2005/06/06(月) 23:49:51 ID:???
>>368
Javascript(XMLHttpRequest) + DOM + DHTML
372nobodyさん:2005/06/06(月) 23:56:14 ID:???
>>371
Ajax?
373nobodyさん:2005/06/07(火) 00:39:29 ID:???
フォームの処理に関して質問です。
下記のような流れの登録フォームがあったとします。

(1)IDとパスワード入力 ↓
(2)個人情報入力 ↓
(3)アンケート回答 ↓
(4)内容確認 ↓
(5)登録完了

formのactionをpostにしていると、IEでは3の時にブラウザの
「戻る」を押した時にエラーになります。(セッションエラー?)

これを解消するにはどうしたらいいのでしょうか?
GETにするしかないのでしょうか?
374362:2005/06/07(火) 01:36:45 ID:3zfTLLTt
>>371
Javascript(XMLHttpRequest) + DOM + DHTML 

はどうやるのですか?
簡単でしたら下のを作ってくださいです。。。
http://xml-jp.amznxslt.com/onca/xml3?t=miseinennnoka-22&dev-t=1AMVZMZT2SZPSET21J82&AsinSearch=4797314133&type=heavy&locale=jp&f=xml
の32行目の<SalesRank>25,200</SalesRank>をhtmlのページに表示
375nobodyさん:2005/06/07(火) 02:17:18 ID:???
>>374
ここのスレタイを読むべし。
376nobodyさん:2005/06/07(火) 04:34:51 ID:???
>>372
そだね。

>>374
「Ajax」とか「XMLHttpRequest」でぐぐれ。
377361:2005/06/07(火) 08:27:51 ID:umy9na94
>>365
どうもありがとうございます!
参考にさせていただきます。
378nobodyさん:2005/06/07(火) 09:32:47 ID:???
>>373
Post時、情報を2重送信しないためのIEの仕様。掲示板とかでも出るから試してみ。更新を押すと見れるはず。
379nobodyさん:2005/06/07(火) 16:02:52 ID:jA26TwdA
質問です。
PHPでWebサイトの製作を計画しているのですが
ページのリンクにより
 @PHP→AHTML→BPHP
と遷移した場合、@のPHPで作られたセッション情報というのは
BのPHPでも参照できるのでしょうか?

よろしくおねがいします。
380nobodyさん:2005/06/07(火) 16:04:47 ID:???
>>379
やってみればいいじゃん。

1のPHPでセッションに何か情報記録しておいて、
3のPHPで表示できるかどうか。
381nobodyさん:2005/06/07(火) 16:17:19 ID:???
この質問に関しては、実験しても正しい考察が得られるとは限らないような。
いや、htmlやhttpの知識があってマニュアルをよく見ていれば、質問する必要すらないんだけどね。

セッションの実装には、cookieとURL埋め込みの2種類があって、
URL埋め込みの場合は(2)の部分でセッションが切断される。
cookieとURLのどっちが使われるかは、鯖の設定とブラウザの設定に左右される。
よって、参照できる時もあれば、参照できない時もあらーな。
382nobodyさん:2005/06/07(火) 16:54:29 ID:jA26TwdA
>>381
PHPはやったことがないというか。いまから開発環境の選定をしている
最中でして・・・・・
Javaで作るServletコンテナの場合は、
 @JAVA→AHTML→BJAVA で引き継ぐことがてきたので
PHPの場合はどうか質問してみましたのよ。
まあ、よく考えればPHPは所詮CGIなのでできないはずですね。
失礼ー。
383nobodyさん:2005/06/07(火) 17:01:56 ID:???
>>382
>PHPはやったことがないというか。いまから開発環境の選定をしている
>最中でして・・・・・

自分の使ってるパソコンにでもインストールしてテストすれば良いじゃないか?
インターネットで調べながらでも2,3時間もあれば初心者でも十分過ぎる。

>まあ、よく考えればPHPは所詮CGIなのでできないはずですね。
PHPが分かってない。
そして、結果的に言えば出来る。
384nobodyさん:2005/06/07(火) 17:06:10 ID:kfATXNgN
>>382
一時的にDBにセッション情報を保存しておけば出来るじゃん。
385nobodyさん:2005/06/07(火) 17:17:18 ID:???
>>382
PHPであろうとJavaであろうとセッション保持の仕組みそのものはたいして変わらない。

>まあ、よく考えればPHPは所詮CGIなのでできないはずですね。
セッションの仕組みを理解していないのに、CGIだからという理由で結論を出すのは浅はか過ぎる。
そもそもPHPはCGI版と共有オブジェクト版があるわけで。

しかも、>381には
>いや、htmlやhttpの知識があってマニュアルをよく見ていれば、質問する必要すらないんだけどね。
って書いてあるんだが。



スマン、ストレスがたまってるみたいだ。
386nobodyさん:2005/06/07(火) 17:38:48 ID:jA26TwdA
>>383,385

>>384は論外として
誘導尋問のつもりは無かったのですが
おかげさまで必要な情報が取れました。

これで実現に向けてGOをかけれます。


ありがと。
387nobodyさん:2005/06/07(火) 20:59:44 ID:???
>>382
>PHPは所詮CGIなのでできないはずですね

バカじゃねーの?こいつ。
知ったかぶってるけど基本が分かってないな。
388nobodyさん:2005/06/07(火) 21:03:38 ID:???
というか、なぜ>>384が論外なのかわからん。
むしろ王道だろうに。
389nobodyさん:2005/06/07(火) 21:03:42 ID:kfATXNgN
>>386
GOをかける前にセッションの勉強したほうがいいよ、キミ。
あとクッキーの勉強もな。

他人に質問しといて「論外として」はないだろう。
見てて不愉快だ。
390nobodyさん:2005/06/07(火) 21:21:45 ID:???
386ではないが、>>384は解決方法にならなくない?
再認証するなら使えるけど、クッキーオフだとセッション切れちゃうよね。
クッキー使う事前提ならDBに保存する必要はないわけだし。
(別に最初からDBでセッション管理してもいいけど)
391nobodyさん:2005/06/07(火) 21:29:25 ID:???
>>390
388だけど、384の趣旨はセッション管理にDBを使うということと読んでた。
でも読み返すと微妙な気がするなあ。

どのみちPHP以外の言語と連携するならセッション情報のシリアライズに
serialize()関数の代わりにwddx_serialize_vars()を使うとか、
セッション自体を独自に実装するとか、ちょっとした工夫は必要だけど。
392カポコン:2005/06/07(火) 22:31:37 ID:???
うーむ自作スクリプトって難しいな。
UNIXで使う場合の変換とか頭がこんがらがってしまう。
何か良いネタ無いかプリーズ。
393nobodyさん:2005/06/07(火) 23:08:20 ID:???
>>392
詳しく
394nobodyさん:2005/06/07(火) 23:14:14 ID:???
質問です。
$a = new A();
class A {
 var hoge;
 function get() {
  print $this->hoge;
 }
}
これで$a->get()してもhogeの内容が取得できません。hogeにはコンストラクラで文字列を代入しています。
何がおかしいですか?
395nobodyさん:2005/06/07(火) 23:16:51 ID:???
>>389
てっきり悪意あるガセネタかと思いました。
「論外」は撤回します。
396nobodyさん:2005/06/07(火) 23:22:50 ID:???
>>394
var hogeは var $hoge の間違いだとして、
上記のコードにコンストラクタで代入と$a->get()を付け足せば、きちんと動作したよ。
397nobodyさん:2005/06/07(火) 23:23:22 ID:???
>>392
いったい何を「変換」するつもりだ??
398nobodyさん:2005/06/07(火) 23:32:32 ID:???
>>394
なんで、そのコンストラクラとやらを省略するんだ
399nobodyさん:2005/06/08(水) 00:10:47 ID:???
>>396>>398
情報小出し失礼しました
class commonClass {
var $mysqlHost;
function commonClass() {
$mysqlHost = 'localhost';
}
function get() {
print $this->mysqlHost;
}
}
$a = new commonClass();
print $a->get();
やはり何も出てきません。。
400nobodyさん:2005/06/08(水) 00:14:27 ID:???
>>399
>$mysqlHost = 'localhost';
ローカル変数に代入してる件について。
それとな、
function get() {
print $this->mysqlHost;
}
getterの中でprintキモス。
401nobodyさん:2005/06/08(水) 00:20:11 ID:???
>ローカル変数に代入してる件について。
あっそれでした!ありがとうございました!
# getterの中でprintは編集時のミスでした
402nobodyさん:2005/06/08(水) 00:53:20 ID:aX6bI7hV
画像掲示板、- Joyful Note -- php resize を使ってます。
糞鯖ぶっとびで利用してるのですが、
どうも画像のUPがおかしいのです。

というのは、UPできないJPGがあるのです。
いろいろ試した結果、Exif情報が埋め込まれたJPGで起こるようです。
エラーは「500 Internal Server Error」が出ます。

他の鯖(x-beatやpc1)ではこういう現象は起こらなかったのですが、
なぜなんでしょう???
鯖側がなにかJPGをチェックしているのでしょうか?
それとも鯖のPHPがよくないのでしょうかね?

よろしくお願いいたします。
403nobodyさん:2005/06/08(水) 00:59:10 ID:???
>>402
そういう質問は配布元周りで聞いたほうが早いと思うが。
404402:2005/06/08(水) 01:15:00 ID:aX6bI7hV
>>403
そうですね。
ただ、問題がどこにあるのかが分からないので、
推測でも構いませんので、おかしいなと思えるような点を
明示していただければ助かります。
405nobodyさん:2005/06/08(水) 01:37:40 ID:???
>>404
その画像掲示板スクリプトを全く知らないんだけど、
resize処理しているのが自力なのかGDを使っているのかわからないが、
他の鯖で動くのなら、GDライブラリを使っているってことかなぁ。
で、phpinfo()が使えるのならGDライブラリのバージョンを見比べてみるとか。

他には、Exif情報の埋め込まれた小さな画像で試してみて、
鯖に負荷を与えないようにしてみるとか。負荷がかかりすぎて
エラー扱いになっているかもしれんし。

以上、推測、憶測、ほんまにてきとー。
406nobodyさん:2005/06/08(水) 12:02:03 ID:???
407nobodyさん:2005/06/08(水) 12:02:38 ID:???
408402:2005/06/08(水) 19:58:06 ID:???
>>40
リサイズはGDバージョンです。
GDの1、2の設定があったのですが、両方試してもダメでした。
容量は指定以下でやってますので、関係ないようです。

他の鯖で問題ないようなんで、「ぶっとび」はやめますわ。
PHPがダメならとCGIにしてみたけど、rejpegとか働かないみたいだし、
どうもぶっとびはぶっとんでる感じでした。
409nobodyさん:2005/06/08(水) 22:17:50 ID:???
>>408
WebProg板であってWeb制作板でもレンタル鯖板でもないんだが。
410nobodyさん:2005/06/09(木) 00:05:08 ID:???
FormからPOSTするのではなく、PHPからPOSTでデータ送信&データ取得したいのですが
やり方を教えてください。
411nobodyさん:2005/06/09(木) 00:18:42 ID:???
つ [ ソケット関数、RFC2616 ]
412nobodyさん:2005/06/09(木) 00:51:26 ID:???
・ソケット関数を使ってHTTPプロトコルを自分でおしゃべりする。
・cURL関数を使う
・PEARのHTTPエージェント(だっけ?)ライブラリを使う。
413nobodyさん:2005/06/09(木) 14:58:57 ID:RW1olHwC
サーバー上に白紙の.cgiを作成するにはどうすればよあですか
414nobodyさん:2005/06/09(木) 15:04:40 ID:???
>>413
詳しく。
つーか、cgiってperlの事じゃないよね?
415nobodyさん:2005/06/09(木) 15:08:57 ID:yRdQnuIC
パールじゃなしに、形式です。
fopenでファイル名を指定すればコードwで自動作成されるのかな?
416nobodyさん:2005/06/09(木) 15:11:42 ID:???
>>415
意味わかんね。
白紙の.cgiってなんだよ。
単にxxxx.cgiって名前の空のファイルってことか?
417nobodyさん:2005/06/09(木) 15:17:20 ID:Ni6QuDwq
そういうこと
418nobodyさん:2005/06/09(木) 15:17:55 ID:Ni6QuDwq
そゆこと
419nobodyさん:2005/06/09(木) 15:40:42 ID:???
>>417
touchすりゃいいじゃん。
420nobodyさん:2005/06/09(木) 17:08:52 ID:yZsyb8/9
えっち?
421nobodyさん:2005/06/09(木) 17:24:05 ID:???
おっねがいっ、タッチ、タッチ、そこにタッチ♪
422nobodyさん:2005/06/09(木) 17:24:51 ID:???
あなたから〜♪
423nobodyさん:2005/06/09(木) 17:37:57 ID:???
呼吸を止めて千秒、貴方死んでる目をしたから〜♪
424nobodyさん:2005/06/09(木) 17:57:28 ID:???
そういうスレだったのか。
425nobodyさん:2005/06/09(木) 19:23:06 ID:zoe0L2G9
僕は初心者です。プログラマになりたくて本のソースをそのまま
のしたHPを紹介して今の会社おとついはいりました。
いきなり検索システムをつくってくだささいといわれまったくなにを
したらいいかわかりません・・・・どうなってるといわても
すみません設定がまだといいつつ二日になりました・・・
もう言い訳できそうにありません・・検索システムって初心者の
僕がつくるにはどうしたらいいでしょうか?
PHPの文法もまったくわかりません・・・
どこかにまるまるコピできるやつで短めで簡単ぽいのおしえてください
お願いしますTT
426nobodyさん:2005/06/09(木) 19:27:17 ID:???
僕も初心者です。プログラマになりたくて本のソースをそのまま
のしたHPを紹介して今の会社おとついはいりました。
いきなり検索システムをつくってくだささいといわれまったくなにを
したらいいかわかりません・・・・どうなってるといわても
すみません設定がまだといいつつ二日になりました・・・
もう言い訳できそうにありません・・検索システムって初心者の
僕がつくるにはどうしたらいいでしょうか?
PHPの文法もまったくわかりません・・・
どこかにまるまるコピできるやつで短めで簡単ぽいのおしえてください
お願いしますTT
427nobodyさん:2005/06/09(木) 19:36:01 ID:???
北緯東経を各変数に収納しようと思って

$point = $_GET['pos'];
$word1 = array("N","E");
$word2 = array(".",".");
$point = str_replace($word1,$word2,$point);
list($dummy,$N1,$N2,$N3,$N4,$E1,$E2,$E3,$E4) = split( ".",$point);

という文を組み立てたんだが
ハイラねえ(´A`;)
$point = str_replace($word1,$word2,$point);
の時点で
.32.29.77.366.134.85.11.384
が$pointに格納されていたんだが
list($dummy,$N1,$N2,$N3,$N4,$E1,$E2,$E3,$E4) = split( ".",$point);
で各変数に格納できない・・・
なぜだ・・・

>>426
釣りか?
428nobodyさん:2005/06/09(木) 19:47:11 ID:???
>>427
多分、想いっきり勘違いしてる
↓splitのマニュアル
>pattern は正規表現であることに注意して下さ い。

explodeを使うべきかと
429nobodyさん:2005/06/09(木) 19:51:05 ID:???
>>427
split( string regex, string source )
正規表現で . は任意の文字列。つまり全てにマッチしてる。
explode() のが動作早いし目的に合ってるからそっち使え。
430427:2005/06/09(木) 19:59:43 ID:???
うは、サンクス!
正常に動いたよ(・∀・)b
431自動返信:2005/06/09(木) 21:58:57 ID:jH9aJbMC
Fedora3 PHP4 APACHE2 Postfix Dovecotの環境でWEBプログラミング勉強中です。
ユーザーに空メールをおくってもらい、そのメールアドレスをとりだしデータベースに登
録するというサンプルを作りたいんですがどうしたらいいでしょうか?
qmailだとメールが届いたら特定のスクリプトを実行というものがあるようですが、今の
Postfix+Dovecotの環境でメールが届いたらデータベース登録のPHPスクリプトを読み出
すという形にしたく悩んでいます。
PostfixはMaildir/形式にしてあります。
最終手段として定期的に/home/(user)/Maildir/の中をチェックという方法しかないかと
思っていますがもし何か解決策ご存知でしたら教えてください。
PHPとは直接は関係ないかもしれませんが、メールを受信したかどうかをどう取得するか。
432nobodyさん:2005/06/09(木) 22:05:40 ID:???
>>431
/etc/aliasesに
hoge: "/path/to/php -f hoge.php"
で、ええんちゃうの?
433nobodyさん:2005/06/09(木) 22:06:43 ID:???
ゴメソ
hoge: "| /path/to/php -f hoge.php"
ね。
434(3-1):2005/06/09(木) 22:36:09 ID:???
参考書をそのまま打ち込んでますが
思う動作をしてくれなくて困ってます。
何か手がかりを教えて下さい。

uploader.html

<html>
<head>
<title>File Uploade</title>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
</head>
<body>
<form method="post" enctype="multipart/form-data" action="uploader.php">
<input type ="file" name="upfile">
<input type ="submit" value="uploadする">
</form>
</body>
</head>
435(3-2):2005/06/09(木) 22:36:47 ID:???
uploader.php

<html>
<head>
<title>File Uploarder</title>
<META http-equiv="Content-Type" content="text/html; charset=x-sjis">
</head>
<body>
<p> file uploader </p>
<?php
$updir = "./upload/";
$filename = $_FILES['upfile']['name'];
if (move_uploaded_file($_FILES['upfile']['tmp_name'],$updir.$filename) == FALSE){
print("Upload failed...");
print($_FILES['upfile']['error']);
}else {
print("<b>" . $filename . "</b> uploaded!");
}
?>
</body>
</html>
436自動返信:2005/06/09(木) 22:37:42 ID:jH9aJbMC
>432
ありがとうございます!
↓参考にして調べたところこんな情報ページがありました
http://www.itmedia.co.jp/help/tips/linux/l0349.html

もう少し勉強して実験してみますね!
437(3-3):2005/06/09(木) 22:39:26 ID:???
以上のソースを打ち込み
適当にファイルを選択後送信してみても

file uploader

Upload failed...

だけしか表示されず旨くいきません。

自分の環境はローカルでPHPをテストする為だけの環境なので
WindowsXP+Xamppです。
438nobodyさん:2005/06/09(木) 22:43:47 ID:???
>>437

確信は無し
>$updir = "./upload/";
    ↓
>$updir = "./upload";

439(3-3):2005/06/09(木) 22:47:36 ID:???
>>438
ありがとうです。
でも結果は変わらずでした。

打ち間違いは無いと思うのですが(何度も確認したので)
参考書の誤字か、私の環境が悪いのかと疑っています
ソース的には問題はないのでしょうか?
440nobodyさん:2005/06/09(木) 22:57:08 ID:???
>>439
uploader.phpと同じところに「upload」というディレクトリはあるんだな?
441(3-3):2005/06/09(木) 22:59:02 ID:???
>>440
もちろんです。

ただ、環境はWindowsですのでアクセス権の設定はしていません。(出来ないのかな?)
それが問題でしょうか?
442nobodyさん:2005/06/09(木) 23:11:01 ID:???
>>437
スクリプト的には問題なさそうだから
error_reporting(E_ALL);
をuploader.phpの<?phpの次の行に追加してみたら。
443nobodyさん:2005/06/09(木) 23:19:42 ID:???
ただファイルを何もうpしてないだけだったりして
444(3-3):2005/06/09(木) 23:20:32 ID:???
>442
むむ!?
なにやら沢山出てきました。
グーグル先生に聞いてきます。

みなさん有難うございました。

file uploader


Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 11

Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 12
Upload failed...
Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 14
445nobodyさん:2005/06/09(木) 23:21:25 ID:???
誰かZend Studio 4.0日本語版使ってる人いない?
買おうかどうか悩んでるんだけど、レビューしてる人見かけないし・・・。
地雷かな?
Eclipseもいいけど、色んなの使ってみたいなとも思ってて。
446nobodyさん:2005/06/09(木) 23:37:17 ID:???
>>445
人柱乙(*´∀`)
見た感じは良さそうだけどなぁ。
447nobodyさん:2005/06/09(木) 23:46:51 ID:???
>>445
よほど大規模な開発にはよさげだけどね
でもかなりの部分はEclipseでも賄えちゃうしなあ
俺はまず使うこと無いな
448自動返信:2005/06/10(金) 00:08:58 ID:gLWzFcyI
/etc/aliasesでroot:"/usr/bin/php /home/sample.php"のようにしてroot宛にメールがきたらsample.phpを実行するという環境にしました。
これは成功したんですけど、送信されてきたメールアドレスをこのPHPスクリプトに渡したいんですが、まずメールアドレスの取得方法は何かありませんか?
449nobodyさん:2005/06/10(金) 00:52:21 ID:???
>>448
ぉぃぉぃ。
qmailだと実行できるとか、Maildir/を見るしかないとかを>>431で書いておきながら、
実は何も知りませんてか。
エンベローブFromは取れないが、Mailヘッダも含めて標準入力から来てるだろ。
450自動返信:2005/06/10(金) 00:58:44 ID:gLWzFcyI
>449
すみません…そのとおり何も知らないんでどうしようもなく質問させていただきました。
qmailだと実行できるというのはそういう一言情報が調べたときにありましたが、という意味で書きました。
Maildir/については、メール内容などがどういう風に書き込まれてるかを調べていけば読み出すことでできるかもしれないという自分なりの考えを述べたつもりです。
こんな/etc/aliasesというものをまったく知らなかったので。
標準入力からきているというヒントでも正直よくわかりません…。
どこでどう取得すればいいんでしょうか?
451nobodyさん:2005/06/10(金) 01:08:30 ID:???
>>450
$mail = file_get_contents('php://stdin');
これで、メールの内容(ヘッダ込)が全て$mailに入るから、
適当なファイルに書き出して、どのような中身になっているか見てみるがいい。

後は、マニュアルのmailparse関数等を参考に。
452nobodyさん:2005/06/10(金) 01:13:11 ID:???
追記つーか補間
mailparse関数を使えって意味じゃなくて、そこに書いてある内容を参考にって意味だったんだが、
何も書いてないよなw
RFC822とか、その他いろいろググってってことで。
453自動返信:2005/06/10(金) 01:44:05 ID:gLWzFcyI
>451
ありがとうございます。
PHPのCLI版はさっきいれたところで、このような形で標準入力を取得できるとは知りませんでした。
標準入力を取得し、それをファイルに書き出すまでは成功してるんですが、いざ、メールの内容取得となると取得できていません。
現時点まででしたことをまとめると
/etc/aliasesにroot:"|/usr/bin/php /home/sample.php"を追記
/home/sample.phpに以下のコードを記述
$mail = file_get_contents("php://stdin");
$fp = fopen("mailh.txt","w");
fwrite($fp,$mail);
fclose($fp);

まだ何か勘違いしているのでしょうか?
RFC822の情報はありがとうございます。
メールヘッダの形式もあいまいだったのでこの機会に習得しておきたいと思います。
454nobodyさん:2005/06/10(金) 01:45:52 ID:???
>>453
newaliasesは実行したか。
で、俺はもう寝るぞ。
455nobodyさん:2005/06/10(金) 01:53:30 ID:???
>>445
一度も使ったことがないなら、登録してFree Evaluation(英語版)で試してみなよ。
バージョンが上がる度に良くなってる点は評価できるけど、
Java使ってて動作がもっさりだなと思わないこともない。Eclipseもいっしょだが。
まあ、今時のマシンだと気にするほどじゃないけどね。
456自動返信:2005/06/10(金) 01:54:08 ID:gLWzFcyI
はい、newaliasesはきちんとしているのですが…。
遅くまですみません、でも何か解決策が見えると思います。
がんばってみます。
昼4時から取り組んで悩んでいたので解決に光が見えてきて本当に嬉しいです。
本当にありがとうございます。
自分もこういう質問に答えられるくらいになるようもっと勉強します。
457自動返信:2005/06/10(金) 02:12:27 ID:gLWzFcyI
>454
できました!
きちんと$mail=file_get_contents("php://stdin");で$mailに入っていました。

まずそもそもrootに対してメールが送られたときにファイル書込みができているのだろうかと思い適当な文字をファイル書込みしようとしました。
すると適当な文字aaaとかにもかかわらずファイル書込みがされませんでした。
じゃあこのスクリプトを呼び出していないのかというとそうでもなく、mail関数などは正常に動作していて、きちんとスクリプトを呼んでいることがわかりました。
そこでmail関数を使用して、$mailで取得したヘッダ内容を自分の携帯電話へ送ってみたところ正常に動作しました。
なぜファイル書込みができなかったかを考えたところ、おそらくこのスクリプトを実行しているのがメールサーバーだからだろうと思い/homeを777にして書き込み権限を与えました。
すると成功しました。
長かったですがやっと成功できました。
本当にありがとうございました。
本当にいくら感謝してもしきれません。
もっとPHP単体だけでなく他プログラムとのかかわりも含め勉強を重ねていきます。
458nobodyさん:2005/06/10(金) 02:12:30 ID:???
>>456
>>453のmailh.txtを書き出すには、postfixが動いている権限で書き出せるように
パーミッションの設定が必要。
後は、本当にsample.phpに渡っているかmailログ等で確認汁。
今度こそ寝るw
459nobodyさん:2005/06/10(金) 02:13:49 ID:???
ありゃ、3秒差で遅かったかw
まぁ、よかったな。
460自動返信:2005/06/10(金) 02:14:13 ID:gLWzFcyI
あ、すれ違いになってしまいました(汗)
そのとおりです。
そこまで見通せるの本当に凄いです、ありがとうございました。
461nobodyさん:2005/06/10(金) 13:56:51 ID:???
>>459の面倒見の良さに射精した
462nobodyさん:2005/06/10(金) 17:17:39 ID:???
携帯でjaming使ってる人が集う場所ってどこかないでしょうか?
dblは表示できるんだけど、jpgがどうしても上手くイカン・・・
463nobodyさん:2005/06/10(金) 20:55:18 ID:???
同じ名前のクラスを呼ぶと、Cannot redeclare classエラーが出ますが、
これを、なんとか呼ぶことが出来ないものでしょうか…。
2回目にクラスを呼ぶ時点で、前に呼んだクラスはもう必要が無くなるので、未定義状態に出来ればいいのですが
そんな都合がいいことは出来ないでしょうかね・・・?
464nobodyさん:2005/06/10(金) 21:09:27 ID:???
PHPでそんな融通効くわけないじゃん
465nobodyさん:2005/06/10(金) 21:14:20 ID:???
>>463
クラスを呼ぶ???とはどういう事だい?
ちと、コードコピペしてみな。
466nobodyさん:2005/06/10(金) 21:15:17 ID:???
include
467nobodyさん:2005/06/10(金) 21:55:38 ID:???
>>463

include_onceかreqiure_onceを使ってみれば?
468nobodyさん:2005/06/10(金) 23:09:41 ID:???
>>463>>467
結局includeeされたファイルはただそのまま読み込まれているだけだから、
同じファイルに同じクラス名のクラスを2つ書いてることになるだろ。
それを別のものとして宣言ってのは無理だろ。
だいたい同じクラス名を使うなって。
469468:2005/06/10(金) 23:13:45 ID:???
eが多かった・・・。

>>455
どうも使用期限が付いてるものをインストールするのは嫌なんだよね〜・・・。
ゴミが溜まりそうなので。
だからCeleron600MHz、メモリ128Mの使ってない端末に入れてみた->評価版。
ん〜・・・、すげーもっさりしてるね動作が・・・。当たり前か。
まぁでも良い感じかなぁとは思った。今月末に購入するよ。
470nobodyさん:2005/06/11(土) 00:04:11 ID:???
>>468

---- Test.class.php ----
<?php
class Test {

}
?>
----------------------

---- main.php -----
<?php
require_once('Test.class.php');
require_once('Test.class.php'); // これはエラーにならない

$obj =& new Test();
?>
------------------

こういう話じゃないってこと?
471nobodyさん:2005/06/11(土) 00:12:41 ID:???
アップロード系のサイトをやってるんですが、
特定のディレクトリ内に一番最後に格納されたファイル
(または過去n個以内の複数のファイル)のファイル名情報を取得して、
.php内に表示させる方法ってないでしょうか?
イメージとしては、
<?php echo date('m/d', filemtime('./upload/') ) ?>
↑の指定ディレクトリの更新日時を取得して表示する、の
名前取得版みたいな感じで動作させたいんですが...。
472nobodyさん:2005/06/11(土) 00:27:43 ID:???
いろんなやり方があると思うけど、
・アップロード時にテキストファイルにファイル名を書き込む
・表示させる時にディレクトリ関数・ファイルシステム関数を使ってデータ取得
etc.
473nobodyさん:2005/06/11(土) 00:57:32 ID:???
>>468
本来はどれか一個しか読み込まないんですが、全てのプロパティを比較したかったんです。
---- a.php -----
class test
{
var $name = 'a';
}
---- b.php -----
class test
{
var $name = 'b';
}
通常は、どれかを選択して使用するのですが
a.phpやb.phpをリスト化したいと思ったのです。。
<li>a.php : name = a</li>
<li>b.php : name = b</li>
のような感じで。
474nobodyさん:2005/06/11(土) 01:14:18 ID:???
>>473
そんな事やってそうな気がしたんだよ…

もう一遍、classについて勉強しなされ。
475nobodyさん:2005/06/11(土) 01:14:38 ID:???
インスタンスを2個作るんじゃダメなの?
476nobodyさん:2005/06/11(土) 01:24:14 ID:???
名前空間の問題なんですね。
477nobodyさん:2005/06/11(土) 01:24:32 ID:???
>>474
なるほど。
というかこんな発想をするほうがすごいね・・・
普通こういう使い方はしない。
478nobodyさん:2005/06/11(土) 01:27:11 ID:???
ほかの言語だと同じクラス名があると上書きされるんだっけ?
479nobodyさん:2005/06/11(土) 01:35:39 ID:???
言語によってどう扱うか変わるだろうね。javaで試してみたら、重複エラーがでたよ。
480nobodyさん:2005/06/11(土) 01:52:11 ID:???
perlは確か上書きされた気がする。
481nobodyさん:2005/06/11(土) 22:30:08 ID:JxmTPzAI
PHPを使う人にとってさ
ショッピングカーとぐらい、本とかみないでも
1からスクリプトかけるのか?
俺ショッピングモールいまつくってるけど、仕事で
ぶっちゃけ本みながらやってるんだけど・・・
おまえらどうなの?
482nobodyさん:2005/06/11(土) 22:35:42 ID:???
>>481
ボクはマニュアルさえあれば何もいらないよ、サチコ。
483nobodyさん:2005/06/11(土) 23:02:59 ID:???
>>481
見ないでも書けるけど、本見て仕事がスムーズに進むなら
別に見ても構わんと思うぞ。教科書持ち込み不可のテストでもないんだから。

リファレンスマニュアルは、手元に置いてるな。データと紙の両方。
484nobodyさん:2005/06/11(土) 23:04:57 ID:???
ああ、あとショッピングカートをゼロから組むことは殆ど無い。
そんなことやってたらコスト的に勿体無いから。
485nobodyさん:2005/06/11(土) 23:14:38 ID:???
>>481
よくスペルとか忘れるから、マニュアル片手にやってるよ。
あと、自分で作った既存のスクリプトからコピペしたりよくやってる。
正直、関数のうろ覚えが多いんでマニュアルないとゼロから100まで作るのは無理かも。
486nobodyさん:2005/06/11(土) 23:18:47 ID:???
配列関数で、(array_mapとかarray_fileterとかarray_walkとか…)パラメータの順番が関数によってまちまちなんで
どっちに配列だっけ…と迷う事がよくある。
487nobodyさん:2005/06/11(土) 23:22:04 ID:???
会社だとZendStudio使ってるからコード補完があるし、引数も分かるからなぁ。

それと、本を見ながら作業ってのは、余りしないな。
ネット上で探した方がコピペも出来るし作業的には楽。
488nobodyさん:2005/06/12(日) 01:38:59 ID:???
>>487
ZendStudioがない場合、何も出来なくなりそうだな…。
まぁ、そんな事態はないだろうけど。
489nobodyさん:2005/06/12(日) 02:21:46 ID:???
array_* な関数は殆ど foreach で処理させている俺ガイル。
490mbstring:2005/06/12(日) 02:40:25 ID:???
PHP4.3をソースコードからCLI版としてインストールしたんですがどう頑張ってもmb関数がundefinedとなってしまいます。
PHPのソースを展開し
./configure --enable-mbstring
make
su
make install
何かいけないこと考えられますか?
php-cli.iniの[mbstring]設定もしました、といってもそもそもUndefinedFunctionとなるのでそれ以前の問題なんです
491nobodyさん:2005/06/12(日) 03:26:24 ID:???
>>490
make install-cli
492nobodyさん:2005/06/12(日) 05:32:11 ID:T3M2BgYk
複数のBLOGに同時に書き込みしてくれるような機能を
サーバサイドで実行してくれるPHPスクリプトってどっかにありませんかね。
ご存知の方がいたらよろしくです。

一応、最初は自作しようと思ってpearのhttp_requestとか使って
まずlivedoorBLOGで試したんですが、いきなりログインまわりの
セッション保持で挫折です。cookieの送受信はきちんとやっているつもりなんですが、
どうやらそう簡単にはいかないらしく。
493nobodyさん:2005/06/12(日) 10:24:17 ID:???
2005-06-12T01:28:43+09:00

2005年06月12日 01時28分43秒

に整形したいのですが、できませんか?
494掲示板のperlですが:2005/06/12(日) 10:37:05 ID:CxMhZf98
$host = $ENV{'REMOTE_HOST'};
(略)
if($mail eq "fusianasan"){
$body = "$host";
}

この場合メル欄に「fusianasan」と入れると、メル欄にホストが晒される
ことになると思いますが、たとえば「俺はfusianasan」「fusianasanだよ」のように
「fusianasan」という文字列を含む場合は全てhostを晒したいという時、
$mail eq のあたりをどう書き換えればいいですか。
どうか先輩方教えて下さい。<(_ _)>
495掲示板のperlですが:2005/06/12(日) 10:39:29 ID:???
ごめんなさい
$body = "$host";
}
じゃなく
$mail = "$host";
}
でした。逝ってきます。


496nobodyさん:2005/06/12(日) 10:42:34 ID:???
>>493
Date関数のマニュアルをよく読む。

date("Y年m月d日 h時i分s秒")

という風に出力する形式(フォーマット)を指定できる。
497掲示板のperlですが:2005/06/12(日) 10:42:42 ID:???
しかもperlとPHP間違えました。
逝ってきます。すみません。
498nobodyさん:2005/06/12(日) 10:56:58 ID:???
>>496

date("Y年m月d日 h時i分s秒") は知っています。

2005-06-12T01:28:43+09:00

2005年06月12日 01時28分43秒
に整形したいんです。できませんか?
499nobodyさん:2005/06/12(日) 11:00:17 ID:???
できます。
500nobodyさん:2005/06/12(日) 11:02:30 ID:???
>>498
正規表現
501nobodyさん:2005/06/12(日) 11:08:49 ID:???
>>500 strftime()は?
502nobodyさん:2005/06/12(日) 12:02:42 ID:???
>>500
正規表現使うまでもないでしょ。
形が決まってるんだから。

>>481
PHPのマニュアルはかなり優秀だと思う。
〜やりたい時はどうすればいいのだろう?
と思ったときは、まず最初にマニュアルを見る。
大概答えが書いてあるよ。
503nobodyさん:2005/06/12(日) 14:29:13 ID:???
PHP5で実装されている__autoload()関数をPHP4でも使いたいのですが、
同じような挙動を取る関数を作成することは可能でしょうか。

とりあえず、PHP4の時は以下のようにしてファイルを読み込むようにしているのですが、
これだとページによっては不要なファイルも読み込んでしまいますよね。
if (PHP_VERSION < "5.0.0") {
foreach (gleb("./class/*.inc") as $classfile) {
require_once($classfile);
}
}
504503:2005/06/12(日) 14:31:35 ID:???
コピペしただけなのにスペルミスってる・・・(´Д`)?
gleb→globです。
505nobodyさん:2005/06/12(日) 14:39:15 ID:???
ちょいと質問です

readdirでディレクトリの中にあるファイルを全部表示させたのはいいんですけど
で、ファイルがこんな感じで表示されてるんですが
↓↓↓
〜.jpg   [ファイルサイズ]  削除
〜.txt   [ファイルサイズ]  削除
〜.zip   [ファイルサイズ]  削除

この削除ボタンを押すと対応したファイルが消えるようにしたいんですけど
どんなスクリプト組めばいいのかいまいちわかりません。
誰か俺に教えてくださいorz
506nobodyさん:2005/06/12(日) 14:57:35 ID:???
>>503
エラーハンドラをいじったらできそうな気もしなくもない。
507nobodyさん:2005/06/12(日) 15:08:44 ID:???
>>505
どのあたりが分からんのか説明が欲しいところだけど、
やることは簡単なので処理の流れを書いてみる。

<a href="delete.php?filename=〜.jpg">削除</a> で、削除スクリプトを呼び出すボタンを作成。
delete.phpは適切に入力チェック後、unlink()を使ってファイルを削除。
508nobodyさん:2005/06/12(日) 15:18:11 ID:???
>507
dクス
強引に一つのスクリプトでやろうとしてたからいけなかったのかorz
509nobodyさん:2005/06/12(日) 16:54:54 ID:???
PHPってテスト実行するには鯖にうpしないといけないのか?
いつもそうやってきたんだが
デスクトップ上で動かすことってできねえか?
510nobodyさん:2005/06/12(日) 17:01:25 ID:???
>>509
できるよ
511509:2005/06/12(日) 17:03:36 ID:???
>>510
激しく詳細キボン
512nobodyさん:2005/06/12(日) 17:20:33 ID:???
>>509
俺はApacheで鯖立ててやってる
513nobodyさん:2005/06/12(日) 17:22:07 ID:???
>>512
Windows
514nobodyさん:2005/06/12(日) 17:24:02 ID:???
>>513
Winでも動くが。
515nobodyさん:2005/06/12(日) 17:30:12 ID:???
>>509
ローカルサーバの立て方調べてみ
もしくは、「Windows」「php」「Apache」でググる
516nobodyさん:2005/06/12(日) 17:34:46 ID:???
すみません、教えてください。
コード「F659」といった16進で指定される文字を
出力するにはどうしたら良いのでしょうか?
517nobodyさん:2005/06/12(日) 17:35:59 ID:???
>>512-515
えっと、つまり自宅ミニ鯖みたいなものなのですか?
518nobodyさん:2005/06/12(日) 17:52:20 ID:???
>>517
今日日のクライアントPCはハード的に見ればけっしてミニとは言えないけど
ローカルマシン内でクライアントとサーバが同居して閉じた構成。
519nobodyさん:2005/06/12(日) 17:53:43 ID:???
つまり仮想鯖?
520nobodyさん:2005/06/12(日) 17:56:07 ID:???
だから、「Windows ローカルサーバ」でググってから、別のスレに池
521nobodyさん:2005/06/12(日) 18:03:36 ID:???
>>517

サーバの定義は人によると思うけど、
WEBサーバとして機能するソフトウェア(Apache、IISなど)がそのPC内で稼動してれば
WEBサーバと言えると思うよ。

サーバに大きいも小さいもないし。
とりあえず、ApacheとPHPをインストールしてきちんと設定すれば
Win上でテストはできるよね。
もちろん、実際のサーバ上でしか使用できないモジュールなどを使う場合は
テストできないけど、それは仕方ない。
522509:2005/06/12(日) 18:05:37 ID:???
スレ違いなのにいろいろありがとうございました
是非やってみます><
523nobodyさん:2005/06/12(日) 19:31:04 ID:???
Windows環境でPHP5を使っているのですが、マルチスレッドプログラミングをするにはどうしたら
いいのでしょうか?
524nobodyさん:2005/06/12(日) 20:14:06 ID:???
今はローカルで動作テストしないのが主流ですか?
素人の俺にはそんな荒業怖くてできんが・・・
525nobodyさん:2005/06/12(日) 20:22:13 ID:???
Apache落としたが変なダイルテラオオスで意味わかねええええええ
526nobodyさん:2005/06/12(日) 20:22:46 ID:???
以前からそういうヤシはいたさ。
そして今も増えつづけているのさ。
527nobodyさん:2005/06/12(日) 20:23:50 ID:???
>>525
おまいの方が意味ワカンネ
528525:2005/06/12(日) 20:26:31 ID:???
ダイル→ファイル
529nobodyさん:2005/06/12(日) 20:32:31 ID:???
>>528
Apacheっていっても普通に使う限り、
設定するのに必要なフィルはhttpd.confだけだ。
530nobodyさん:2005/06/12(日) 20:50:13 ID:???
ローカルでテストする初心者なんかまだいたのか。
プロならいきなりレン鯖でテストしないとなw
531nobodyさん:2005/06/12(日) 21:04:56 ID:???
>>530
それ、殆どの場合、レン鯖で規約違反。

ちゃんと、ローカル環境とかでテストしてからアップしろと書かれてるはず。
532nobodyさん:2005/06/12(日) 22:10:01 ID:???
>>530
うちの場合は、
データセンターに鯖は置いてあって、リモートでログインしている。
テストサーバと本番サーバを立てていて、
テストサーバへアップして動作確認している。
そもそもローカルじゃテストできない部分もあるしね。

ところで、プロでレン鯖使うのはどんな案件?
533カポコン:2005/06/12(日) 22:27:10 ID:???
おっ

俺の場合は、1Pサーバーのテスト後、2Pサーバーで再テスト。
最後は、クラス鯖で各枝ごとに動作検証汁。
ハードウェア、回線エラーとかでパフォーマンス落としている
部分があればそういう部分も修復・交換しているって・・・

全 然 、 p h p と 関 係 ね ー な
534nobodyさん:2005/06/12(日) 22:34:12 ID:???
>>533
>全 然 、 p h p と 関 係 ね ー な

確かに関係ない話になってしまった。
申し訳ない。
535nobodyさん:2005/06/12(日) 23:08:38 ID:F9hjAojE
まあ、いきなり公開サーバーでテストなんてDQNなことはやらないけど
最終的に借りてるサーバーいくつかで意図通りに動くかテストするわ
536nobodyさん:2005/06/12(日) 23:26:10 ID:???
echo " <CENTER>テスト</CENTER>";

表示されんのだが・・・
537nobodyさん:2005/06/12(日) 23:32:34 ID:???
>>536
1. phpinfo(); - phpが動いているかどうか調べる
2. echo 'hello world'; - お約束。アルファベットのみなので文字化け等の問題を除去できる
3. echo 'てすと'; - 次へのステップ
4. echo '<center>てすと</center>'; << いまここ
つー感じで徐々に試してみたりしませんか?
538536:2005/06/12(日) 23:36:47 ID:???
>>537
サンクス
大丈夫だったんだが
<HTML>
<BODY>
<?php
//名前かメールアドレスが未記入の時
if ($name == "" || email == "" || $password1 == !! || $password2 == ""){
echo " <CENTER>入力漏れがあります。</CENTER>";

//パスワードと確認用パスワードが一致しないとき
}elseif($password1 != $password){
echo " <CENTER>パスワードが正しくありません。</CENTER>";

//名前に使えない文字が入っている時
}elseif($a == 6){
echo " <CENTER>名前に使えない文字が入っています。</CENTER>";

//パスワードが4文字未満のとき
}elseif($a == 5){
echo " <CENTER>パスワードが短すぎます。</CENTER>";

//全ての条件に当てはまらない(実行)
}else{


}

?>
</BODY>
</HTML>
だと何も表示されなくなるのよ(´・ω・`)
539538:2005/06/12(日) 23:39:42 ID:???
すまん、解決した・・・
""が!!になってたよ(´・ω・`)

エラーが表示されなくなって不便になったなぁ
540nobodyさん:2005/06/12(日) 23:42:07 ID:???
>>539
>エラーが表示されなくなって不便になったなぁ
それ、設定の問題。
541nobodyさん:2005/06/12(日) 23:56:33 ID:???
>>540
詳細キボン

(strpos($name,".")||(strpos($name,",")||(strpos($name,"[")||(strpos($name,"]")||(strpos($name,"(")||(strpos($name,")")||(strpos($name,"<")||(strpos($name,">")
↑省略するにはどうしたらいいだろう

strpos($name,".,[]()<>")
ってやてもできんかた
542nobodyさん:2005/06/13(月) 00:18:30 ID:???
あの、すみません
POSTで変数を得たいのですが
複数ほしい場合に
$_POST['$a','$mail'];
な感じでできますか?
543nobodyさん:2005/06/13(月) 00:24:03 ID:???
>>541
php.iniかini_setで error_reportingをE_ALLにする。

どの文字も必ず含まれているなら min(strpos($name,"."),strpos($name,",")....)
そうじゃない場合は、オイラなら単純にループさせて最小の値をとるか、
正規表現で発見できるまでの文字列を抜き出してそれの長さを調べるかな。

>>542
詳しく
544nobodyさん:2005/06/13(月) 00:33:13 ID:???
>>543
php.iniがない・・・
どこにあるんだ?
545523:2005/06/13(月) 00:34:13 ID:???
くだ質じゃないよなぁと思っていたのですが、あっち行ってきます(´Д⊂
546nobodyさん:2005/06/13(月) 00:34:24 ID:???
久しぶりにカポコン見るな。なんかネタ振れや。またくそみそにしてやるからw
547nobodyさん:2005/06/13(月) 01:05:21 ID:???
>>542
配列にそんな指定はない。
548nobodyさん:2005/06/13(月) 01:13:54 ID:???
質問です。
アップローダーについて質問した
>>434-436 . >>437です。

お蔭様でなんとか動くようになりました。
そこでブラウザから送られていたファイル名を

日付+ファイルの拡張子
と言う名前で保存したいのですが

アップロードされたファイルの拡張子の抜き方で
行き詰まってしまいました。

$_FILES['upfile']['type'];
では「image/gif」と言う感じになるのですが

この文字列からimage部分を消し去り「/」を「.」に
置き換える位しか思いつきません。
他に良い方法があれば教えてください。
549nobodyさん:2005/06/13(月) 01:42:23 ID:???
apache の mime.types みたいに mime タイプと拡張子の変換テーブルを
用意しとけば?

あとはローカルのファイル名からもらうとか。
550nobodyさん:2005/06/13(月) 01:49:31 ID:ZAxEnpfu
フォームからポストされた内容をcgiで受けてメールを飛ばすと同時にcsvに書き出すというスクリプトはよく見かけますが、phpで同じ事を出来るスクリプトというのをずっと探してるんですがどうしても見当たりません。
それらしきものを、自分で書いてみたんですが、一日に数十件の送信のある商用サイトなのでファイル保護に関しては全く自信がないので、そういった、ファイルロックや、保護の機能があるスクリプトがよいのですが。
#じゃあ、cgiでやればいいじゃんと言われたらそれまでですが、倉にphpで!と言い切られてしまいますた。
551nobodyさん:2005/06/13(月) 01:52:04 ID:???
>>548
いろいろ答えてもらったんだから、何が原因だったか書くべきじゃ。
単なるポカミスだろうけど。

MIME型が送られてこない場合や拡張子の無いファイルをうpされた場合はどうする?
必ず拡張子はついていると言う前提なら、
preg_replace('/^.*?\.([^\.]+)$/','$1',$filename);
で、どぉ。
552nobodyさん:2005/06/13(月) 01:58:06 ID:???
倉(´・ω・) カワイソス
次の犠牲倉を出さないためにも、スクリプトを探すつー後ろ向きな事をしてないで、
ファイルロックや保護の機能を書く方法を探すべきでは?
553nobodyさん:2005/06/13(月) 01:59:26 ID:???
っていうか。

>>548
phpで書かれたUpLoaderスクリプトを探した方が早いんじゃね。

>>550
カウンタスクリプトのファイルロックでも参照すれば。
スレ違いだな。

>>552
同意
554nobodyさん:2005/06/13(月) 05:00:42 ID:???
$_SERVER["UNIQUE_ID"]
というのは、どういう値でしょうか?
555492:2005/06/13(月) 07:28:22 ID:1UN/nKO7
誰か試してみてくれませんかね?

require_once "HTTP/Request.php";
$req =& new HTTP_Request("http://www.livedoor.com/");
if (!PEAR::isError($req->sendRequest())) {
echo $req->getResponseBody();
}

↑たったこんだけなんですけど、エラー出まくりです。
http://www.livedoor.com/をhttp://www.yahoo.com/に変えると普通に
動作します。
556nobodyさん:2005/06/13(月) 07:56:09 ID:???
>>548
image/pjpeg
というのもあるからその方法は使えない
557nobodyさん:2005/06/13(月) 10:08:59 ID:???
日本語名のファイルを登録させないようにしたいのですが
制御する方法が分かりません。ググっても見つかりません・・。

ご存じないでしょうか?もしくは不可能なのでしょうか?
558nobodyさん:2005/06/13(月) 10:11:21 ID:???
正規表現使って弾けばいいんじゃないだろうか
559nobodyさん:2005/06/13(月) 12:13:54 ID:???
$exp = strrchr($_FILES["hoge"]["name"], ".");
$hogeName = date("Ymd"). $exp;

なんかこんなカンジでいけたはず
560nobodyさん:2005/06/13(月) 15:21:43 ID:???
>>557
日本語を使っているファイル名をはじくのではなく、
英数字以外を使っているファイル名をはじけばいいのでは?
561557:2005/06/13(月) 15:36:19 ID:???
>>560
中国語やハングルは許可したいのです
すいません
562nobodyさん:2005/06/13(月) 16:22:28 ID:???
フォームのデータ送るとき
POST使えないのは仕様?
とりあえずGETで送信して$_GETで拾ってるんだが
563562:2005/06/13(月) 16:24:20 ID:???
ああ、すまん、自己解決

$action = $_POST["action"];
$name = $_POST["name"];
$password1 = $_POST["password1"];
$password2 = $_POST["password2"];
$class = $_POST["class"];

これを一行に省略したりできる?
564557:2005/06/13(月) 16:25:04 ID:???
>>562
鯖缶に聞いてくれ
565562:2005/06/13(月) 16:26:26 ID:???
extractで自己解決しました
566nobodyさん:2005/06/13(月) 16:36:29 ID:DISdzlt3
うはwwwww
trimって全角の空白削除されないのかwwwwww
567562:2005/06/13(月) 16:36:56 ID:???
>>565
誰かしらんがサンクス!
そんな便利な機能があったとは
568nobodyさん:2005/06/13(月) 16:42:45 ID:???
>>565
>>563のような変数の初期化を面倒くさがる奴の
書いたスクリプトでは全般的に変数の初期化が甘いと思われ。
そんなスクリプトでextractなんて使っちゃ駄目。
569nobodyさん:2005/06/13(月) 17:11:51 ID:???
php.iniってどこにあるんですか?
570nobodyさん:2005/06/13(月) 17:22:48 ID:???
>>569
findして見つかったところ。そのファイルが有効かどうかは
お前さんの使っているPHPに依存する
571569:2005/06/13(月) 17:23:42 ID:???
findしてなかったんだが
572nobodyさん:2005/06/13(月) 17:26:52 ID:???
>>569
そのPHPがどうやってインストール(configure)されたかによる。
>1に「質問する際には環境も明記。」とあるのも読んでくれよ
573nobodyさん:2005/06/13(月) 17:30:10 ID:???
PHPって鯖上で動くんだよな・・・
インスコしないといけないのか?
574nobodyさん:2005/06/13(月) 17:31:02 ID:???
>>571
うーん、じゃあ無いんじゃないか。別に無くてもPHPは動くし、
必要な場合にはdistやrecommendedを参考に作ることになってるわけだから。
575nobodyさん:2005/06/13(月) 17:31:51 ID:???
>>573
されてなければね。
576nobodyさん:2005/06/13(月) 17:32:23 ID:???
PHP5.0.4インスコした。
探したがiniないぽ
577nobodyさん:2005/06/13(月) 17:34:13 ID:???
環境を書けと言ってるだろうが!この本7野郎が!(/-o-)/ ┫
578nobodyさん:2005/06/13(月) 17:35:16 ID:???
xp
579nobodyさん:2005/06/13(月) 17:36:40 ID:???
うなwwwwiniハケンしたwwwwwwww
error_reportingたくさんあったが全てE_ALLになってた(´・ω・`)
580nobodyさん:2005/06/13(月) 17:37:02 ID:???
Windows系にPHPを入れた場合、
php.iniは自分で適切な場所に”作る”必要がある。
581nobodyさん:2005/06/13(月) 17:41:47 ID:???
php.ini作成シマスタ!
display_errorsをとりゃえずOnにしてみたが・・・
582nobodyさん:2005/06/13(月) 17:58:10 ID:???
>>573
MS officeってwindows上で動くんだよな・・・
インスコしないといけないのか?
583nobodyさん:2005/06/13(月) 18:02:44 ID:l4UuiYUQ
質問させてください、winXP+PHP4.1を使っています。
perlでやるところの
$text{head_sp_$text{kt}}
こういう書き方を
PHPで同じように
$text[head_sp_$text[kt]]
こうしてみたのですが、エラーがでてしまいます。
{$text[head_sp_$text[kt]]}

$text[head_sp_{$text[kt]}]

$text[{head_sp_$text[kt]}]
こんなこともやったのですが全て
Parse error: parse error, unexpected T_VARIABLE, expecting ']' in 〜〜
と言うエラーがでてしまいます。

アドバイスいただけると幸いです。よろしくお願いします。
584nobodyさん:2005/06/13(月) 18:14:53 ID:???
>>583

<?
$text[kt]="hoge";
$text[head_sp_hoge]="good";

print $text["head_sp_".$text[kt]];
?>

good と出ますた
585nobodyさん:2005/06/13(月) 18:30:12 ID:???
もしかして自宅鯖じゃないと
php.iniの設定は反映されないのか?
586583:2005/06/13(月) 18:38:21 ID:???
>>584
レスありがとうございます。
$text["head_sp_".$text[kt]]としてみましたが、
"parse error, unexpected T_ENCAPSED_AND_WHITESPACE"
このようなエラーが出てしまいダメでした。
でふと思ったのですが、私はこのような使い方をしているのですが
これに問題があるのでしょうか?

<?php
print<<<HTML
</td></tr></table>
<hr size=1 width=780>
<table width=780>
<tr>
<td class=title3>ピックアップ情報</td>
</tr>
<tr>
<td>
$text["head_sp_".$text[kt]]
HTML;

?>

print<<<HTML
この間に
$text["head_sp_".$text[kt]]
を入れて正常に動かしたいのです。
HTML;

私の把握不足で情報の小出しになってしまってすいません。
もう一度お力添えをお願いします。
587555:2005/06/13(月) 18:40:37 ID:1UN/nKO7
誰か相手してくれよぉ
588nobodyさん:2005/06/13(月) 18:45:34 ID:???
>>585
xpにphp5.0.4をインストールして、php.iniのdisplay_errorsをOnに変更したってことか?
webサーバを再起動(つーか、それにつられてphpも再起動される)しないと反映されないぞ。
マニュアルのエラー処理およびログ記録関数も見ておくといい。
ttp://www.php.net/manual/ja/ref.errorfunc.php

>>587
エラーを読んでも分からなかったのか?
pearはPHPで書かれているから中身も読めるべ。デバッグすれ。
589nobodyさん:2005/06/13(月) 18:51:03 ID:???
>>586
{$text["head_sp_".$text['kt']]}
{ } を使って変数部分を明示的にする。
590nobodyさん:2005/06/13(月) 18:58:22 ID:???
>>586

<?
$text[kt]="hoge";
$text[head_sp_hoge]="good";

print<<<HTML



${text["head_sp_".$text[kt]]}
HTML;
?>

素直に一度変数に入れたほうが、きれいになるのでは。
591590:2005/06/13(月) 19:00:58 ID:???
ああ、重複orz
592548:2005/06/13(月) 19:01:36 ID:???
>>549
まだ勉強して間もないので難しい事は出来ないです。申し訳ないです。

>>551
そうでした。結果報告が抜けてましたね。。。
掲示板に投稿後色々と教えてもらいましたが、結果全て旨くいかず、
自分の環境が悪いのかな、と半ば決め付けその日は不貞寝しました。

その翌日、不思議な事に正常に動いていたので何が原因だったのかは
スクリプトには特に変更点は無いので、良くわかりません。。。

やっぱり環境かな?っと言う事で納得しています。

>>553
それが無難なのは解りますが、ヒントから勉強できれば少しは自分の物に
出来るかなっと、生意気言ってみました。

>>559
「strrchr」がネックでしたね。とても参考になりました。
私が100%望む動作をしてくれました。

皆さん改めて有難うございました。
593nobodyさん:2005/06/13(月) 19:11:55 ID:QMcSO9eW
URLへジャンプし、その際のターゲット属性を指定できる関数ってありますか?
594nobodyさん:2005/06/13(月) 19:19:34 ID:???
>>593
ブラウザの挙動としては、
targetが指定されたウィンドウ(該当が無ければ新しいウィンドウをオープン) ”から” ジャンプ先のURLが鯖にリクエストされます。
要は、リクエストの前にターゲットが決まってないといけない。
595nobodyさん:2005/06/13(月) 19:45:51 ID:QMcSO9eW
<iframe src="xxx.html" name="hoge">
上記のようにフレームを作り、PHPでtargetを"hoge"、
つまり上記のフレームにしてフレーム内だけが更新できればと考えているのですが、
説明不足ですみませんでした。
Javascriptでも hoge.location.href="yyy.html"; として試してみたのですが、
挙動がありませんでした。
596nobodyさん:2005/06/13(月) 20:11:36 ID:???
>>595
phpはリクエストしてきたもの(ウィンドウなりframeなりiframeなり)に対して出力するだけで、
targetを扱う事はできません。(= リクエスト前にtargetを決めておく必要がある = PHPの関数も無い)

HTMLやJavaScriptを使ってtargetを指定してあげてください。
<a href="yyy.html" target="hoge">hogeを変更</a>
<a href="#" onClick="hoge.location.href='yyy.html';return false;">hogeを変更</a>
597nobodyさん:2005/06/13(月) 21:00:39 ID:AKgu0aiw
$_SERVER['HTTP_USER_AGENT']が定義されないのはなぜなんでしょうか。
print_r($_SERVER)で見ると、ひと通りはいっているようですが、HTTP_USER_AGENTだけがありません。
googleで環境変数を診断してくれるサイトで確認すると、きちんとUSER-AGENTが取れてます。
サーバーはOpenBSD3.2 apache1.3.27 PHP4.3.8/4.3.11 クライアントはWinXP & IE6で確認しました。
598nobodyさん:2005/06/13(月) 21:08:33 ID:QMcSO9eW
>>596
そうですか。ありがとうございました。
外部のページを読み込んで更新を何秒ごとかに行いたかったのですが、
どうやらPHPはページの操作という概念自体が違うようでしたね。
JSで頑張ってみることにします。
599nobodyさん:2005/06/13(月) 21:19:39 ID:???
>>597
ノートン先生がごるぁしているとか。
Apacheのログにユーザーエージェントがはいっていないなら、PHPの問題ではないと思われ。
600nobodyさん:2005/06/13(月) 21:56:26 ID:???
webサーバーの再起動ってなんだ?
要するにPC再起動ということか?
601nobodyさん:2005/06/13(月) 22:00:41 ID:???
>>600
好きにやってくれ
602nobodyさん:2005/06/13(月) 22:21:24 ID:???
>>601
もったいぶらずに教えてくれ!!!
603nobodyさん:2005/06/13(月) 22:36:16 ID:???
>>600
電源抜いて数秒待って差す
604nobodyさん:2005/06/13(月) 22:39:01 ID:???
>>602
Apache再起動。
出来ない環境ならini_setすれば?
質問する前にマヌアル読もうな。
605600:2005/06/13(月) 22:40:17 ID:???
>>604
Apache使ってない
606nobodyさん:2005/06/13(月) 22:50:57 ID:???
鯖はレンタルさばくぃhじゅ、l;、
607nobodyさん:2005/06/13(月) 23:10:01 ID:???
>>604
IIS?なんでもいいよ。Webサーバの再起動ね。
で、>>606のようにレン鯖で再起動出来ないならini_setしろって事ね。
608nobodyさん:2005/06/13(月) 23:27:17 ID:???
レンタル鯖でPHPエラー発生したがエラーが表示されない。
エラーを表示させるためにPHP.iniを書き換えた

ってことだな?
609nobodyさん:2005/06/13(月) 23:28:53 ID:???
>>608
そそ
レンタル鯖だとどうしようもないよね
610nobodyさん:2005/06/14(火) 03:56:03 ID:???
みんな!大変だ!Smartyスレが落ちた!!
611nobodyさん:2005/06/14(火) 07:19:02 ID:???
【Smarty】PHPのテンプレートエンジン【Flexy】
---
PHPのテンプレートエンジンを語るスレです。

Smarty:本家(英語)
http://smarty.php.net/
Smarty:日本語マニュアルとか
http://sunset.freespace.jp/smarty/

pear の HTML_Template たち
http://pear.php.net/package/HTML_Template_Flexy
http://pear.php.net/package/HTML_Template_IT
http://pear.php.net/package/HTML_Template_Sigma
http://pear.php.net/package/HTML_Template_Xipe
http://pear.php.net/package/HTML_Template_PHPLIB

patTemplate
http://www.php-tools.de/
http://www.php-j.com/tutorial/php/template.php

---
こんな感じでどうだろう
612nobodyさん:2005/06/14(火) 09:32:51 ID:???
PHPの開発ツールで
お勧めなものを
教えて神さま。
613nobodyさん:2005/06/14(火) 09:44:37 ID:???
PHP+MySQLなんですけど質問いいですか。

POSTされたデータを使ってデータチェック後INSERTしているのですが、同じPOSTデータでも、INSERTが2回実行されたり3回実行されたりします。(正常どおり1回のときもある)
ブラウザの更新が原因ではなく、mysql_insert_idでINSERT直後に取得すると、最後のIDが取得されます。
$strSql = "INSERT ......";
$rst = mysql_query($strSql ,$con);
if ($rst) {
xxxxxxxx
}
っていう普段使っている形で書いているのですが、INSERTが多重で実行されるなんていうことはありますか?
場合によって、xxxxxxxの部分が実行されないまま「ページが表示できません」になることもあります。(INSERTは実行されている)

助けてください。お願いします。
php4.3.4 + MySQL 4.0.24
614nobodyさん:2005/06/14(火) 10:29:50 ID:???
>>612
Eclipse+PHPEclipse
統合環境 ttp://www.eclipse.org/
PHP用プラグイン ttp://phpeclipse.sourceforge.net/
日本語情報サイト ttp://eclipsewiki.net/eclipse/

無料かつ機能も十分。
ただし環境によってはちょっと重いかも。
615P:2005/06/14(火) 10:47:27 ID:bHEGAoWT
PHPでセッションを利用したログインページを作っています。
ユーザがログアウトを選択すると、ログアウトページにリダイレクトされ、
このページ内でセッションを破棄するようにしているのですが、
IEやネスケではログアウトページに飛んだ時点で自動的にちゃんと破棄できるのに、
OPERAで試したところ、ログアウトページが表示されてからさらにブラウザの更新ボタンや
自動更新設定でいちいち再読み込みさせないと、ちゃんと破棄されないようです。

自動的かつ強制的にこのページを再読み込みをさせる良い方法はないでしょうか?
headerで自ページにリダイレクトしなおすようにするとか、考えていますが・・・

ちなみにMetaタグのRefreshも試してみましたが、再読み込みが繰り返し行われることになり視覚的にいまひとつの結果でした。。。
どうかお知恵をお貸しください。よろしくお願いします。
616nobodyさん:2005/06/14(火) 11:50:23 ID:kWRonEc7
今回PHPのバージョンを4.2から4.3にあげたら
今まで作動してたPHPプログラムが大量にエラーが
でるようになりました
Notice: Undefined index: name1 in C:\Program Files\Apache Group\Apache2\htdocs\e-rescue\common.php on line 106

Notice: Undefined index: name2 in C:\Program Files\Apache Group\Apache2\htdocs\e-rescue\common.php on line 106

Notice: Undefined index: kana1 in C:\Program Files\Apache Group\Apache2\htdocs\e-rescue\common.php on line 106
こういう感じでぞくぞくでます
バージョンを4.2.2にさげると正常にうごきエラーが全く表示されません
結局バージョンをあげるのをあきらめんたんですが・・・
ちなみに4.2.2でつくったプログラムを実鯖のほうにあげるとエラーがでません
ここのPHPは4.3です。
なぜエラーがでるのかおしえてくださいお願い致します。
617nobodyさん:2005/06/14(火) 12:04:41 ID:???
>>616
php.iniの設定が違うだけ
バージョンは関係ない
error reporting参照
618nobodyさん:2005/06/14(火) 12:05:58 ID:???
>>613
お前のバグだろ
スクリプト晒さないとわからんよ
619nobodyさん:2005/06/14(火) 12:35:35 ID:kWRonEc7
iniの設定は本によって違うからわかりません
具体的にどの変がまずいの?
620nobodyさん:2005/06/14(火) 13:18:14 ID:???
>>619
エラーレポーティング();
621nobodyさん:2005/06/14(火) 13:20:09 ID:???
622nobodyさん:2005/06/14(火) 13:36:48 ID:kWRonEc7
Fatal error: Call to undefined function: mb_convert_encoding() in C:\Program Files\Apache Group\Apache2\htdocs\keizi\common.php on line 27
さきほどのは解決しました
こんどはこれがでます・・・わけ分からん
これもphp.iniのどっかを修正したら直るんですか?
バージョンさげるとでなくてあげるとでます
623nobodyさん:2005/06/14(火) 13:56:28 ID:???
>>622
4.3でmb系の関数がインストールされてないんだろ。
624nobodyさん:2005/06/14(火) 14:19:14 ID:kWRonEc7
古いバージョンの拡張モジュールをすべてコピーしたら
解決しました
新しいバージョンってインストールするだけなら拡張モジュールは
インストールされないの?
昨日狩ってきた本にはPHP.iniの設定には全く触れてなかっただけど
本によっては設定したりしなかったりわけわからん
625nobodyさん:2005/06/14(火) 14:59:41 ID:???
>>624
解決したのはいいが、ヒントをいただいた人にお礼は?

>>616のエラーは本に書いていない為→本が悪い
>>622はPHPインストーラが悪い。

なかなか幸せな人だな。もともとこのスレは、
「エラーが出なくなったから解決しました」というスレじゃない。
「エラー発生の要因が理解できました」というスレだと思う。

「わけわからん」と何度も出てくるのは、お前のの努力が無い為だ。
626nobodyさん:2005/06/14(火) 15:03:40 ID:???
「のの」...orz
627nobodyさん:2005/06/14(火) 20:47:06 ID:???
>>555
コマンドラインから標準入力に食わせたら、ちゃんと動いたぞ。
628nobodyさん:2005/06/14(火) 21:20:35 ID:???
HTTP_Requestを直に使うよりラッパーのHTTP_Clientを使ったほうが楽かも。
ちなみにHTTP_Clientの同一インスタンスで続けてリクエストを送ると
リファラとして前のURLを送るようになってる。
629nobodyさん:2005/06/14(火) 22:08:31 ID:???
php.iniはUNIX版でも標準ではインストールされないよ。
RPMとかのパッケージは知らないけど。
630nobodyさん:2005/06/14(火) 22:11:03 ID:xUEq8aOa
PHPであるディレクトリの下のディレクトリをサブディレクトリも含めて
全部再帰的になめるようなスクリプトのサンプルってないですか?
631nobodyさん:2005/06/14(火) 22:13:22 ID:SqdfIv7m
>>625
お礼をいうのは忘れてました
>>616
ありがとうございました
これからも皆様、ご指導ご鞭撻のほうよろしくお願い致します。
632nobodyさん:2005/06/14(火) 22:15:25 ID:???
エラーが表示されないのですがなぜでしょうか・・・?
PHP4のWinXPです。
land.toという鯖を使っています。
633nobodyさん:2005/06/14(火) 22:21:05 ID:???

おもしろい所に目をつけたPHPスクリプトがあった

ttp://web-navigation.net/


どうおもうよ?
634nobodyさん:2005/06/14(火) 22:28:38 ID:???
>>629
php.iniは2パターンのモデルがあるから(PHP5だけたっけ?)
インストールされてないからってどっかから拾ってきたり、
一から書いたりするもんじゃないよね。
まぁphpinfoでどこにini置くべきかもわかるし、大した問題じゃないだろ。

>>632
だからよ〜、ini触れない(Webサーバの再起動が出来ない)場合は
ini_setしろってさんざん上に書かれてたろ?
使い方わからねーならマニュアル読め。

上の方でiniの書き換えが出来たって言ってた奴がいたが、
普通書き換え出来ないだろ。どんなレン鯖だよそりゃ。
なんかのタイミングでWebサーバの再起動かかったら、
スペース借りてる全員に影響出るじゃねーか。
635nobodyさん:2005/06/14(火) 22:31:01 ID:???
>>632
ini_get_all()を使ってエラー(表示)関係の設定がどうなっているか調べてみれば?
設定の内容については、マニュアルの エラー処理およびログ記録関数 を参照。
636nobodyさん:2005/06/15(水) 05:45:18 ID:???
637nobodyさん:2005/06/15(水) 05:50:24 ID:???
よくみつけてきたなw
638632:2005/06/15(水) 09:04:41 ID:OSAX0u8g
つまりini_setして実行すればいいのか?
639nobodyさん:2005/06/15(水) 09:26:03 ID:???
>>638
error_reportingがどうなってる?
640638:2005/06/15(水) 09:28:39 ID:OSAX0u8g
>>639
うはw display_errorしかみてなかった
今学校でマックなので帰ったら見てみます...
641nobodyさん:2005/06/15(水) 09:41:34 ID:???
>>640
可能なら、phpinfo()を実行して、エラー関係がどんな設定になっているかみてみ。
それから、error_reporting(0)でないのを確認して。
642nobodyさん:2005/06/15(水) 10:37:03 ID:???
立ててみました
【Smarty】PHPのテンプレートエンジン【Flexy】
http://pc8.2ch.net/test/read.cgi/php/1118799352/
643nobodyさん:2005/06/15(水) 14:32:38 ID:???
Mojavi本家落ちてるな
644nobodyさん:2005/06/15(水) 15:34:02 ID:???
>>597
自己解決しました。
PukiWikiっていうPHPのWikiで、とあるSkinでブラウザごとにCSSを切り替える
ところがうまく動作しなくて困っていたのですが、処理がSkinに渡るずっと前の
ライブラリinit.phpあたりでunsetされてました。

>>599
というわけでした。すいません。
645nobodyさん:2005/06/15(水) 16:37:10 ID:ItJyvgZj
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">プルダウン
<SELECT NAME="KEYWORD"><OPTION VALUE="甲子園口" <?php
echo( ( $_REQUEST[ "KEYWORD" ] == "甲子園口" ) ? "selected" : "" );
?>>甲子園口</SELECT><INPUT TYPE="RADIO" NAME="VALUE_RADIO" VALUE="マンション" <?php
echo( ( $_REQUEST[ "VALUE_RADIO" ] == "マンション" ) ? "checked" : "" );
?>>マンション<INPUT TYPE="RADIO" NAME="VALUE_RADIO1" VALUE="マンション" <?php
echo( ( $_REQUEST[ "VALUE_RADIO1" ] == "マンション" ) ? "checked" : "" );
?>>マンション<?php
$AddressData = LoadcsvFile( "./data/m_addr.csv", "EUC_JP", "SJIS" );
if ( $AddressData == false ) {
echo( "データはありません。" );
} else {
?><TABLE BORDER="1">
<?php for ( $i = 0; $i < sizeof( $AddressData ); $i++ ) {
$line = explode( ",", $AddressData[ $i ] );
$match = true;
if ( $_REQUEST[ "SUBMIT" ] != "" ) {
if ( ( strstr( $line[ 0 ], $_REQUEST[ "KEYWORD" ] ) != false ) &&
( strstr( $line[ 1 ], $_REQUEST[ "VALUE_RADIO" ] ) != false )&&
( strstr( $line[ 2 ], $_REQUEST[ "VALUE_RADIO1" ] ) != false )) {
$match = true;} else {$match = false;}}
if ( $match == true ) {?><TR>
<TD BGCOLOR="#FFFFCC"><?php echo( $i + 1 ) ?></TD>
<TD><?php echo( $line[ 0 ] ) ?></TD>
<TD><?php echo( $line[ 1 ] ) ?></TD>
<TD><?php echo( $line[ 2 ] ) ?></TD>
<?php}}?></TABLE><?php}?>
<INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="検索">
csvの初歩の検索プログラムをつくっているのですが
条件を三つにしたら機能しません。
二つなら正常に検索するのですが
条件を三つつなげることはできないのでしょうか
646nobodyさん:2005/06/15(水) 17:05:54 ID:???
>>645
ソースは汚いし説明は良く分からんわで、質問を正確に理解できてるか自信ないけど、
比較の時のcsvの格納順序($line[])と各条件の対応がおかしいだけじゃないの?
647638:2005/06/15(水) 17:07:05 ID:???
error_reportingが2047になっていました・・・
ん^・・・
648638:2005/06/15(水) 17:25:00 ID:???
あれ?2047って全てのエラー表示するんじゃ・・・
649638:2005/06/15(水) 18:09:49 ID:???
string ini_set ( display_errors , "on");

で実行してみたが何もかわらん・・・
何がおかしいか教えてくれよたのむから(´・ω・`)
650nobodyさん:2005/06/15(水) 18:15:52 ID:???
>>649
なー、land.toのサポートフォーラムで聞いた方がはやくねーか?
651nobodyさん:2005/06/15(水) 18:19:05 ID:???
>>649
やっぱあったぞ。
tp://www.land.to/supportbb/viewtopic.php?t=129&highlight=php+error

ini_setではなく.htaccessで制御するみたいだ。
652nobodyさん:2005/06/15(水) 18:21:39 ID:???
ん? land.toというのは貸鯖屋のOSはWinXPなの? >>632
エラー表示とは関係ないんだけど、なにか違和感を感じる。
653nobodyさん:2005/06/15(水) 18:23:43 ID:???
>>652
632じゃないけど……
FreeBSDだって書いてあるよ。
多分自分のPCのことじゃないか?
654638:2005/06/15(水) 18:24:19 ID:???
うはwwwland.toじゃなかった
090webserverだたwwwwwwww

Linuxですた(´・ω・`)
655nobodyさん:2005/06/15(水) 18:24:27 ID:???
>>649
マニュアルって知ってる?
マニュアル知ってると便利だよ。
PHPの本家サイト知ってる?
そこからドキュメントに辿れるから調べてみたらどう?
あ、マニュアルって書くからわからなかった?
documentationって単語でリンク張ってあったよ。
頑張ってね。
656nobodyさん:2005/06/15(水) 18:27:07 ID:???
サンクス、やっとエラーできたよ(´;ω;`)
教えてくれたひとマジ感謝してるよ

.htaccessにphp_flag display_errors onと書き込んだ
657nobodyさん:2005/06/15(水) 18:55:22 ID:SDEIoMgZ
僕はデザイナとして応募したのですが
なぜかPHPをやってみないかといわれPHPをやるはめになりました
Cは少しできると面接のときにいったら、Cができれば、PHP
なんて屁でもないといいました
ほんとにCが少しできればPHPは楽勝でしょうか?
ぱっとみ全く別物のようなきがするのですが・・・
658nobodyさん:2005/06/15(水) 19:09:10 ID:???
>>657
Cが理解出来る能力があるなら、PHPは確かに
屁でもないだろうね。
マニュアル読めば、ある程度はすぐ理解出来ると思うよ。
関数リファレンスにはサンプルもだいたい書いてあるしね。

ちなみに俺は今VC++勉強しようと思ってるけど、全然わからん。
659nobodyさん:2005/06/15(水) 19:31:24 ID:???
手続き型の言語を1つでもかじっていれば、さほど習得は難しくないよね。
むしろ、PHPという言語自体より、webprogをやる上での知識の取得の方が大変かと。
httpの仕組みやら、メールの仕組みやら、データベースの仕組みやら etc.
660nobodyさん:2005/06/15(水) 20:40:59 ID:???
興味の問題もあるだろうね。
661nobodyさん:2005/06/15(水) 21:20:13 ID:YLKUB4y/
PHP5にビルトインされてる、PHP SOAPって高負荷時に(CPU100%など)エラーが出る。。
例外もキャッチできないし、エラーログにも残せない。。
enable_memory = 512Mに設定中。
topコマンドで見るところ、メモリはそんなに使い切ってない感じ。

だれか対処法わかります?
662661:2005/06/15(水) 21:22:45 ID:YLKUB4y/
正確にはエラーでなくて、レスポンスが返ってこない。
663nobodyさん:2005/06/15(水) 23:13:53 ID:???
現在DBに既に存在しているテーブルから逆算(?)して、
そのテーブルと同じ構造の(空の)テーブルを生成するためのSQL文を
作ることはphpスクリプトで出来ますでしょうか??

そういうスクリプトを作ろうと思って、
いきなり「現在のテーブル構造の照会」をどのようにやるかでつまづきました。
664nobodyさん:2005/06/15(水) 23:14:39 ID:???
仕事での顧客管理をデータベース化すべくPHP+MySQL本を購入して勉強中なのですが、
ひとまず掲示板の作り方を通じてごく基本的なPHPとMySQLの使い方はなんとかつかめたのですが、
通常PHPを利用したウェブサイトを作成するときにどのような開発環境を用意すべきなのでしょうか?

いままでHP作成にはDreamweaverMXを利用していたのですが、
大まかな部分を普通に作ってからコード表示にしてPHPを記入、というやり方でいいのでしょうか?
たとえば検索結果のテーブルを表示するページを作る場合、
まず中身が空っぽのテーブルを作ってもろもろのレイアウトを決めた後で、
<TR>〜</TR>を切り取ってそこに結果表示するPHPを記述する、
といったようなやり方になるのでしょうか?

PHPエディタとかEclipse+PHPプラグインとか開発環境はいろいろあるようなのですが、
これらは結局HTMLのデザイン的な部分についての機能は見当たらないので、
そこらへんの基本的なノウハウをお教えください。
よろしくおながいします。
665nobodyさん:2005/06/15(水) 23:21:39 ID:???
追加で質問です。

入門用の本を読んでいたときに、サンプルのコードの中に「 _ 」という記号が使われているのですが、
どういう意味を持つのかわかりません。
たとえば、
$body .= "<IMG src='image/hp.gif' width='88' _
height='20' border='0' hspace='5'>";
といったカンジです。
途中で改行するときに入れる必要があるのでしょうか?
666nobodyさん:2005/06/15(水) 23:27:03 ID:YLKUB4y/
テーブルの内容をダンプすればいいと思う
667nobodyさん:2005/06/15(水) 23:27:47 ID:???
>>665
その入門書のはじめの方に注釈があるはず。

「実際には繋がって(改行せず)ますよ」ってこと。
そのまま写すと大抵エラーになるよ。
668nobodyさん:2005/06/15(水) 23:42:31 ID:???
>>663
それを答えるのに必要な情報を提示しない理由は?
669nobodyさん:2005/06/15(水) 23:42:46 ID:???
>>664

入門書とかに出てくるようなHTMLとPHPをごちゃまぜにした書き方は
まともな開発会社ではしない。
デザインとロジックの分離をしたほうが保守しやすいからね。

デザインとロジックの分離については、テンプレートエンジン使わなくてもいいんだけど、
自分は使うほうが作りやすい。

テンプレートエンジンについては下記のサイトが参考になるので、読んでみてほしい。
ttp://www.zend.co.jp/tech/index.php?PHP%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3
670664:2005/06/15(水) 23:52:34 ID:???
即レスどうもありがとうございます。

>>667
つまり本で記述するときに行がつながっていることをあらわすために
便宜的に使われている、ということでしょうか?
実際に入力する際には無視することにします。

>>669
分離が可能なのですか・・・。
目からうろこが・・・。
いろいろ調べてみることにします。
671nobodyさん:2005/06/15(水) 23:54:12 ID:???
PHP5のSoapClientをWSDL使ってインスタンスにし、
メソッドの引数が構造体である場合どのように構造体を実現すれば良いのでしょう?
672nobodyさん:2005/06/16(木) 00:07:34 ID:???
>>670
表示するデータ(数値とか登録済みの文字とか)と、デザイン(見た目やhtmlとしての正しさ)を
切り離そうとする考え方があって、2chでもそれに関係するスレがあります。
反論レスも結構書いてあるので、どういうやり方が(自分にとって)いいのか考えるのに役立つんじゃないかな。

コンテンツとデザインの分離 - PHPに限らずWebProg一般
http://pc8.2ch.net/test/read.cgi/php/990953955/l50
【Smarty】PHPのテンプレートエンジン【Flexy】 - PHPで上記を実現するための仕組み
http://pc8.2ch.net/test/read.cgi/php/1118799352/
【PHP】Phrameを使う【フレームワーク】 - 上記の考えを更に発展させたもの(を実現するための仕組み
http://pc8.2ch.net/test/read.cgi/php/1093238107/
673nobodyさん:2005/06/16(木) 00:39:10 ID:3ZI3JzMn
仲間内で使うサイトをphpで作っています。

別サイトにある画像貼付けBBSに、
http://www.hoge.com/home/home/bbscgi/data/HOGEIMG_XXXXXX.jpg
のようなファイル名で画像がうpされます。
HOGEIMG_は固定の文字列
XXXXXXは0パディングの数字(時間などではなく000001の次は000002という具合)
ただし、この数字は投稿と同じ番号が付くので、画像のアップのない投稿があった場合、画像は欠番になります。
なんとかphpで、最新10件の画像URLを自動的に取得することはできない物でしょうか?

いまのとこ手動でforループで画像URLを生成してimgタグで埋め込んでます。
当然、欠番が出るとそこは「画像が見つからないアイコン」が醜く出てしまうし
これから投稿されるであろう画像URLも実際に投稿されるまでは「画像が見つからないアイコン」になっています。
forの$iの値は頃合いをみて書き換えないといつまでも同じ画像が表示されてしまうという状態。
条件の$i<=N
のNを今の番号より10くらい多めに設定ということを毎日やってます。
なんか、うまい方法があれば、アドバイスをお願いします。
674nobodyさん:2005/06/16(木) 00:44:24 ID:???
rpmのphp(レッドハット製?)のspecと
php-4.3.11.tar.gzに入っているsepcとだいぶ違います。
(レッドハットの方は複数のパッケージが作られる。)

しかもrpmの更新が遅い気がします。 皆さんはtarから
コンパイルしてインストールしているのでしょうか

675nobodyさん:2005/06/16(木) 00:47:43 ID:???
>>673
ファイルの更新日時を取得すれば解決。
しかしそもそものデータの作り方自体に欠陥がある。
676nobodyさん:2005/06/16(木) 00:49:58 ID:???
>>673
そういうトリッキーな事をするより、正しいデータが取得できるBBSのページを解析した方がいいんでないの?
出力されているhtmlをよーくみれば、各投稿で生成される構造が見えてくるよ。
677nobodyさん:2005/06/16(木) 00:57:29 ID:???
>>674
各ディストリビュータ(redhatとか)が オイラの利用者にはこういう設定でいいや と決めたspecなので、
オリジナルとは変わる可能性があります。
その設定に不満がある人やrpm化されるまでの時間差が耐えられない人は、
自分でコンパイルすることになるでしょう。
678673:2005/06/16(木) 01:26:24 ID:3ZI3JzMn
>>675
YYYYMMDDHHMMSS.jpegみたいな感じだったとしても、今度は、あり得る画像URLを生成してそれの存在を確認するとしたらえらいことになりそうな気が。
※画像を貼るBBSは別の鯖なんです。
>>676
画像を貼るBBSが吐き出すhtmlで、なんとなく目星はついてきました。
やはり、丸ごとそのページのソースを取得してそれをごにょごにょ、で画像ファイル名を抜き出し、配列に入れてforで<img src〜>って感じですかね?
679nobodyさん:2005/06/16(木) 01:47:27 ID:???
>>674
RHL9以前は保守終了してるんだけど。

680nobodyさん:2005/06/16(木) 02:10:27 ID:???
>>674
RHELのrpmのSPECを参考に、最新のPHPのtarballを利用した
パッケージ作って、それを使ってる。patchは古いものの多く
(既に今のバージョンで適応済み)は削除して、一部に
他のディストリ由来のものを追加、リリース後CVSで改修された
ものの内で必要なものをpatch化して、それも充ててる。

PHPのバージョンに関して古い互換性を考慮しながらやる必要が
自分の場合はないので、結構適当にパッケージ化してる(台数はそこそこあるので)。
681664=670:2005/06/16(木) 08:23:32 ID:???
>>672
レスありがとうございます。
リンク先覗いてみましたがとても興味深いです。
まだまだ初心者ですが、最終的にはこのあたりのことも視野に入れて学習しようと思います。
682nobodyさん:2005/06/16(木) 09:48:40 ID:???
>>668
663が情報開示しないのだから、こっちも分かる範囲で
基本的には「できる」ってこたえておけばいいんじゃね。
683nobodyさん:2005/06/16(木) 12:05:55 ID:CwEuwFbG
Windowsの環境でmkdirでフォルダを作成すると読み取り専用になってしまう
ようなのですが、これを0777というふうに出来ないでしょうか?。PHPで自動で
削除したフォルダをPHPで削除したいと考えているのですがパーミッションがぁ
と怒られてしまいます-;。
684nobodyさん:2005/06/16(木) 12:09:36 ID:???
Windowsでは無理なんじゃね?
685nobodyさん:2005/06/16(木) 12:17:34 ID:???
>>683
IIS の環境だけど、普通に mkdir, rmdir できてるけどなぁ。
作成したフォルダの所有者は、WEBサーバーを実行しているユーザー名になってる?
686nobodyさん:2005/06/16(木) 15:59:01 ID:JmLWFhKu
PHPからMYSQLへデータを追加したらありえないぐらい文字化けします。色々調べましたがわかりません

PHP4.3.11 保存コードEUCでブラウザ表示はSJIS設定
でphp.iniを設定
MYSQL文字コード sjisで文字化け
         ujisに変更しても文字化けで
登録されます。解決策をお教えいただけるとありがたいです。
687nobodyさん:2005/06/16(木) 16:52:02 ID:???
MYSQLの文字コードSJISなの?
688nobodyさん:2005/06/16(木) 17:00:04 ID:???
Notice: Undefined offset





( ゚д゚)ハァ?ナンダソリャ
689nobodyさん:2005/06/16(木) 17:03:43 ID:???
>>688
それだけ提示されてもエスパーではないので……
690nobodyさん:2005/06/16(木) 17:07:56 ID:???
Notice: Undefined offset: 21 ********** 37
から
Notice: Undefined offset: 1 ********** 37

までズラーっとエラーでたぽ・・・
37行目は
list($a,$b,$c,$d,$e) = explode( "\t", $count[$i]);
なんだが何がおかしいぽ・・・
691nobodyさん:2005/06/16(木) 17:10:00 ID:???
<?php
error_reporting(E_ALL);
$a[0] = 0;
for ($i = 1; $i < 22; $i++) {
echo $a[$i];
}
?>
692nobodyさん:2005/06/16(木) 17:10:54 ID:???
$count配列に offset の値(21とか1)の要素がないんだろ
教わりたいんならマジメに書けよ
693nobodyさん:2005/06/16(木) 17:31:19 ID:???
エスパー志望です。
>>688
1.配列の要素数が期待されているものと違う。
2.配列の要素の型が期待されているものと違う。
3.配列が期待されているところに配列以外を代入している。
offsetの後に表示されたのが
0なら2.か3.
0以上なら1.
いかがでしょうか。
694nobodyさん:2005/06/16(木) 17:33:08 ID:JmLWFhKu
たとえば、ローカル環境がWinだとして
保存コードがSJIS ブラウザ出力がSJISでiniを
設定していたとして、ローカルではうまくいくけど
実サーバがLINUXだったときとかの場合やっぱり
スクリプトを実サーバ用にあわせて改良しないと駄目なんですか?LINUXではEUCコードとかあとデータベースとかでローカル環境では正常だけUPしたら文字化けとか・・・いちいちめんどいですねぇ><
実際の開発する人はこの辺をどういう風にしているんでしょうか?
695nobodyさん:2005/06/16(木) 17:39:02 ID:???
>>694
いちいち多様な環境に合わせるような面倒くさいことはやりたくないので、
最終的に使用する環境にテストの方を合わせて作業する。
まあ余力があるならスクリプトの方を両方の違った環境に対応するように作ったら?
696nobodyさん:2005/06/16(木) 17:43:00 ID:???
テスト環境がwinでもEUCに統一しておけば面倒や余計な処理が無くなる気がしますが。。
697nobodyさん:2005/06/16(木) 18:32:04 ID:???
.htaccessにphp_flag display_errors onでエラー表示をONにできますが
php_flag error_reporting 2047という風にerror_reportingも変えることはできないのでしょうか?
698nobodyさん:2005/06/16(木) 18:38:15 ID:???
   〃∩ ∧_∧  ぜんぶマニュアルに書いてあったでつ
   ⊂⌒( ´・ω・)く まぬある - 設定を変更するには
     `ヽ_っ⌒/⌒c ttp://www.php.net/manual/ja/configuration.changes.php
699nobodyさん:2005/06/16(木) 18:40:39 ID:???
>>698
サンクス
700nobodyさん:2005/06/16(木) 18:45:35 ID:???
print $HTTP_USER_AGENT;
で何も表示されないのはなじぇでちゅか?
701nobodyさん:2005/06/16(木) 18:47:53 ID:???
>>700
phpinfo()で確認してみまちょうね〜
702nobodyさん:2005/06/16(木) 19:04:27 ID:2f2I+b9c
>>695
最初はそうしてたんだけどね
MYSQLをWINで使うにはSJISで統一しないと
文字化けするんだよ・・・
これしか方法はないらしい
703nobodyさん:2005/06/16(木) 19:20:58 ID:2f2I+b9c
なんか、最近求人情報でPHPプログラマ募集
の広告みなくなったな・・・

PHPはきえていくのだろうか・・・俺PHPしか使えないのに・・・
30歳だし
704nobodyさん:2005/06/16(木) 19:36:10 ID:IS4stV05
環境は、RH9.0 php4.3.5 qmail1.03の自宅サーバーです。
qmailから渡されたメールをコマンドラインで処理するスクリプトが作動せずに困っています。
アカウントの.qmailファイルには「|/(スクリプトのPATH)」と記載してあります。
テスト用スクリプトは以下のような内容です。(某板の住人さんに書いて頂きました)

#!/usr/local/bin/php
<?php
$stdin = fopen('php://stdin', 'r');
$line = fread($stdin, 1000);
mail ("[email protected]", "test", $line);
?>

スクリプトのパーミッションは755で、ファイルオーナーはrootになっています。
maillogには「delivery 1: deferral: Could_not_open_input_file:__./ 」と出ています。
qmailが悪いのかphp-cli.iniが悪いのか、その他の原因があるのか想像も付きません。
どなたかお気づきの点がありましたらご教授お願い致します。
705nobodyさん:2005/06/16(木) 19:36:52 ID:???
>>703
うち募集しているけど、誰も来ない。
706nobodyさん:2005/06/16(木) 19:55:45 ID:???
PHPだけ出来てもなぁ…
707nobodyさん:2005/06/16(木) 20:26:50 ID:???
>>704
おもしろそうなので、やってみましたけど動きましたよ。
(Solaris10、PHP5.0.4、qmail1.03)

普通に sh ./スクリプト で実行してみて、キーボードから適当に文字を
入力して、[email protected] 宛に届きます?
708nobodyさん:2005/06/16(木) 20:40:11 ID:???
>>702
Windowsの「コマンドプロンプト」が対応してないだけ<文字化け
709704:2005/06/16(木) 21:10:42 ID:IS4stV05
>707さん
早速のレスありがとうございます。
Linux歴2ヶ月で、2ヶ月間でようやくウェブ公開まで漕ぎつけた所なのですが、
残念ながら勉強不足のため、「普通に sh ./スクリプト で実行」の意味が
理解できません。( ´・_・`)
sh /(スクリプトのパス) とやってもsyntaxエラーがでてしまいました。
具体的にどのようなコマンドを打てばいいのでしょう?
710nobodyさん:2005/06/16(木) 22:08:33 ID:???
PHP4で、再帰的にディレクトリを作成するにはどうしたらいいでしょう。
PHP5なら mkdir("foo/bar/baz", 0777, true) みたいに第3引数にtrueを指定すればよいみたいですが。
どうぞよろしくおねがいします。
711nobodyさん:2005/06/16(木) 22:20:06 ID:???
urlencode()すると、例えばhttp://localhost/がhttp%3A%2F%2Flocalhost%2Fとやたら丁寧にエンコードされてしまうけど
必要なときにurldecode()すれば問題ありませんか?
712707:2005/06/16(木) 22:20:46 ID:???
>>709
スラッシュの前のピリオドが抜けてるみたいですが。。。
間違えにくいように、確認手順を変更すると共に、具体例を書きますね。
スクリプト名やディレクトリ名は読み替えてくださいまし。

テスト用スクリプトのファイル名 hoge.php
上記スクリプトが存在するディレクトリ /tmp

この状態でLinuxのコマンドプロンプトから以下を入力する。
"test" の後ろの縦棒はSHIFT キーと \ を押した文字です。

echo "test" | /tmp/hoge.php [Enter]

これで、[email protected] 宛にメールが届けばスクリプトそのものは
問題ないと思います。。。という意図が先のカキコでした。
713nobodyさん:2005/06/16(木) 22:27:46 ID:???
>>710
function __mkdir($path) {
 if (is_dir($path)) return;
 __mkdir(dirname($path));
 mkdir($path);
}

__mkdir('/path/path/path/');
714nobodyさん:2005/06/16(木) 22:33:45 ID:???
>>710

>>713 さんのように一階層毎に作成するか、UNIX環境なら以下でもOK
system('/bin/mkdir -p foo/bar/baz');
715nobodyさん:2005/06/16(木) 22:54:37 ID:???
すみませんが、質問させてください。
RSSから記事を拾ってきて、茶筅で形態素解析を行うスクリプトを
動かしたいのですが、popenでのパイプが上手く動きません。
環境は自宅鯖で「WindowsXP SP2+Apache2.0.54+PHP 5.0.4」です。
関係無いと思いますが、safe_modeはOFFです(´・ω・`)

<?php
require_once("XML/RSS.php");
// ChaSenのパス
$chasen = 'chasen.exe';
// RSSのパス
$url = "http://slashdot.jp/slashdotjp.rss";
$RSS = & new XML_RSS($url);
$RSS->parse();
// 形態素解析を行う文章
$rand = array_rand( $RSS->items );
$str = mb_convert_encoding($RSS->items[$rand]["description"], "SJIS", "auto");
// 形態素解析をしたい文章を渡しつつ、ChaSenへのハンドルオープン
$handle = popen("echo '$str' | $chasen ", 'r');
// 結果を1行ずつ取得
while ($get_chasen = fgets ($handle)) {
// ChaSenの結果がTAB区切りで帰ってくるので\tで分解
$kaiseki = split ("\t", $get_chasen);
// $wakatigaki 配列へ わかち書きしたデータを格納しておく
$wakatigaki[] = $kaiseki[0];
}
//ハンドルを閉じる
pclose ($handle);
?>
716nobodyさん:2005/06/16(木) 22:57:56 ID:???
>>713
これって、__mkdir('path/path/path') のように先頭の / がない状態で
呼び出されると無限ループしそうな希ガス

if ($path == "" || is_dir($path)) return;
のほうがいいんぢゃね?
717nobodyさん:2005/06/16(木) 23:06:10 ID:???
最近、PHPでWebプログラムを始めたのですが、(おそらくPHPに限らず)無限ループをCGI上で起こした場合の挙動について知りたいのですが、一般的にCGI(PHP)実行のタイムアウト時間などが設定されていて外部から実行が強制的に終了されることなどがあるのでしょうか?
また、無限ループ、もしくは限りなくランタイム時間が長いCGIを実行中にユーザがブラウザの中止ボタンを押す、もしくはブラウザを終了させた場合は実行中のCGIがその場で終了されると思っていいのでしょうか?

レンタルサーバ(FreeBSD)でWEBを構築しているのですが、共有サーバなのでもしもを考えて、実験するにも気が引けています。
やってはいけないのは分かっていますが、それ以上の情報がないので疑問に思っています。
718nobodyさん:2005/06/16(木) 23:21:53 ID:???
PHPとMySQLを学習中なのですが、
MySQLのコマンドラインからSQL文を入力するときは文末に「;」が必要ですが、
PHP中でSQL文を発行するときには文末に「;」を全くつけていません。
入門本でもそこに関する記述が見当たらないのですが、
必要ないのでしょうか?
719nobodyさん:2005/06/16(木) 23:28:57 ID:i9vZ9WMb
教えてください。

ApacheとPHP5で掲示板を作っているのですが、「標準出力」に書き出せばブラウザに表示されると思ったところ

例1:print('aaa');→確かにブラウザに表示される
例2:readfile(FileName);→確かにブラウザに表示される

例3:$FH=fopen('php://stdout','w');
fwrite($FH,'aaa');→ブラウザ真っ白 flush($FH);しても同じ

自分としては例1例2と同様にブラウザに送られると思ったのですが…
なにか使い方間違っているのでしょうか。
720nobodyさん:2005/06/16(木) 23:29:41 ID:???
>>715
どううまく動かないのか書いてくれてないので適当にありえそうな事を書いていくと、
・chasenのパスがおかしい
・echo '$str' が 茶筌の入力として不当。 < ' 'に括られる
・chasenの文字コード縛り(winバイナリはsjisだったよーな。今はどうなっているか知らない)

>>717
つ [ マニュアルの接続処理のページ]
ttp://www.php.net/manual/ja/features.connection-handling.php
721nobodyさん:2005/06/16(木) 23:30:37 ID:???
>>717
実験はローカルでやりなさいな
722nobodyさん:2005/06/16(木) 23:43:56 ID:???
>>717
仕組みはあるよ。その環境でそういったことをしてるのかは知らんが。
PHP限定でいえば、max_execution_timeとか。
CGIはプロセス監視して怪しいのは殺すとか。
ただサーバモジュールで動いてるphpやmod_perl/rubyとか、
リソースの細かい制限はちと難しいね。
723nobodyさん:2005/06/16(木) 23:52:58 ID:???
>>718
PHPからMySQLにクエリを発行する場合、
1クエリ関数で1クエリが完結していないと駄目という
制限があるので、自ずとセパレータの;の出番がなくなる。
使うのは精精クエリにコメントを含める時ぐらいだろうか。
724723:2005/06/17(金) 00:09:16 ID:???
>>718
MySQLi拡張だと制限のない方法もある
http://jp.php.net/manual/ja/function.mysqli-multi-query.php
725715:2005/06/17(金) 00:12:35 ID:???
>>720
すいません、問題はpopenした$handleからfgetsで
文字列が取得できないことです。

・パスは間違っていないと思います。
 以下のような、構成です。
htdocs/
chasen.php ・・・問題のPHPファイル
chasen.exe ・・・茶筅バイナリ
libchasen.dll ・・・茶筅DLL
libiconv-2.dll ・・・iconvDLL
dic/ ・・・辞書ディレクトリ

・''括りに問題が無いか、確認してみます。
・SJISでmb_convert_encodingしているので大丈夫だと思います。
726nobodyさん:2005/06/17(金) 01:40:07 ID:???
>>719
fwrite()の出力先は標準出力ではない。
727nobodyさん:2005/06/17(金) 02:12:27 ID:5rfnraoS
質問をさせていただければと思います

cronで、こまんどらいんのPHP(4.2.?か4.3.?・・・あいまいですみません。)
をたたいた場合、

PHPコードの中で、cronを実行したユーザ名を取得できますか?

それが、できればベストなんですが、
あるいは、もしできないとしたら、
cron で、シェルスクリプトを実行した場合、
シェルスクリプトの中で、cronを実行したユーザ名を取得できますか?
もしできれば、シェルスクリプトの中でphpファイルを叩くとき、
引数にそやつを入れられるので、なんとかなるのですが・・・

よろしくお願い申し上げます。
728nobodyさん:2005/06/17(金) 02:25:49 ID:???
>>727
相応の関数があるかもしれんけど、思いつきで、
$user=`/path/to/whoami`;
729727:2005/06/17(金) 02:36:56 ID:???
>>728
あ、そっか。なるほど。どもです。

ところで、
$user=`/path/to/whoami`; ってperlの文法じゃなかったでしたっけ?(汗

$user = system("/path/to/whoami"); ・・・かな?

あーでも、PHPで#でコメントアウトできるってこないだしったばかりだからなー・・・
かんちがいしてるかも
730nobodyさん:2005/06/17(金) 04:12:18 ID:???
両方試してみ。
731nobodyさん:2005/06/17(金) 08:04:32 ID:???
>>713,714
どうもありがとう。再帰使う方法は自分でも考えたんですが、PHPならもっと直接的な方法があるかなと思って。

>>716
dirname("/") は "" じゃなくて "/" になるから、if ($path == "/" || is_dir($path)) return; にしました。
732nobodyさん:2005/06/17(金) 09:08:57 ID:2OXsSqlQ
FORMでデータを受け取る場合
<input type="text" name="name">とあった場合
スクリプトのほうでうけとるには $nameと$_REQUEST["name"]
と二つありますがどちらを使うのがいいんでしょうか?
733nobodyさん:2005/06/17(金) 10:12:01 ID:???
>>732
マニュアル参照して欲しいことだが……。
バージョンによっても違うしな。

POST送信と決まっているなら
$_POST["name"]
の方がいいかも。
734nobodyさん:2005/06/17(金) 10:17:12 ID:???
>>716
フォローありがとう。
空文字列を与えると無限ループになりますね。
dirnameは相対パスを与えると最後にカレントディレクトリ "." を
返してくれるから大丈夫でした。

>>731
Win32環境では "\" が返されるようです。
上記の無限ループと併せて以下のようにすればいけるかと。
if (is_dir(realpath($path))) return;
735nobodyさん:2005/06/17(金) 10:32:28 ID:???
パス記号周りの微妙な動作に振り回されたくなければこんな感じの方がいい鴨

$pathparts = explode('/', 'path/path/path');

$path = '';
foreach ($pathparts as $temppath) {
$path .= $temppath . '/';

if (is_dir($path) == false)
mkdir($path);
}
736704:2005/06/17(金) 11:27:35 ID:sgjY/fbg
>>707さん

非常に解りやすい解説ありがとうございました。
コマンドを実行した結果は、Could not open input file というエラーでした。
ファイルのパーミッションは755でオーナーはroot。実行したのもrootです。

うーむ、何が悪いのだろう??? php本体が正常に働いていないのかな?
とDSO版のPHPは稼動しており、phpで作成したページをapacheサーバーで公開して
作動しているのは確認しております。
737707:2005/06/17(金) 12:26:33 ID:???
>>736
こんな方法でメールを横取りできると判って、おもしろいな、とやってみただけなので
気にせんでくだされ。

Could not open input file ってことは標準入力がオープンできないんでしょうね。
$stdin = fopen('php://stdin', 'r');
$line = fread($stdin, 1000);
の辺りのスペルミスかな。。。

で、ちょっとググッてみましたけど、標準入力をわざわざオープンしなくても STDIN という
ハンドルでオープン済みなんですね。こんな感じでよさげです。

#!/usr/local/bin/php
<?php
//$stdin = fopen('php://stdin', 'r'); //いらない
$line = fread(STDIN, 1000);
mail ("[email protected]", "test", $line);
?>

これでダメなら、小生では判らないです。。。>識者光臨キボンヌ
738nobodyさん:2005/06/17(金) 16:03:39 ID:???
質問させてください。
PHP4.3.9+apache2+CentOS3.4を使っています。

携帯で表示させるため、SJISにて入力フォームを作ってPOSTで受け取ろうとすると
$_POST[添え字] = 値

において、値の部分は正常に受け取れるのですが添え字の部分が
一部文字化けしてしまいます。

あああ
あいう
くるま

などは問題ないのですが
ゲーム
さーば
など、"ー"を含むものは"\"となってしまいます。
また、ーーーとすると\ーーとなります。

EUCに変換してみたり、UTF-8にしてみたりもしましたが元のpostデータが
おかしいのでどうにもなりません。
このような場合どのようにすればいいのでしょうか?
739nobodyさん:2005/06/17(金) 16:11:10 ID:???
>>738
nameに”−”を使わないようにする
740nobodyさん:2005/06/17(金) 16:12:06 ID:???
>>738
根本的ではないのだが、添え字(つまり、inputどのname属性だよね)に
日本語使わなければいいのでは?
741nobodyさん:2005/06/17(金) 16:23:32 ID:???
携帯ならVodafoneとかさらに制限があったような。
742nobodyさん:2005/06/17(金) 18:06:42 ID:???
>>738
ちゃんとURLエンコードして投げるクライアントのみ使用する。
PHP側で$_POSTへの展開が上手く動作しないのなら、自分でパースする。
しかし展開が上手いってたとしても文字コードが異なれば、
変換は自分でする必要が多分あるだろう。
んなことの手間かけるよりも、>>740が一番良い解決法ではないか?
743nobodyさん:2005/06/17(金) 22:21:22 ID:90esTsrU
リストボックスを二つ用意して例えば一つは沿線名
もう一つは駅名でさデータベースから沿線名をよみこんでそのひとつを
選択して検索ボタンを押したときその沿線にそった駅名がよみこまれる処理は
できたんだけど、リストボックスの沿線名を選んだときに検索ボタンとか押さずに
選んだ瞬間に駅名が読み込まれるっていうスクリプトはできないの?
やっぱりフォームだからなんらかのボタンをおさなければ実行しないんですか?
リストを選んだときに隣りのリストボックスで駅名がかわっていくHPを
みたんでどうやってつくるのかと・・・・わかる方がいればおしえてください
744nobodyさん:2005/06/17(金) 22:31:51 ID:???
>>743
それはWeb制作板のJavaScript関連スレなどで聞いてみな。
745nobodyさん:2005/06/17(金) 23:28:40 ID:???
PHPでWebアプリ作成する際、最も時間を取られるところは
CSSだったりJavascriptだったりするのは俺だけか?
PHP部分自体はDBからデータ取ったり入れたりするくらい
なもんだからたいして時間かからないしな。
746nobodyさん:2005/06/17(金) 23:39:45 ID:???
大規模でなければそうかもしれない
747nobodyさん:2005/06/18(土) 01:02:51 ID:???
PHP解説用FLASH作った
ttp://pya.cc/pyaimg/pimg.php?imgid=3207
748nobodyさん:2005/06/18(土) 01:16:06 ID:???
精神的有害だとぅー
749nobodyさん:2005/06/18(土) 09:40:33 ID:???
>>743
javascript セレクト 連動
でぐぐればすぐだよ。
750nobodyさん:2005/06/18(土) 11:50:53 ID:???
>>747
Operaが落ちた
751nobodyさん:2005/06/18(土) 13:40:12 ID:zGMUVtmv
PHPプログラマにとつて
javascriptは必須?
できなkればはずいですか?
752nobodyさん:2005/06/18(土) 14:25:59 ID:???
>>751
ときく時点でDQN。
PHPはサーバーサイドでしょ。
それに対して、Javascriptはクライアントサイド。
それぞれにできることが違うわけ。

PHPプログラマがPHPだけやればいいって意味ならいらないでしょ。
Webアプリを開発するプログラマなら、
必要に応じて使い分けるのでは?

753nobodyさん:2005/06/18(土) 15:52:42 ID:???
必須とまでは言えないけれども、
phpの長所・短所を把握した上で
必要に応じて必要な言語を学習して補完する能力は必要。
phpで書くか、javascriptで書くかは
使っているサーバと想定するユーザの環境を考えて
どちらに振り分けるのが良いかという問題であることが多い。
754nobodyさん:2005/06/18(土) 16:06:05 ID:???
HTML,CSSくらいしか出来ない全くのド素人が始めるにあたっていい参考書はありますか?

○○を作ってみよう!
みたいな感じで、作例に対する解説が多めに載っている初歩的なものが良いです。
755nobodyさん:2005/06/18(土) 16:35:05 ID:???
とりあえず、C言語の入門書でも買え
756nobodyさん:2005/06/18(土) 16:41:54 ID:???
いや、学研の電子ブロックで電子回路の仕組みから勉強したほうが。
757nobodyさん:2005/06/18(土) 16:43:27 ID:???
ttp://www.komonet.ne.jp/~php/
このサイトが良いんじゃなかろうか
758nobodyさん:2005/06/18(土) 17:46:12 ID:???
>>757
おお、分かりやすそうですね。
熟読してみます。ありがとう!
759nobodyさん:2005/06/18(土) 17:49:54 ID:???
児卑淫行化
760nobodyさん:2005/06/18(土) 20:59:10 ID:zGMUVtmv
PHPをこのままずっとやっていていいのだろうか・・・
32歳
PHPしかできないWEBプログラマです・・
お前ら将来のこと考えてる?
761nobodyさん:2005/06/18(土) 21:45:25 ID:???
>>760
ここに職業プログラマは、ほとんどいないだろ。
他に職があれば、将来を考えるまでもなく。
762nobodyさん:2005/06/18(土) 21:59:10 ID:???
なんつーか、PHPしか出来ないって言ってるレベルでは、PHPすらホントは出来てない。そういう気がする。
763nobodyさん:2005/06/18(土) 22:12:49 ID:RVi3eUVA
外部から内容を見ることのできないデータ格納ファイルとして
data.php
みたいに、拡張子をphpとしちゃうとどうなんでしょう。中身見えちゃいますか?
764nobodyさん:2005/06/18(土) 22:16:48 ID:???
>>760
こっちの板の方がいいんでないの?
http://pc8.2ch.net/prog/

まあプログラマに安住しない方がいいとは思うけど…
765nobodyさん:2005/06/18(土) 22:32:18 ID:???
>>763
データファイルの中身次第だろうけど、白紙のページが表示される。
たまたま、データファイルの先頭が <? なんかで始まるデータなら
PHP のエラーメッセージが表示されるかもしれんが。
ただ、その類のファイルは、URLでは参照できないディレクトリに
保存するのが普通。
766nobodyさん:2005/06/18(土) 23:47:13 ID:???
>>763
なんでデータファイルの拡張子をPHPにしたいわけ?
767nobodyさん:2005/06/18(土) 23:49:53 ID:???
中身を見せない為でしょうね
768nobodyさん:2005/06/18(土) 23:54:17 ID:???
perl等のcgiの場合は、データファイルの拡張子をcgiにしておくことで
shebang(一行目のアレ)無し+HTTPヘッダ出力無しでエラーになるから
それからの連想じゃないかねぇ。
769nobodyさん:2005/06/19(日) 00:43:24 ID:???
俺はテキストデータにする場合は、データファイルは.cgiにしてある。
最近は小規模でもめっきりDBに逃げてるけど。楽チンフォーー
770nobodyさん:2005/06/19(日) 00:53:50 ID:???
てか見せたくないファイルはApacheの設定で403にするだろ普通
771nobodyさん:2005/06/19(日) 00:54:57 ID:???
htaccessが置けないところもあるからじゃない?
772763:2005/06/19(日) 01:02:40 ID:???
そのファイルへ毎回<?を頭につけてやってしまえば、
なーもしないでサクッと導入できるんだけど、
これでいいんかな、とおもて質問したわけでございます。
結局のところ問題無い?ある?
問題あったとして、こちらに責任は被さる?個人情報とかあったとして。
773nobodyさん:2005/06/19(日) 06:09:14 ID:???
oioi
774nobodyさん:2005/06/19(日) 06:22:33 ID:???
>>772
漏れたら責任以前に信用なくしてさよならだな。
775nobodyさん:2005/06/19(日) 06:42:04 ID:???
かってにCookieが設定されてしまいます。
pma_lang
pma_charset
pma_collation_connection
pma_theme
たぶん、phpMyAdmin関係だと思うんですけど、
どうやって消すんでしょうか。
776nobodyさん:2005/06/19(日) 07:22:22 ID:???
有効期限とかパスとか調べて
setcookie("pma_lang", "", その他適切な引数);
っていうふうに空文字セットすれば消せるんじゃん?
別に消さなくてもいい気がするけど。
777nobodyさん:2005/06/19(日) 07:33:22 ID:???
phpmyadminだとしたら、cvsのrevision2.70では
setcookie('pma_lang', $lang, time() + 60*60*24*30,〜
ってなってるから、30日保持されて消えるようになっている。
パスの指定もきっちりしてあるから無意味にcookieを送出しなさそうだし、消す必要ないんじゃないの?
778nobodyさん:2005/06/19(日) 15:25:27 ID:TrIxMHAD
質問です。
classのfunctionの中で、同じ事を2回するのでさらにfunctionでまとめてしまいたいんですが
うまくいきません。以下みたいな感じです
<?php
class C
{
 function f()
 {
  function nikaisuru($v)
  {
   echo $v;
  }
  nikaisuru(1);
  nikaisuru(2);
 }
}

$c = new C();

$c->f();
?>
Apache/2.0.54 (Win32) PHP/5.0.4でエラーメッセージは
Fatal error: Non-static method C::nikaisuru() cannot be called statically です。
class定義の外ではf()の書き方でもうまく行きました。
また、nikaisuru()をf()から外に出してclass Cのfunctionとし、f()の中で$this->nikaisuru()
とすればうまく行きました。しかし、出来ればnikaisuru()はf()の中に入れてしまった方が
スッキリするんですが。どのようにすれば良いでしょうか。よろしくお願いします。
779nobodyさん:2005/06/19(日) 15:32:10 ID:???
それは出来ない。
俺的には呼び出す方が自然だしスッキリする。
780nobodyさん:2005/06/19(日) 16:43:56 ID:???
functionの中にfunctionいれれるのなんかJavaScriptくらいだろ。
$this->nikaisuru()でよろしく。
781nobodyさん:2005/06/19(日) 16:56:49 ID:???
>>778
privateメンバ関数定義すれば?
782778:2005/06/19(日) 17:20:34 ID:TrIxMHAD
privateメンバ関数を定義し、$this->nikaisuru() とする事にしました。
ありがとうございました。
783nobodyさん:2005/06/19(日) 23:30:53 ID:???
特定のサイトが更新されたら、自サイトに更新部分を自動で表示する
スクリプトって既にありますか?

例:ヤフーhttp://dailynews.yahoo.co.jp/fc/
の一部分の更新を、自サイトにも反映させる
784nobodyさん:2005/06/19(日) 23:37:04 ID:???
>>783
マルチウザイ。
すれ違い。というか板違い。
785nobodyさん:2005/06/19(日) 23:46:53 ID:???
>>783
RSSでも喰っとけ
786nobodyさん:2005/06/20(月) 00:00:37 ID:???
PHPからSQL文を発行したのですが、一つのテーブルからSELECT文で読み込むのは問題なくできるのですが、
複数のテーブルからSELECTで読み込もうとすると下記のようなエラーが出てしまいます。
Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\study\hogehoge.php on line 15
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\study\hogehoge.php on line 22
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\study\hogehoge.php on line 32
発行したSQL文は以下のとおりです。
1 $sql = "select name, schoolid from list_address";
2 $sql = "select name, school from list_address, list_school where list_adress.schoolid=list_school.schoolid";
1では問題なくブラウザに結果が出ましたが、2では上記のエラーがでます。
両方ともmysqlのコンソールで問題なく動くことは確認しました。

何が原因なのでしょうか?
787nobodyさん:2005/06/20(月) 00:14:49 ID:???
>>768
>Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\study\hogehoge.php on line 15
【和訳】
警告:mysql_num_fields():提供された引数は正しいMySQL resultリソースではありません。
788786:2005/06/20(月) 00:17:09 ID:???
レスありがとうございます。>>787
英文の内容は、「正しくないよ」くらいのことを言ってるのかな?とは分かったのですが、
何が正しくないのか分かりません。
コンソールでは通るのに、他に何か問題があるのでしょうか?
よろしくお願いします。
789nobodyさん:2005/06/20(月) 00:22:48 ID:???
>>788
mysql_num_fields関数に渡した引数が正しくない。
なぜ正しくないのかとかそういうことはソース晒してくれなきゃわからない。
くだ質レベルなわけだが。
790786:2005/06/20(月) 00:31:08 ID:???
レスありがとうございます。>>789
mysql_num_fieldsに渡した引数ですが、ソースのほかの部分については全く変わりはありません。
該当部分のみ抜き出すと
$rst = mysql_query($sql, $con);
$fldmax = mysql_num_fields($rst);
こんな感じです。
ソースには>>786の2つの文を両方記述してあり、片方ずつコメントアウトしてやると、
1ではうまくいくのに2ではうまくいかない、という状況です。
なんでだろう・・・。
791nobodyさん:2005/06/20(月) 00:42:58 ID:???
>>790
>4をよく読め。
まぁ、おそらくタイポだろ。


792786:2005/06/20(月) 00:47:47 ID:???
・・・dが一個抜けてるorz。
お騒がせしました。
793nobodyさん:2005/06/20(月) 02:24:17 ID:S3u+Ua7D
SQLインジェクションというのが流行っているので
入力された文字列をごにょごにょしたいのですが
一般的に 最低限これだけはやっとけ というのを
指南してほしいな♥
794nobodyさん:2005/06/20(月) 02:29:10 ID:???
♥ なんかに釣られないぞ
795nobodyさん:2005/06/20(月) 02:47:43 ID:???
最低限、使用するDBのマニュアルを読んどけ♥
796nobodyさん:2005/06/20(月) 03:05:59 ID:???
php.iniのsession.cache_limiter=privateにして
キャッシュの許可をしたいので、.htaccessに書き足したのですが
サーバエラーになります。

そのままsession.cache_limiter=privateを記述するだけでは
駄目なのでしょうか?書き方があれば、教えていただければと思います。
797796:2005/06/20(月) 03:29:45 ID:???
自己解決しました。。下記のようにすれば大丈夫でした。
php_flag session.cache_limiter public
798nobodyさん:2005/06/20(月) 04:50:32 ID:???
>>797
いや、それは違うぞ。
799nobodyさん:2005/06/20(月) 08:25:18 ID:???
>>785
ども。
今月号のウェブデザイニングかなんかでRSSをPHPでごにょごにょして
自サイトに表示させよう!ってコラムを発見したので
やってみまーす。
800nobodyさん:2005/06/20(月) 08:57:25 ID:BzVXX3sp
PHPでメールフォームをつくったんですが
受信してみると、変なメールアドレスから
送られてきます。送信した人のメールアドレスで
送られるようにするにはどうしたらいいんでしょうか?
801nobodyさん:2005/06/20(月) 09:01:44 ID:???
>>800
mailtoスキームで送信者のメーラをキックさせる。
802nobodyさん:2005/06/20(月) 09:12:26 ID:BzVXX3sp
>>801

それは、mb_send_mailをつかわないやりかたですか?
mb_send_mailを使った場合無理なのでしょうか?
803nobodyさん:2005/06/20(月) 09:40:22 ID:???
「送信した人」つー言い方がまずいかと。
メールフォームの送信ボタンを押した人(=訪問者)のメールアドレスつーことだと>>801に。
マニュアルのmailのページでも少し触れてあるけど、
特定のメールアドレスを設定したい場合にはenvelope-fromを指定します。
そうしないとweb鯖のユーザのメールアドレス(これはこれで送信した人のメールアドレスか、、)が使われます。
804nobodyさん:2005/06/20(月) 09:50:30 ID:BzVXX3sp
>>803
そうです、訪問者のメールアドレスから送信されたみたいな
感じでうけとりたいです。
mb_send_mailでは無理でしょうか?
805nobodyさん:2005/06/20(月) 10:55:21 ID:???
>>804
mb_send_mail($to,$subject,$message,$from);

で、$fromにアドレスぶちこめばいいんじゃないの?
塚、あんたはどうやってうまくいかなかったのかソースさらせば?

806nobodyさん:2005/06/20(月) 18:10:19 ID:mdvzeW1K
質問させて下さい。
HTMLでフレーム4分割したページがあります。
始めはそのうちの1フレームにログイン用のHTML(又はPHP)が表示されています。
そこでログインIDとPASSを入力し、submitボタンを押した時に
他の3フレームにそれぞれ違うPHPファイルを読み込みたいんです。

一つのフレームのリンクをクリックし、他の一つのフレームにPHPファイル
を読み込むような良くあることは出来るのですが、
(リンクにPHPファイルのパスとターゲットを指定すれば済むので)
上記に書いたことはどうやってやるのか全く分かりません。

それぞれのターゲット(フレーム)に読み込むPHPファイルは固定です。
ログイン情報を取得して表示する内容をID毎に変えるだけです。

どなたか分かる方がいらっしゃればご教授お願い致します。
807nobodyさん:2005/06/20(月) 18:23:03 ID:???
>>806
スレ違いどころか板違い。
808nobodyさん:2005/06/20(月) 19:35:17 ID:mdvzeW1K
>>807
返答ありがとうございます。
それはどういった意味ででしょうか?

HTMLの記述で何とかなるということでしょうか。
フレームにはtarget nameを設定してあります。
include()でPHPを読み込むにもheader()で飛ぶにも、
ターゲットの指定の仕方が分かりません。
809nobodyさん:2005/06/20(月) 19:38:06 ID:RcQFSBZs
フォームの検索ボタンを二つ入れる場合
上で検索して、その結果をつかってまた検索するといったような
処理をしたい場合
フォームを二つにわけるんですか?それとも一つのフォームのなかに
ボタンを二つつくるの?
810nobodyさん:2005/06/20(月) 19:42:26 ID:???
>>808
Webブラウザ(クライアント側)に依存する話題というこっちゃろ。
FlashとかJavaScriptとかその辺のとこいって訊け。
811nobodyさん:2005/06/20(月) 21:01:55 ID:???
>>809
どんなのか想像できないけど、お好きなように。
812806:2005/06/20(月) 21:13:52 ID:mdvzeW1K
>>808
返答ありがとうございます。

内部(LAN内)で使用するため他の環境(クライアント)を意識する必要はありません。
PHPでやりたかったのでここで質問させて頂きました。

分からない場合、もしくはPHPでは方法がない場合は返答されなくて結構です。
813nobodyさん:2005/06/20(月) 21:27:36 ID:???
>>812
最後の一文が余計だ。ここはお前のHPじゃないんだよ?

質問の答えだが、ログインフレームで飛ばすtargetをtopにして、
フレームを呼ぶだけでいいんじゃないの?
814nobodyさん:2005/06/20(月) 21:31:25 ID:???
>>812
自分はよほどの常識人だとでも思っているんだろうなぁ・・・
815 :2005/06/20(月) 21:48:41 ID:F0wN879H
web制作板で質問し、誘導されてきました。

ttp://halpal.net/xoops/modules/auth/buy_list.html
のように検索→選択→.vcs .csv .pdbなどで出力というのは
どうやっているのでしょうか?
ずーぷすでないと無理なのでしょうか?
816nobodyさん:2005/06/20(月) 22:20:11 ID:???
>>812
>>593あたりからのレスにもあるけど、PHP(というかWebサーバ)にとっては
送られてくるhttpリクエストにどう答えるかつーのが仕事でフレームやら別ウィンドウやらは対象外なんだよね。
そういう事はhttpリクエストの前、つまりリクエストをするブラウザ側で解決しておかなきゃいけない。
特に今回のようなログイン認証のような物の場合は、サイト構成を考える時点から気にしなきゃいけなかった。

つっても、選択肢はあんまりないんだけどね。
1. frameに固執する
 a. >>813のいうように、_top自体から描き直す。各frameでのidの同期はsessionとかを使う。
 b. JavaScriptを使って各frameを順次リクエストする。idの同期は上に同じ。
2. frameをやめて一枚のページにする

まぁ、htmlのお話でPHPはあんまり関係なかったと。
817nobodyさん:2005/06/20(月) 23:49:40 ID:???
PHP_INI_SYSTEM な設定ディレクティブについて教えてください。

VirtualHost ごとに safe_mode を設定したいのですが、
どうも効いていないようなのです。

VirtualHost ごとの PHP_INI_SYSTEM な設定というのは
できないものなのでしょうか?
818nobodyさん:2005/06/20(月) 23:59:55 ID:???
>>817
_
819799:2005/06/21(火) 00:01:43 ID:???
なんとレッツPHPにて、公開されてました。。。
すんません。

−RSSブロガー−■ 概要
特定サイトのRSSを表示します
ブログの右ブロックとかに置くとか。
シンプル。件数指定可能

820nobodyさん:2005/06/21(火) 00:33:09 ID:???
>>817
サーバモジュール版を使ってる限り無理な気がする。
httpd.conf内の<VirtualHost>ディレクティブ毎にphp_flagでOn/Offしたら
"出来ちゃったり" するかも知れないが。
821820:2005/06/21(火) 00:43:20 ID:???
http://jp.php.net/manual/ja/security.apache.phpの
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>ディレクティブ毎に切り替え(上書き)出来るのかは疑問だな。
822820:2005/06/21(火) 01:07:43 ID:???
|php_admin_value で設定された設定オプションの値は、
|.htaccess や VirtualHost ディレクティブ内から上書きできません。

これはこういうことか、
・php.iniの値はphp_admin_*で上書き可能。
・但しグローバルで設定したphp_admin_*の値は
VirtualHostディレクティブ内からは上書き不可。
・つまりグローバルで設定していなければ、VirtualHost
ディレクティブ内でphp_admin_*の値は個別に設定できる。

試して結果出してくれ>>817
823nobodyさん:2005/06/21(火) 03:37:33 ID:???
突然だけど、マルチポストをまるぽと呼んでみないかい?
824nobodyさん:2005/06/21(火) 03:45:21 ID:???
まるぺ(教)みたいだ
825nobodyさん:2005/06/21(火) 13:04:34 ID:YilT+fOH
僕はPHPが理解できましぇん><
駄目です。そんな俺を一人前にしてくれ
頼む・・・はげ板在住おろかなPHPプログラマより・・・お前らへ
最後のお願いです。
826nobodyさん:2005/06/21(火) 13:13:07 ID:???
まず何かつくってみよう。一行掲示板でもいい。
そしてどんどん規模が大きくて複雑なものに挑戦していこう。
はげ2号より。
827nobodyさん:2005/06/21(火) 13:19:58 ID:???
とりあえず、暫く無視してみよう
828nobodyさん:2005/06/21(火) 16:45:20 ID:???
始めに作るといえばやっぱ
Hello World

phpinfo()
だろ。
829nobodyさん:2005/06/21(火) 17:20:01 ID:???
PHPでHello Worldやってもなぁ・・・
830nobodyさん:2005/06/21(火) 17:28:53 ID:???
<?php #Hello world を出力する ?>
Hello world
831nobodyさん:2005/06/21(火) 18:05:35 ID:???
>>830
おしい!
832nobodyさん:2005/06/21(火) 18:06:26 ID:???
<html><head><title>PHPでHello World!</title></head><body>
<p>Hello<?php echo ' '; ?>
World!</p>
</body></html>
833nobodyさん:2005/06/21(火) 18:07:22 ID:???
>>833
あともう少し!
834nobodyさん:2005/06/21(火) 18:18:45 ID:???
>>832
えええええええ
835nobodyさん:2005/06/21(火) 18:21:08 ID:???
<?php
// phpによる至極簡単なHello World!表示の例
$a='eJyzySjJzbGzyUhNTLGzKcksyUm1C/AI'.
'aDrqkZqTk68Qnl+Uk6Joow+RsNGHKEvK'.
'T6m0symwQ1VTAJSHyOiDzQQAtVYfZw==';
echo gzuncompress(base64_decode($a));
?>
836nobodyさん:2005/06/21(火) 18:21:35 ID:???
<?php
$aho = "Hello World!";
echo <<<HOGE
<html><head><title>$aho</title></head><body>
<p>$aho</p></body></html>
HOGE;
?>
837nobodyさん:2005/06/21(火) 18:24:11 ID:???
奇妙なHello Wordl特集というサイトが作れそうだな。
838nobodyさん:2005/06/21(火) 18:30:41 ID:???
つーか理解できないのに何故PHPプログラマなんだ・・・
839nobodyさん:2005/06/21(火) 18:37:13 ID:???
自称ならなんでもあり


σ(゚∀゚ ∬オレ自称神
840nobodyさん:2005/06/21(火) 18:53:02 ID:???
>>825は、別にPHPのスキルを一人前にしてくれとは言っていない。
841nobodyさん:2005/06/21(火) 19:16:01 ID:???
あれだろセクースしたいんじゃねのか?
842nobodyさん:2005/06/21(火) 19:29:38 ID:???
セクースしたら一人前なのか、そうなのか?
童貞は半人前なのか、そうなのか?
843nobodyさん:2005/06/21(火) 19:31:10 ID:???
だったら俺は0.75人前だ
844nobodyさん:2005/06/21(火) 19:36:43 ID:LzmmEaFG
<?php
$id=printf("hello world",\n);
?>
<html><head></head>
<body>$id</body>
</html>
おまえらちゃんと答えてやろうぜ。
845nobodyさん:2005/06/21(火) 20:39:23 ID:???
え!?
<?=$id?>
846nobodyさん:2005/06/21(火) 21:14:41 ID:???
php -r "echo 'Hello World!';" で良いじゃん。
847nobodyさん:2005/06/21(火) 21:49:58 ID:???
Let's PHPさんとこの簡易チャットを改造して使っているんですが、
投稿できなくなることがあります。環境はApache1.3.33でPHP4.2.3です。
よろしければどこが悪いか見ていただけませんか?
http://www.uplo.net/www/vip18366.txt
error.txtの内容はスクリプトの一番下に記述しています。
848nobodyさん:2005/06/21(火) 22:37:45 ID:???
>>847
Let's PHPで聞けばいいやん?
849nobodyさん:2005/06/21(火) 22:50:31 ID:???
>>847
ここは○投げスレか?

現在の目から見れば、そのプログラムの書き方は宜しくないよとの警告。
もっとも原因は古いPHPのバグ/挙動によるもので、そのソースが書かれた
当時に把握しとけというのは恐らく酷というもの。

俺の回答としては「古いソースを参考するのではなく、そのまま使うのは止めれ」
PHP4.2.xなんかで動かさないからという人は、マニュアルでも読んで自力で対処してください。
そもそもエラーメッセージにも書いてあるし。
850nobodyさん:2005/06/21(火) 23:10:44 ID:???
>>848
全くそのとおりです。でも、改造してるという後ろめたさからどうも質問しにくくて・・・

>>849
よくわかりました。ですがワタシにはとてもスクリプトを組むことができません。
本来ならここでドキュメントあさりにいくところですが、今は少し時間がなくて、
力をお借りしようと思った次第です。

ご親切にありがとうございました。

#敬語ってムズカシイですね。
851nobodyさん:2005/06/21(火) 23:12:55 ID:???
古いソースを恥ずかしげも無く晒し続ける某が悪い
852nobodyさん:2005/06/22(水) 01:29:27 ID:???
853nobodyさん:2005/06/22(水) 08:46:26 ID:???
854nobodyさん:2005/06/22(水) 09:20:03 ID:???
れっつPHP昨晩から繋がらないね
855nobodyさん:2005/06/22(水) 11:20:01 ID:???
多分>>851の所為だな
856nobodyさん:2005/06/22(水) 17:20:22 ID:36ejXiBF
仕事でPHPにいきずまってます
上司からは進捗をやたらきかれるし
フォーム制作だけで3週間かかっていますが
文字化けが解消しません・・・・
頼む・・・はげ板自称プログラマの俺が、ほんとにほんとに
最後のおねがいです...どうかどうか俺を一人前に・・・・
そして、願わくば俺の額に髪を・・・
857nobodyさん:2005/06/22(水) 17:24:46 ID:???
>>856
環境もわからんのにどうしろと。
サーバーの種類、設定
PHPのバージョン、設定
とかぐらいかけよ。

あとは、何をいれたらどう化けるのかとかさ。

858nobodyさん:2005/06/22(水) 17:26:58 ID:???
>>856
解雇された方が、みんなが幸せだよ。
859nobodyさん:2005/06/22(水) 18:26:16 ID:BW+9vfGf
すいません。--enable-memory-limit を外して PHP をコンパイルしてしまった場合は
ファイルアップロード関数は使えないのでしょうか?
いろいろ実験してみたのですが、全く動作しません。
だれか教えて!
860nobodyさん:2005/06/22(水) 18:45:09 ID:???
>>859
enable-memory-limitは、メモリの制限が「できるようにする」オプション。
つけなかった場合、メモリの制限ができない(ある意味怖い状態)だけ。
ファイルのアップロード(って行為しか示してなくて、実現する方法は一様じゃないんだけど...)
できないのは別の理由。
861nobodyさん:2005/06/22(水) 19:31:46 ID:SgJBDR+R
配布されているメールフォームスクリプトで
本文が複数行入力された際に
確認画面及びメールが正しく改行されるものを教えて頂けないでしょうか

確認画面では<br>をつけて、メールでは消すというのが
自分では上手くできませんでした
862nobodyさん:2005/06/22(水) 19:42:38 ID:???
nl2brで調べる
863nobodyさん:2005/06/22(水) 20:09:05 ID:kA0IpK2m
掲示板などのコンテンツを、テンプレートを使用して、
HTMLやテキスト形式、csvなど、色々な形式で出力したいと考えています。
それで、タグのサニタイズや改行の変換は
その出力時に行いたいのですが、その場合、フォームデータを
保存するときに、どのような形式にすればいいのかが
いまいち分かりません。
いまのところ、本文内の改行はCRに変換して、レコード区切りLFのtsvで
いこうかと思ってるんですが、変換処理がやたら多くなってしまう気が。
一般的にはどうするものなんでしょうか。
864nobodyさん:2005/06/22(水) 20:14:27 ID:???
規模にもよるけどデータベースを使うよ
865nobodyさん:2005/06/22(水) 20:34:12 ID:???
PHPでは文字コードEUC-JP、改行コードLFで保存しておくのが主流。
でも標準入出力以外では改行コードはあまり気にすることはない。

SHIFT-JISでは漢字をクォートでくくった時などに1byte文字の誤解釈が発生する場合がある。
最近じゃxmlがらみでunicodeがメジャーになりつつあるけどEUC-JPでもなんとかなる。

入力チェック,改行変換などはファイル保存前に行うのが鉄則。
手順が増えてエラーを返したりすることがあるかもしれないし。
データベースを使ったときのことを仮定したら答えは自ずと出ると思いますけど。

あとは↓あたりの命令を覚えておいて

タグを無効化
htmlspecialcharsもしくはstrip_tags

クォートなどを無効化
addslashesもしくはstripslashes

好きな文字コードに変換
mb_convert_encoding

csvの読み込み
fgetcsv
866863:2005/06/22(水) 21:29:52 ID:???
>864
>865
ありがとうございます。
やっぱりファイル保存前に改行はbrに変換しといたほうがいいんですかね。
テキストで表示したいときなんかに、いろいろ変換していると戻すのが
めんどくさい、ような気もするけど、保存前に処理してしまえば
確かにエラーの危険は少なくなりそうだし。
レン鯖考慮すると躊躇してしまうけど、やっぱりデータベースかな……
867nobodyさん:2005/06/22(水) 23:05:00 ID:???
>>844
それ間違ってると思う。本当は
<?
868nobodyさん:2005/06/22(水) 23:54:04 ID:???
>>867
?????
869nobodyさん:2005/06/22(水) 23:57:53 ID:ol7QAXcn
↓みたいなのはそれぞれ別のファイルにしたほうがいいんですか?

class classA {
  ...
}

class classB extends classA {
  ...
}

class classC extends classA {
  ...
}
870nobodyさん:2005/06/23(木) 00:01:18 ID:???
仕様上の制限(や強制)は無いから好きにすればイイヨイイヨ
別ファイルにした時はrequire_onceを忘れずに。
871nobodyさん:2005/06/23(木) 00:05:23 ID:ol7QAXcn
thx。1クラス1ファイルってのはjavaだったのか
872nobodyさん:2005/06/23(木) 00:08:23 ID:???
1クラス(継承クラス含む)1ファイルにした方がautoloadし易かった。
873nobodyさん:2005/06/23(木) 00:09:01 ID:???
>>871
別に 1 クラス 1 ファイルとは限らないよ。
874nobodyさん:2005/06/23(木) 00:20:53 ID:???
じゃあ気にせずにやります
875nobodyさん:2005/06/23(木) 02:41:39 ID:Ycsi6J8Z
C言語(WinNT)と php で、共有メモリを介して通信って可能でしょうか。
876nobodyさん:2005/06/23(木) 03:28:07 ID:???
877875:2005/06/23(木) 03:49:09 ID:Ycsi6J8Z
>>876 レスありがとう。

ここまでは調べました。

■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 側は、別の関数を使うのでしょうか。
勘違いしていたらツッコミお願いします。
878nobodyさん:2005/06/23(木) 04:38:48 ID:???
>>877
つうか
phpの共有メモリのアクセス関数が提供するのは
UnixライクなOSで実装されてる共有メモリへのアクセスで
win32の共有メモリのアクセス関数(で示してるのが良く判らんが) は
Windows独自の実装の共有メモリへのアクセスではないのか。
後者は前者に対してもアクセス出来るような作りの関数なのか?

ネームドパイプ(Unix Socket)でも使った方が良いんじゃ...
879877:2005/06/23(木) 06:41:46 ID:Ycsi6J8Z
>>878
なるほど。同じ「共有メモリ」と呼んでいても、
両者は別の規格、ってことみたいですね。

パフォーマンスのよさげな、共有メモリから当たってみたんですが、
ご指摘のネームドパイプでやってみます。

こんな明け方に、レスありがとうございました。
880nobodyさん:2005/06/23(木) 07:46:13 ID:4sGGPAIm
お前らそんな高レベルな話
はいかんぞ
881nobodyさん:2005/06/23(木) 09:29:53 ID:???
win32だったらこんな感じでいけるらしい

#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);

この辺ぐぐってみてはいかがでしょう?
しかしそろそろスレ違いだな。
882nobodyさん:2005/06/23(木) 13:04:38 ID:???
#include <2c.h>
883nobodyさん:2005/06/24(金) 17:37:55 ID:???
int main()
{
printf("ぬるぽ");
return 0;
}
884nobodyさん:2005/06/25(土) 01:59:03 ID:???
int main( void ){
  puts("ガッ");
  return 0;
}
885nobodyさん:2005/06/25(土) 04:57:53 ID:???
宿題投げていい?
886nobodyさん:2005/06/25(土) 05:00:29 ID:???
             . ィ
.._ .......、._    _ /:/l!  またまたご冗談を
 :~""''.>゙' "~ ,、、''‐'、|   PHPを満足に扱えない人なんていませんよ。
゙、'、::::::ノ:::::::_,.-=.  _〜:、         /_.}'':, ましてや宿題ごときで躓くなんて本7以下ですよ
 ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
 ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:'  ノ゙ノブ     
"   .!-'",/  `'-‐'') /\ `/ でノ-〈
 .-''~ >'゙::    ‐'"゙./  ヽ.,'   ~ /
   //:::::       ',    /    ,:'゙
887nobodyさん:2005/06/25(土) 05:05:24 ID:???
期待してないけど宿題投げますw
ある数字を渡すと各桁の数字を上から順番に
配列に入れて返す関数って可能ですか?
888nobodyさん:2005/06/25(土) 05:34:10 ID:???
       ,.ィ
''==ァ-‐‐,'゙<l    _,, マタ マタァ〜
`、:/::r'゙゙'_ェ'゙゙i、._ /ラノ  preg_split('//',(string)$param,-1,PREG_SPLIT_NO_EMPTY);
,=キヅ `'ラ/ヾ/ (シフ  負符号、小数値の時はシラネ
  ,ケ::   ',. /  ,:'゙
889nobodyさん:2005/06/25(土) 07:35:40 ID:???
>>887
PHP5なら
$array_num = str_split($str_num, 1);
890カポコン:2005/06/25(土) 09:20:43 ID:???
レベルが高くなるとレベルを落とそうとする輩が出てくる。
まあ、これが2chの実装なわけだが。
っんでもサーバーが落ちる原因の30%以上はメモリ関連だから
875-879は実に有意義な話をしていると思うんだけどな。
891nobodyさん:2005/06/25(土) 09:55:37 ID:???
PECLにwin32apiてのがあるけど、これでWindowsの共有メモリにアクセスできないかな?
winで開発、unixで運用ならラッパー関数/クラスでも書いて。

eAccelerator使うほうが楽チン?
892nobodyさん:2005/06/25(土) 13:42:21 ID:6Ztw8aQ7
>>891
php_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 );
?>

便利だけど・・遅くならないといいね。
893nobodyさん:2005/06/25(土) 14:55:46 ID:???
このスレで仕事依頼とかしていいんでしょうか?(´Д`;)
894nobodyさん:2005/06/25(土) 15:41:33 ID:???
>>888-889
サンクス
おかげでアクセスカウンターができましたw
895nobodyさん:2005/06/25(土) 15:45:14 ID:???
>>893
無料で仕事をするようなアホはあまりいないと思うが。
それなりの報酬を払うつもりがあるなら↓こちら。
http://pc8.2ch.net/test/read.cgi/php/1111115228/

プログラミングは高いよw
896nobodyさん:2005/06/25(土) 16:01:03 ID:???
>>895
報酬はお支払いする予定でした。
大きなモノではなく、ちょっとした日記系のphpを自分のwebで使いたかったので、
個人に依頼して安くしてもらえないかと思ったんですが…(´∀`;)
(無料配布されているphpが思い通りのが見つからず…)
とりあえず誘導ありがとございますた。
897nobodyさん:2005/06/25(土) 16:30:45 ID:???
PHPがセーフモードで動いているサーバーの場合、PHP同士の不正なアクセスは避けられると思うんですが
CGIから見られる事ってあるでしょうか?
CGIがsuExecで動作している限り、パーミッションが606等になっていても、他のユーザーのファイルは
見られる危険性は無いんでしょうか?
要は、セーフモードで動いていてもCGIからだと見られてしまうのかな?と言う疑問です。
898nobodyさん:2005/06/25(土) 16:32:07 ID:???
送信ボタンを押した後に、スレ違いと言う事に気づきました。
ApacheスレかCGIスレで聞くべきだったかも…。
899nobodyさん:2005/06/26(日) 02:01:40 ID:ZljWfVvh
2chのsubject.txtをデータベースに格納したいのですが
どうすればいいのかさっぱりわかりません。
マニュアルを読んで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
900nobodyさん:2005/06/26(日) 02:10:50 ID:???
>>899
そもそもが間違ってる。
お前が必要としているのは
http://www.php.net/manual/ja/ref.mysql.php
他の選択肢としてPEARのDBやDB_DataObjectなどもあるけど。
901nobodyさん:2005/06/26(日) 02:10:55 ID:???
>>899

MySQLを操作するのになんでdbase_xxx()を使ってるの?
MySQLでやりたいならここから目的の関数を探してくれ。
http://jp2.php.net/manual/ja/ref.mysql.php
902899:2005/06/26(日) 02:23:36 ID:???
゚Д゚)・・・


    もう寝るヽ(`Д´)ノ ウワァァァン
903nobodyさん:2005/06/26(日) 03:42:21 ID:???
1 -> Januaryに変換するには、(実際には年月の日付)
$strmonth = array('1'=>'January'.....
こんな配列を作って変換するか、timeに直してdate関数で変換するしかないですか?
904nobodyさん:2005/06/26(日) 03:56:01 ID:???
>>903
はい
905nobodyさん:2005/06/26(日) 04:24:04 ID:???
どうもです
906899:2005/06/26(日) 12:24:56 ID:???
うまくできたです。理想の動きをしてくれますた。
もうちょっとコンパクトにできないかなあ?

$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;}
}}
907nobodyさん:2005/06/26(日) 13:46:56 ID:???
>>906
突っ込みどころ満載
自鯖でやってるんなら別にいいけど。
908nobodyさん:2005/06/26(日) 21:59:05 ID:???
>>907
いいじゃん
そうやって人は成長するんだ
909nobodyさん:2005/06/27(月) 10:50:35 ID:???
ソースなんか動けば良いんだよ
メンテナンス性が必要ならメンテ時に改善すればいい
910nobodyさん:2005/06/27(月) 11:52:56 ID:9CZKqT26
PHPでSOAPを利用するとき、引数がオブジェクトのメソッドをcallする場合、下のコードのように書いてます。

$client = new SoapClient("http://www.hoge.jp/soap.asmx?wsdl");
$param["A"] = "100";
$param["B"] = "200";
$param["C"] = "300";
$obj = SetType($param, "object");
$result = $client->Setup($obj);

ですがこれを実行するとSetupメソッドの行で、
Fatal error: Uncaught SoapFault exception: [soap:Server] サーバーは要求を処理できませんでした。 --> オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーになってしまいます。

PHPにおいて、SOAPメソッドにオブジェクト渡す時って何か特殊な渡し方があるんでしょうか?
911nobodyさん:2005/06/27(月) 13:26:31 ID:???
912899:2005/06/27(月) 16:36:54 ID:???
(ノД`)グッスン
913nobodyさん:2005/06/27(月) 20:07:16 ID:???
>>909
OOP の考え方を否定するようなことを言うなよ。
914nobodyさん:2005/06/27(月) 22:40:22 ID:???
>>913
OOPじゃなくても、こんな考え方はダメでしょ。
915nobodyさん:2005/06/27(月) 22:45:36 ID:???
別にいいと思うけどなぁ・・・
916nobodyさん:2005/06/27(月) 22:55:07 ID:???
>>915

>>914は1つの意見に過ぎないわけだから、
自分の好きなようにやればいい。
ただ、漏れの会社では動けばいいとかメンテナンスはどうでもいいとか言ってると
たぶん痛い奴だと思われるけど。

917nobodyさん:2005/06/27(月) 23:27:23 ID:???
動きゃいいモンもあれば、それじゃいかんモンもある

どっちかしかないと思ってる奴は痛い奴
918nobodyさん:2005/06/28(火) 19:36:21 ID:aMUPyCvg
locationヘッダで大量のパラメータをつけてわたしてたら
途中でおくれなくなったよ
大量のパラメータを渡すときって、他にどんな方法があるんだ
教えてくれ。
ちなみに、30個ほどパラメータをつけてわたしたい
919nobodyさん:2005/06/28(火) 19:49:41 ID:???
>>918
getメソッドのサイズ制限はそう簡単には越えないもんなんだが。。。
同じ鯖 -> セッション
他鯖 -> location(=getメソッド)をやめて、postでリクエスト。
920nobodyさん:2005/06/28(火) 19:52:05 ID:???
ttps://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=126863
なんかヘッダ行の折り返しを使ってDoS攻撃ができたらしいぞ
921nobodyさん:2005/06/29(水) 01:33:51 ID:Ry+/Z3jn
>>917
  _、_    同意
( ,_ノ` )
922nobodyさん:2005/06/30(木) 09:45:51 ID:???
preg_replaceで置換してるんだけど、2番目の引数で関数を呼ぶようにしてる。
 preg_replace("/hoge/e", 'convert(\'\1\')', $string);
これをmb_ereg_replaceに置き換えたいんだけど、どうやったら2番目の引数に関数を
呼び出すように指定できるの?

923nobodyさん:2005/06/30(木) 10:07:26 ID:???
php-4.3.10-3.2 Source RPMをおとしてインスコしました。
そしたら、SOURCE/にphp-4.2.2-lib64.patch 他..
がインスコされました。
src.rpm は php-4.3.10なのになんで古いパッチが
インスコされるんでしょうか。
924nobodyさん:2005/06/30(木) 10:15:12 ID:???
>>923
1.バグが直っていない
2.パッケージ化するにあたって追加修正したい機能がある
3.同じパッチが使える

1-3 2-3どちらかの条件を満たしているため

つーかPHPに限った話じゃない。
問題のキリわけしろや
925nobodyさん:2005/06/30(木) 10:56:36 ID:???
redhat 9 を使っていて新しいphpのrpmがないので
srpmをゲットしてspecみたらパッチがたくさんありました。

その1つ1つのパッチが必要なのかわからないんです。
phpはconfigure , make までパッチがなくても
できました。
926nobodyさん:2005/06/30(木) 15:09:35 ID:???
>>925
その程度の実力じゃやめたほうがいい
どうしてもやりたいなら英語嫁。
927nobodyさん:2005/06/30(木) 15:38:44 ID:???
>>926 さんどうもです。
英語読みます。

どこのサイトにpatch情報はありますか。
928nobodyさん:2005/06/30(木) 18:02:09 ID:???
必要のないpatchが残ってたりするけどな。
古すぎて大幅にソースの位置が変わってて追従しきれてないのとか。
手動で当ててみ。
929nobodyさん:2005/06/30(木) 22:28:13 ID:KTukUE2K
2chとヾトリップ作成する方法教えてください
930nobodyさん:2005/06/30(木) 22:36:30 ID:???
2chとおなじトリップ作成する方法教えてください
931nobodyさん:2005/06/30(木) 23:06:16 ID:KTukUE2K
ChatWorldに入るのに
Proxy制限かかってるよ・・・
まだ使えるプロキシおせーて
932nobodyさん:2005/06/30(木) 23:06:34 ID:KTukUE2K
誤爆
933nobodyさん:2005/07/01(金) 03:51:14 ID:???
>>930
function mkTrip($key, $length = 10)
{
$salt = substr($key . 'H.', 1, 2);
$salt = preg_replace('/[^\.-z]/', '.', $salt);
$salt = str_replace(
array(':',';','<','=','>','?','@','[','\\',']','^','_','`'),
array('A','B','C','D','E','F','G','a','b','c','d','e','f'),
$salt);
return substr(crypt($key, $salt), -$length);
}
934nobodyさん:2005/07/01(金) 08:34:44 ID:???
>>933 $keyには何をいれるよ?
935nobodyさん:2005/07/01(金) 12:09:35 ID:???
>>934
キーだな(#から後)
ついでに漏れが昔作った奴も晒してみる

function gettrip($tripkey) {
$tripsalt=preg_replace('/[^.-z]/','.',$tripkey);
$tripsalt=strtr($tripsalt,':;<=>?@[\]^_`','ABCDEFGabcdef');
$tripsalt=substr($tripsalt.'H',1,2);
$trip=substr(crypt($tripkey,$tripsalt),3,10);
return($trip);
}

つーかほとんど同じか・・・
936nobodyさん:2005/07/01(金) 21:45:24 ID:X7OPKe0n
バイトで時給800円でアルバイト情報の検索システムをつくらされた
一応MYSQLをつかってつくったけど、アルバイトでPHPをつかった開発の
バイトの時給って800円が相場なのか?
現在27歳で800円は死ぬほどつらいのだが・・・
一応検索システムぐらいなら作れます
PHP5はできません。smatryもつかったことないです。
PHP5を今勉強中です。てことは800円が相場か
バイトでやってるやつはどれぐらいもらってんだ
937nobodyさん:2005/07/01(金) 21:52:26 ID:Bm6k1Fi4
>>936
工数も書かないで時間単価だけ書かれてもな・・・
っていうかスレ違いだろ
938nobodyさん:2005/07/01(金) 21:56:52 ID:???
スレ違いは確かだが、工数と時間単価は関係ないと思われ。
939nobodyさん:2005/07/01(金) 22:01:45 ID:AiDoVk1X
>>933>>935
$keyに入力するんだよな?
$tripに何も格納されないんだが...
940nobodyさん:2005/07/01(金) 22:14:11 ID:???
>>936
時給800円で受けたんだろ。
だったら、それがお前の評価レベルだ。

少なくと、ウチでは絶対に時給でなんか雇用しない。
能力の低い奴、仕事の遅い奴にも一定金額を払う度量はない。
納期ありきのグロス発注。
941nobodyさん:2005/07/01(金) 23:22:05 ID:ASdymSQW
セッション処理の途中でセッション名を変えた場合、
・別々のセッションとして保存される
・最後に設定したセッション名で保存される
・session_start前に設定していたセッション名で保存される
のどれになるのでしょうか?
942nobodyさん:2005/07/02(土) 02:46:38 ID:???
>>936
昔、php&mysqlのフルタイムバイトで時給800円だった。
直属上司に1日2時間仕事して
後の6時間は遊んでいて良いよとウインクされた。
会社の給与システム上、やむを得ない時給だったらしい。

遊んでいて良いと言われてもすることがないから、
いくつかサイトをつくってみた。
今はその収入で食っている。
943nobodyさん:2005/07/02(土) 04:25:08 ID:???
usortで呼び出す関数について
基本はsortと同じように数順、アルファベット順にするが、
「hoge.mp3」を「hoge.htm」より前に置きたい
(例えば aa.mp3 bb.mp3 bb.htm cc.htm dd.mp3 dd.htm というふうに)
どういう関数にすればいいですか
944nobodyさん:2005/07/02(土) 07:28:55 ID:???
>>943
mp3とhtm以外はないのか
だったらドットで分けて名前部分でソート、名前が同じならmp3を先にする

<?php
function mp3_sort($a, $b) {
list ($a_name, $a_ext) = explode('.', $a);
list ($b_name, $b_ext) = explode('.', $b);
if ($a_name == $b_name) {
return ($a_ext == 'mp3') ? -1 : 1;
}
else return strcmp($a_name, $b_name);
}
$array = array('dd.mp3', 'aa.htm', 'bb.mp3', 'aa.mp3', 'dd.htm');
usort($array, 'mp3_sort');
var_dump($array);
?>
945nobodyさん:2005/07/02(土) 08:25:36 ID:???
>>944
期待する動作が得られました、丁寧にありがとう
946nobodyさん:2005/07/02(土) 10:02:27 ID:ap8RH0Hy
質問させてください
PHP4.3.1を使っています。
perlの正規表現で
while(<IN>){
if(/^a:link{.*color:(.*); }/i){$a_link=$1;}
}

このような処理をphpにて行いたいと思い

while (!feof($fp)) {
$line = fgets($fp, 1024);
if(preg_match("/^a:link{.*color:(.*); }/i", $line)){$a_link=$1;}

}

このようにしたのですが
Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in〜〜〜
と出てしまいます。
preg_matchにてグループ化した値を参照する方法を調べたのですが
みあたりませんでした。
どうかアドバイスお願いします。
947nobodyさん:2005/07/02(土) 10:07:37 ID:???
948nobodyさん:2005/07/02(土) 10:17:53 ID:???
>>946
3番目の引数を使う
949946:2005/07/02(土) 12:04:04 ID:???
>>947
>>948
ありがとうございます。
無事エラーなく動作させることができました!
950nobodyさん:2005/07/02(土) 18:22:12 ID:???
>>933
>>935
使い方おせぇてください、いや、まじお願いします
951nobodyさん:2005/07/02(土) 21:56:20 ID:???
特定のサイトから任意のページを取得して
そのページのHTML全部変数にブチ込むにはどうすればいいでしょうか?
952nobodyさん:2005/07/02(土) 22:03:55 ID:???
つ [ ファイル関数 ソケット関数 ]
953nobodyさん:2005/07/02(土) 22:22:44 ID:???
$hensuu = file_get_contents( 'http://〜' );
954nobodyさん:2005/07/02(土) 23:20:11 ID:???
>>953
ありがとうございます
955nobodyさん:2005/07/03(日) 02:40:25 ID:???
>>950
<?php

function mkTrip($key, $length = 10)
{
$salt = substr($key . 'H.', 1, 2);
$salt = preg_replace('/[^\.-z]/', '.', $salt);
$salt = str_replace(
array(':',';','<','=','>','?','@','[','\\',']','^','_','`'),
array('A','B','C','D','E','F','G','a','b','c','d','e','f'),
$salt);
return substr(crypt($key, $salt), -$length);
}

function gettrip($tripkey) {
$tripsalt=preg_replace('/[^.-z]/','.',$tripkey);
$tripsalt=strtr($tripsalt,':;<=>?@[\]^_`','ABCDEFGabcdef');
$tripsalt=substr($tripsalt.'H',1,2);
$trip=substr(crypt($tripkey,$tripsalt),3,10);
return($trip);
}

print( "誰かさん◆".gettrip("Lamp")."\n" );
print( "誰かさん◆".mkTrip("Lamp") );

?>
956nobodyさん:2005/07/03(日) 17:08:32 ID:???
hoge($str);
function hoge(&$str){ $str = 1; }

hoge(&$str);
function hoge($str){ $str = 1; }

この二つは両方とも同じ意味になるでしょうか?
エラーレポートALLにして後者の方をやったら、関数を呼ぶときに参照渡しするなと怒られてしまったので。。
957nobodyさん:2005/07/03(日) 17:24:18 ID:???
あのさ、下の方のhogeで
hoge($str);
ってやったら意味ないじゃん。
958nobodyさん:2005/07/03(日) 17:54:38 ID:???
>>957
すっません、参照渡しする場合は、受け取る方が必ず&付けないといけないってことですか?
てっきり、どっちかに付ければいいもんだと思ってました。
959nobodyさん:2005/07/03(日) 18:23:44 ID:???
>>958
PHPでは下の方法は非推奨だからうえのほう使っとけ
960nobodyさん:2005/07/03(日) 18:46:39 ID:???
>>958
呼び出し側に参照にすることを期待する(または選択させる)ような関数を書くな。
危なっかしい。
961nobodyさん:2005/07/04(月) 04:46:27 ID:???
関数定義で参照変数にしたヤツを変更してしまうのは
後になって自分でも原因がわからなくなるバグを作るようなもんだ。やめとけー
962nobodyさん:2005/07/04(月) 13:49:55 ID:???
質問です。

fsockopen関数を使って、HTTPSでアクセスしたいのですが、以下の警告が出て接続に失敗します。

Warning: fsockopen(): no SSL support in this build in /home/nullpo/public_html/acc.php on line 3

PHPインストール時に--with-openssl=[DIR]オプションは付けています。
phpinfo()のOpenSSLの欄:
openssl
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.7g 11 Apr 2005

これ以外で何か足りないところがあるんでしょうか?
963nobodyさん:2005/07/04(月) 15:10:31 ID:Yvg1h5R+
すみません。
これ↓、どこか間違ってますか?
エラーは出ませんけど、何も表示されません。
どうしてでしょうか?


<?php
$flag=0;
$a=$_POST[indata];
$b=$file("name.dat");
for($c=0;$c<=count($b)-1;$c++)
{
if($b[$c]==$a)
{
echo "入力済みの店舗か、no",$c,"と同名の店舗です。";
$flag=1;
}
}
if($flag=0)
{
$file=fopen("shop.dat","a");
fwrite($file,$_POST[indata]."\r\n");
echo"追加しました。";
}
?>
964nobodyさん:2005/07/04(月) 15:22:00 ID:???
>>963
間違いが一杯ありすぎるんだけど。。。

$a=$_POST[indata]; → $a=$_POST["indata"];
$b=$file("name.dat"); → $b=file("name.dat");
if($flag=0) → if($flag==0)
fwrite($file,$_POST[indata]."\r\n"); → fwrite($file,$_POST["indata"]."\r\n");

何も表示されない時はたいていパースエラーなので、先頭に以下を追加して
テストしてみそ。

ini_set("display_errors", true);
error_reporting(E_ALL);
965nobodyさん:2005/07/04(月) 15:38:02 ID:???
>>963
開けたら閉めろとあれほど…
966nobodyさん:2005/07/04(月) 16:23:15 ID:???
このスレと
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
の違いは何ですか
967nobodyさん:2005/07/04(月) 16:45:52 ID:???
>>966
このスレで回答のないくだらない質問に回答があるかもしれないのが↑。
http://pc8.2ch.net/test/read.cgi/php/1117945031/1 を参照。
968nobodyさん:2005/07/04(月) 19:29:38 ID:???
>>962
何が足りないって、貴方の環境やソースの詳細
fsockopen('ssl://www.example.com', 443)
って感じで、ちゃんと開いてるのか?
969nobodyさん:2005/07/04(月) 22:59:41 ID:HGadz7bj
>>964
ありがとう
くだらないミスばかりだ。
雑な俺にはむいてないのか・・・・・・・OTZ
970963:2005/07/04(月) 23:26:27 ID:HGadz7bj
これでいいですか?
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);
$flag=0;
$a=$_POST["indata"];
$b=file("shop.dat");
for($pl=0;$pl<=count($b)-1;$pl++)
{
if($b[$pl]==$a)
{
echo "入力済みの店舗か、No",$c,"と同名の店舗です。";
$flag=1;
}
}
if($flag==0)
{
$file=fopen("shop.dat","a");
fwrite($file,$_POST["indata"]."\r\n");
echo"追加しました。";
$file=fclose("shop.dat");
}
?>
971963:2005/07/04(月) 23:26:39 ID:HGadz7bj
なぜか
for($pl=0;$pl<=count($b)-1;$pl++)
{
if($b[$pl]==$a)
{
echo "入力済みの店舗か、No",$c,"と同名の店舗です。";
$flag=1;
}
}
の部分が機能しないのですが・・・・・
972nobodyさん:2005/07/04(月) 23:35:47 ID:???
for文の直後に echo "[".$b[$pl]."]"; てな感じで出力してみれば分かると思うけど、
file()で読み込んだ場合には、それぞれの最後に改行文字がついてるのよ。(マニュアルにも記載あり)
一方 $a の方は付いてないはず。
おかしいな、と思ったらecho(or print)してみるのが鉄則。
つ [ rtrim関数 ]
973nobodyさん:2005/07/04(月) 23:37:03 ID:???
>>971
ところどころにecho使って変数の値をつど表示させてみる。
これ、基本。
974nobodyさん:2005/07/05(火) 00:01:58 ID:/sVdkK+7
可変長引数を受け取る関数から、
別の可変長引数関数に、
引数をすべて渡すいい方法はないでしょうか?
一応、配列にぶちこんでから渡す方法を考えたのですが
ぶちこみ処理が冗長な気もします。
975963:2005/07/05(火) 00:43:33 ID:TcsYh7kq
ありがとうございます。
えちょで確認したところ
↓の部分が動いて内容なんですが、なんか間違ってますか?
テンパッてるせいか、もうワケ分かりません・・・・OTZ

if($shop[$lp]==$a)
{
echo"ok";
echo"入力済みの店舗か、No",$c,"と同名の店舗です。";
$flag=1;
}
976nobodyさん:2005/07/05(火) 01:48:42 ID:???
ほどほどに
977nobodyさん:2005/07/05(火) 02:23:17 ID:???
「えちょ」ってなんだ「えちょ」って。
978nobodyさん:2005/07/05(火) 02:25:43 ID:ZCak048z
マジレスごめん

イーチョだよイーチョ!
エチョってよむやつは英語の勉強しなおしてこい!
979nobodyさん:2005/07/05(火) 07:44:20 ID:???
>>975
しょうがねーなー>>972が改行文字のあるなしって書いてるだろ
if($shop[$lp]==$a)

if(trim($shop[$lp])==$a)
980nobodyさん:2005/07/05(火) 16:32:23 ID:KhOBjuCN
>>977
ごめんごめん。
いつもの癖で、関西弁が出てしまいましたw

>>979
ありがとうございます。
できました。
981nobodyさん:2005/07/05(火) 16:36:22 ID:???
へーちょ
982サル:2005/07/05(火) 16:40:59 ID:rDJ/Mrei
質問です
----これを2.htmlとします-------------
<P>□項目A<BR>
□項目B<BR>
□項目C<BR>
□項目D<BR>
□項目E<BR>
□項目F<BR>
□項目G<BR>
□項目H</P>
そうすると↓で表示出来ないのですが、何が間違ってますか?
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<HR>
<? include("2.html"); ?>
<HR>
<? include("2.html"); ?>
<HR>
<? include("2.html"); ?>
<HR>
</BODY>
</HTML>
983nobodyさん:2005/07/05(火) 16:46:45 ID:???
表示できない、だけでは何とも
984サル:2005/07/05(火) 16:50:22 ID:rDJ/Mrei
どういう風にすれば宜しいでしょうか?
985nobodyさん:2005/07/05(火) 17:29:52 ID:KhOBjuCN
度々すみません。
↓のif文が実行されないんですが何ででしょうか?
<?php
ini_set("display_errors", true);
error_reporting(E_ALL);

$category=$_POST["category"];

$shop=file("shop.dat");


//検索
for($lp=0;$lp<=count($shop)-1;$lp++)
{
if(trim($shop[$lp])==$category)
{
echo "ココが表示されない";
}
}
?>
986nobodyさん:2005/07/05(火) 18:06:57 ID:???
>>981
風邪ですか?お大事に。

>>985
上の方でも散々言われてきたように、
こんな感じで、各変数が意図した値(s)を持っているかを確認しましょう。
ini_set("display_errors", true);
error_reporting(E_ALL);

$category=$_POST["category"];
var_dump($category);
$shop=file("shop.dat");
var_dump($shop);

//検索
for($lp=0;$lp<=count($shop)-1;$lp++)
{
var_dump($lp);
var_dump($shop[$lp]);
var_dump($category);
if(trim($shop[$lp])==$category)
{
echo "ココが表示されない";
}
}
987nobodyさん:2005/07/05(火) 18:26:04 ID:KhOBjuCN
>>986
ありがとうございます。
988nobody:2005/07/05(火) 18:49:01 ID:???
>>982
2.htmlを以下にしてみればどうじゃろ?
<?
$string = "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>\n";
$string .= "<P>□項目A<BR>";

print ($string);
?>
989nobodyさん:2005/07/05(火) 18:58:48 ID:KhOBjuCN
>>986
やってみましたが、思ったとおりの正しい値でした。
原因はわからないままです。

どうしたもんでしょう・・・・・OTZ
990nobodyさん:2005/07/05(火) 19:12:06 ID:???
>>989
差し支えない範囲で、shop.datの最初から数行を晒してみ
991 :2005/07/05(火) 19:36:36 ID:hzs6UPOn
CGI改造の質問掲示板です。
http://www.ftn-jp.com/cgi/sup/bbs.cgi
http://cgisv.chldren.net/~sil/cgireorg/bbs/bbs.cgi
ここで解決できない人は聞いてみたらどうですか?
返信が少ないみたいなのでcgi分かる人返信してあげてね
992nobodyさん:2005/07/05(火) 20:05:24 ID:???
宣伝乙。

そこで答えるぐらいならここで答えるよ。
993nobodyさん:2005/07/05(火) 21:34:41 ID:???
質問があるっす!

php4で、 http://headline.2ch.net/bbynews/ の板に立ったスレッド全てについて
一言言及したブログを自動投稿したいっす!具体的にはライブドアブログにて自動投稿したいんです。
ブログの投稿内容は各スレッドの1のレス内容をそのままコピーして投稿したいです。

例としてhttp://blog.livedoor.jp/newsscrap/ と全く同じブログが欲しいっす。
実際にphpコードを探すと以下のようなのを見つけたんですけど、こっから先がイマイチです。
あとライブドアブログへの自動ログイン・投稿についてもイマイチ・・・助けて下さいm(_ _)m
当方のサーバはxreaでcron使えます。

<?php
$url = 'http://headline.2ch.net/bbynews/';
$list = file($url);
foreach ($list as $line) {
if (!preg_match("|^\d{4}/\d{2}/\d{2}|", $line)) continue;
list($date, $time, $url_title) = explode(' ', $line, 3);
preg_match("/<a href=([^>]+)>(.+)$/", $url_title, $match);
$url = $match[1];
$title = $match[2];
// 実際は投稿用配列に保存して後でpost
echo "日付".$date." 時間".$time.' <a href="'.$url.'">URL</a> タイトル '.$title."<br>\n";
}
?>

994nobodyさん:2005/07/05(火) 21:43:51 ID:???
>>993
ここも作ってもらうスレじゃないんだが。。。

まずはログインの時にどういうデータ(get,post,cookie etc.)を送っていて、
どういうデータ(idやらsessionやら)が送り返されてきてるのか調べてみる事から始めてみては?

ieHTTPHeadersやproxomitronやパケットキャプチャーあたりのツールを使って地道にガンガレ
995nobodyさん:2005/07/05(火) 23:08:01 ID:???
XREAはバーボン
996963:2005/07/05(火) 23:17:25 ID:TcsYh7kq
>>990
お得意さんリストのような物なので、一行目から差し支えてします。
親切に教えてくれたのに、申し上げにくいのですが駄目です。すんません。

if(trim($shop[$lp])==$category)
{
echo "ココが表示されない";
}
↑この記述は、正しいですかね?
あとvar_dump($〜);で出てきたstring(14)ってどんな意味ですか?
997nobodyさん:2005/07/05(火) 23:35:48 ID:???
>>996
見せられない情報なら、適当なデータを書き込んだ仮の shop.dat ファイルを
用意して、そのテスト結果をさらしな。
string(14) はそのデータの長さ。

てか、var_dump の表示結果が string(14) "xxxx....." と表示されているはずだが
14ってのは xxxx... の長さだってことを気がつかないのか?

改めてスレを追ったけど、おまえさん、プログラム書くセンスないと思うよ。
998nobodyさん:2005/07/05(火) 23:35:55 ID:???
>>996
お客さんリスト?
shop.datの1行にはどんな文字列が入っているんだ?
そのままでなくてもいいから、伏字とか類似文字列とかにして晒せ。
それから、form画面のname=categoryの内容もな。

formのname=categoryのValue値は、
shop.datの1行と絶対に同じなんだろうな?
999nobodyさん:2005/07/06(水) 00:11:00 ID:Z5eAEHZk
>>14ってのは xxxx... の長さだってことを気がつかないのか?
全然気づかなかった。
別に長さに比例してるわけでもなかったし・・・・
漢字だったからかな?

>>998
ありがとうございます。
php勉強し始めて、2週間なもので。
今は、手元に無いので、明日出勤してから出来るだけ詳しく書かせていただきます。

皆さん、おながいしますね。
クレ厨でごめんなさい。
1000nobodyさん:2005/07/06(水) 00:11:57 ID:???
1000だ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。