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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2005/05/05(木) 17:17:11ID:???
・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辺り
0002nobodyさん2005/05/05(木) 17:19:50ID:???
前スレ
【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

0003nobodyさん2005/05/05(木) 17:21:24ID:???
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
0004nobodyさん2005/05/05(木) 17:25:44ID:???
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
  目の前で生じている現象をそのまま具体的に書くなどもっての外。
  事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
  「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
  「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
  "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
  「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
  示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
  絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
0005nobodyさん2005/05/05(木) 17:28:34ID:lUYNUyUo
http://p231.net220148094.tnc.ne.jp/
おkwwwっっうぇwwwwおkwwwwwwwwwwwwwww
っうぇwwwうぇwwwおkwwwwっうぇ
っwwwwwwwwwwwwwwwうはっwwwwww
0006nobodyさん2005/05/05(木) 17:32:08ID:HJsvd1wb
ttp://pc3164.chukai.ne.jp/
wっwwwwwwwうぇwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwうはっっうぇw
wwwwwwおkっwっwwwうはっうはっwwwwww
wwwwwwwおkwwwwwwwwwwwww
wwwwwwwwwwww
0007nobodyさん2005/05/05(木) 19:08:26ID:???
うんこ
0008nobodyさん2005/05/05(木) 23:21:09ID: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
0009nobodyさん2005/05/06(金) 00:08:34ID:???
>>8
特に名称がついてるわけじゃないと思うよ。
1.の部分を実現する手段の1つとしてMDA(Mail Delivery Agent)の機能を使う方法がある。
鯖がメールを受信してデータとして保存する時にスクリプトを実行させることができる。
「MDA procmail mail.local qmail-local」あたりでググれば良いかと。
これらの機能を使えるかどうかは鯖の設定次第。無料レンタル鯖だとほぼ無理と思われ。

その他(2〜3)はよくある処理で難しいことは無いので、
自分で書いている通りの処理をスクリプトに反映させればよい。
0010nobodyさん2005/05/06(金) 01:23:43ID:IFZ+5alj
>>9 さん
どうもありがとうございました。
一度ググってみます。本当にありがとうございました。
0011nobodyさん2005/05/06(金) 10:25:27ID:???
今日、ふとファイルのアップロードにzipを選択してみると、$_POSTとかが
消滅するらしい現象が発生しました。他のファイルでは正常にアップロード
出来る点から考えると、どうもzipファイルの取り扱いに問題があるように
想われるのですが、この点に関してバグ情報などをお持ちの方は
いらっしゃらないでしょうか?。
0012nobodyさん2005/05/06(金) 11:25:06ID: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
以上の情報でおわかりになりますか。よろしくお願いいたします。
0013nobodyさん2005/05/06(金) 11:27:59ID:???
なお、php4ts.dllは、c:\windows\system32にコピーしてあります。
0014122005/05/06(金) 11:28:43ID:???
>>13=>>12です。IDが???になってしまいました。すみません。
0015nobodyさん2005/05/06(金) 11:48:24ID:???
>>12
テンプレに乗ってるじゃないかなぁ
窓のextension_dirは無効だから、c:\windows\system32\php_mbstring.dllという
感じでシステムフォルダに入れないとダメだよ
@apacheの再起動も忘れないようにね
それにphp.iniの設定でもコメントアウトしないといけないような

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

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

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

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

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

php.iniを読み込ませるにはどうしたらよいのでしょうか。
0019122005/05/06(金) 14:32:08ID:???
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\" が有効になっているということです。

考えるヒントをくれたみんなありがとう!! 権限に気づいた俺も偉い!!
0020122005/05/06(金) 14:34:09ID:???
なお、php.iniに付与したusers権限は、読み取りと実行、と、読み取り、です。
0021nobodyさん2005/05/06(金) 14:37:59ID:???
IIS(ISAPI)って、ちゃんとuserレベルで動いてるのか。
MSのことだから管理ユーザレベルで動かしてるのかと思ってた。
0022122005/05/06(金) 14:43:05ID:???
>>21
僕もadminisutratorsレベルで動作するのかと思ってました。
phpディレクトリも、usr/bin/phpでは無く、c:\phpに置きますし。
usersレベルで動くんだから、c:\usr\bin\phpディレクトリに置くと分かりやすいかも。
0023nobodyさん2005/05/06(金) 17:33:59ID: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宣言しようとするとエラーがでてしまいます。

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

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwっっwwwおkwwwうぇwww


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

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

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

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

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

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

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

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

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

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

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

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

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

意味かな?
FILE_USE_INCLUDE_PATH open()の3番目の引数と同じ
FILE_APPEND open() の2番目の引数に'a'を入れたときと同じ
0034322005/05/07(土) 21:45:40ID:???
>>33
どうもです。たとえば、FILE_USE_INCLUDE_PATH と FILE_APPENDを
同時に指定する時は、どんな値を渡すんですか?
0035322005/05/07(土) 21:49:35ID:???
あ〜、パーミッションの指定を同じような感じなのかな。
0036nobodyさん2005/05/08(日) 21:56:17ID: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桁の数字いれて逆に年月日時分秒を出力してくれるように改造して頂けませんか・・・?
なんか丸投げスレになげるには単純なものなので、こちらに書かせていただきました
0037nobodyさん2005/05/08(日) 22:03:03ID:???
>>36
つ 日付・時刻関数
0038nobodyさん2005/05/08(日) 22:07:56ID:OHdCeEKV
>>37
(´・ω・`)
0039232005/05/09(月) 02:09:18ID: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";
↑これでやっと変数を表示してくれます。

ここらへんの書き方を探したのですがどのサイトでも
みつけられませんでした。
私の探し方がよくないのでしょうか・・
ご指摘いただければ助かります。
0040nobodyさん2005/05/09(月) 02:31:34ID:SCkyzNUL
http://YahooBB220034048052.bbtec.net/
うぇwwwwwwうぇwwwっうぇwwwうはっwww
wwwwwwwwwwwwっうぇうはっwwwおkwww
っ
wwwwwwっうぇwwwwwwwwwwww
0041nobodyさん2005/05/09(月) 03:03:12ID:???
>>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']}');";
0042nobodyさん2005/05/09(月) 15:01:23ID:???
$sql = "select * from site where site_name in '{$tmp['hash']['name']}'";
print"{$tmp['hash']['name']}<BR>\n";
0043カポコン2005/05/09(月) 22:23:40ID:???
どっかに素晴らしいTrueTypeフォントは無いかな。。。
0044nobodyさん2005/05/09(月) 22:35:31ID:???
なければ作ればいいじゃない
0045カポコン2005/05/10(火) 00:00:27ID:???
出来なくは無いが画像データ以上に難しいじゃない。
tteditにしても何にしても、まー作れる時間が無いからなー。
csv形式からシコシコ作るのも最近は萎えている。
やっぱり人が作ったのを拝借するに限るよ。。。
0046nobodyさん2005/05/10(火) 10:01:29ID:???
(‘ε‘) これと (・σ・) どっちが可愛い?
0047nobodyさん2005/05/10(火) 17:20:26ID:???
腐女子乙
0048nobodyさん2005/05/10(火) 18:23:42ID:???
なんで腐女子ってわかったの!!
0049nobodyさん2005/05/10(火) 23:29:28ID:???
ある条件が発生したら./optimizationというファイルを作成して
ある処理をさせようと想うのですが、どうした訳か以下の行程
では削除されないようです。
$optimizationには1が入るのですが・・・・。
パーミッションもディレクトリ権限も問題ありません。
以下の部分を通っていないのかとも想ったのですが、そうでもない
ようです。何か間抜けな事をしているのだとは想うのですが
エスパーさん募集中です。

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

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

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

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

$p_value = new Value();
if(is_object($p_value)){
print("オブジェクトだよ:".gettype($p_value));
}else{
print("オブジェクトじゃないよ:" . $p_value);
}
--
オブジェクトだよ:object
0054522005/05/11(水) 02:56:19ID:0snN3vGS
>>53
返信ありがとうございます。
確かにうちでもその通りの結果がでました。
もしかして>>52での$p_valueが引数で渡したクラス型だからかな。
0055nobodyさん2005/05/11(水) 06:09:38ID:???
RedHat9.0にPHP5.0.2をインストしようと思ったんだが
libphp5.soが生成されないorz
誰かあほな僕に解決策を教えてください
0056nobodyさん2005/05/11(水) 06:41:43ID:???
エスパーではない僕に作業手順とその時々の作業結果を教えてください
0057nobodyさん2005/05/11(水) 09:24:14ID:???
>>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
0058522005/05/11(水) 23:06:38ID:???
原因がわかりました。
すいません。僕のミスでした。
実際>>52の$p_valueには文字列が入ることもあり、addslashes()をかけていた事が原因でした。
エラーにはならないけどObject型ではなくなるみたいです。
0059nobodyさん2005/05/12(木) 00:00:49ID:q2eyoFxP
PHPの動作速度について質問があります。

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

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

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

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

うぇwwwwwwwwwっっっうぇ
おkwww
w

ww
うはっwwwwwwwwwwwwwwwwww

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

なんで、それを使わないでPHPとかその他の言語とか使って登録しようとするの?
鯖が直接データ取り込んで登録するのが一番速いに決まってるじゃん。
0063nobodyさん2005/05/12(木) 09:19:59ID:???
PostgreSQLのFAQの中にも同様のアドバイスがあるね。
それ以外にもヒントがあるので読んでおくと良いよ。>>59
0064nobodyさん2005/05/12(木) 09:26:26ID:???
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スクリプト自体の作り込みが原因ではないか?と言われました…

しかし、どうしても原因が掴めず困っています…
0065642005/05/12(木) 09:29:14ID:uDP5UTsR
すみません、age忘れてました。
0066nobodyさん2005/05/12(木) 09:53:01ID:???
>>64
phpinfo()は出せる?
0067642005/05/12(木) 10:15:58ID:???
>>66
これです。
鯖はXREAになっていますが、実際は違います。
http://beam.s101.xrea.com/phpinfo.html
0068nobodyさん2005/05/12(木) 10:45:43ID:???
>>67
mysql関数がインストールされてない。
サーバ側の設定ミスじゃないのかね。
0069642005/05/12(木) 10:50:31ID:???
>>68
やはりそうでしょうか。
"Call to undefined function: mysql_connect()" はどう考えてもおかしいですよねぇ…
0070nobodyさん2005/05/12(木) 11:22:10ID:???
>>67
sharedになってるね
dl('mysql.so');
とか
0071642005/05/12(木) 11:45:19ID:???
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
0072nobodyさん2005/05/12(木) 22:22:27ID:???
どっかに同じ環境作って同じソースで動かして
こっちで動くのにあんたんとこで動かんのはどーして

とか持ってったら。
作り込みが原因とか言われるとはらたつな(俺が言われたんじゃないが)
0073教授2005/05/13(金) 01:16:20ID: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
0074教授2005/05/13(金) 02:11:08ID:p6STq+85
$conn = mssql_connect("サーバ名\DB名", "sa", "");
で繋がりました。
0075642005/05/13(金) 03:31:12ID:???
昨日鯖缶から連絡があり、改善されていました。
ご丁寧にレスくれた方、どうもありがとうございました!
0076nobodyさん2005/05/13(金) 05:35:52ID:JdBVVipf
if ($_POST['passwd'] == $_POST['passwd2'])
{
print "パスワード違います"
}
 フォームでパスワード変更をしようと思うのですが、
 上の比較演算子で2つのフォームの内容をチェックしようと思ったのですが、
 フォームの内容が違っても、素通りして次の処理をしてしまいます。

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

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

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

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

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

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

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

2chの最新みたいな感じが良いんだけどな希望としては
0087nobodyさん2005/05/13(金) 21:36:26ID:???
>>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" />

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

例えば

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

sub hoge_hoge{
処理
}

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

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

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

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

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

>Java(ジャバ、ジャワ)
>また、現在ではWeb用、サーバー用、家電用などと3つの派に分類されている。
じゃこれは何用?
public class Unko {
public static void main(String args[]) {
  System.out.println("ウンコサイト");
}
0100nobodyさん2005/05/15(日) 14:02:19ID:???
}
>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つの関数を紹介したと思う。
↑

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

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

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

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

色々なブラウザで試してみたのですが、同じでした。タブを付けずにダウンロードさせる
には、どうすれば良いんでしょうか?
0115nobodyさん2005/05/16(月) 15:40:26ID:???
>>114
<?php 〜 ?>の外に余計なTABが入ってるとか。
01161142005/05/16(月) 19:17:53ID:???
>>115
まさにそれでした。
うーん、全く気が付かなかった orz
0117nobodyさん2005/05/17(火) 05:49:53ID:???
しょうがない、
TABは馬鹿には見えないからな
0118nobodyさん2005/05/17(火) 07:40:10ID:???
おれはバカだけどエディタが記号で表示してくれるので見られる。
0119nobodyさん2005/05/18(水) 04:27:43ID:???
phpでhtmlソースをゲットしてから、特定の語句の周り(または行)だけ抜き出したいのですが。
どういう方法が一般的なのでしょうか。
くだらねぇ質問ではスルーされました。
0120nobodyさん2005/05/18(水) 04:42:57ID:???
>>119
一般的かどうか分からないけど、その質問に書いてある通りに処理をすればいいんでないの?
1. 行単位でリモートからデータを取得(或いはローカルに保存後に行単位で処理開始)
2. 特定の語句があるか調べて(strpos()等)、存在すればデータをどっかに保持。(或いは正規表現を使う)
3. 繰り返す。
0121nobodyさん2005/05/18(水) 20:58:16ID:???
特定語句の周りだけ抜き出す…googleみたいな?
0122nobodyさん2005/05/19(木) 18:13:28ID:???
データベース検索サイトで[立花]で検索すると
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にエンコードして挿入する方法が分かりません。
長々とすいません。
0123nobodyさん2005/05/19(木) 18:31:32ID:???
>>122
URLエンコード
0124nobodyさん2005/05/20(金) 00:46:49ID:hzltzNE3
phpでw32apiが使いたいのだが、w32api_register_functionがどうね上手く動かん原因わかりませんか?
0125nobodyさん2005/05/20(金) 01:05:04ID:???
詳しく
0126nobodyさん2005/05/20(金) 01:08:54ID:TNhieU4U
SQLiteとMYSQLのどちらのほうがPHPで使いやすいでしょうか?
またどちらが簡単なのでしょうか?初心者なのでよろしければ教えてください。
01271242005/05/20(金) 01:13:14ID:???
QRコードを自動生成するものを開発しているのだが、phpのAPI使うの初めてで
勝手が全くわからんのですよ。
とりあえずphpマニュアルの例題スクリプトを試したが、undefinedと言われる
ワケで、そりゃ自分で定義してないけど、たったらなんの為のextensionやねん
とか。
0128nobodyさん2005/05/20(金) 03:39:53ID:???
>>126
環境を構築する事とPHPからDBMSを利用することは別のこと。
PHPからDBMSを利用するだけなら、SQLiteの方が簡単。

環境を構築の話になると、使うOSとかで全然違うわけだが、
その辺を適当で考えるとPHP5ならSQLite。PHP4ならSQLiteを
使えるようにするまでを考えると、MySQLの方が楽かと。
0129nobodyさん2005/05/20(金) 03:46:34ID:???
>>127
phpのバージョンに注意。
該当バージョン以外のやり方は、php.netのマニュアルのuser noteに解説あり
0130nobodyさん2005/05/20(金) 06:00:28ID: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タグやスタイルシートでも構いません
 どなたか、お願いします。
0131nobodyさん2005/05/20(金) 06:05:39ID:???
>>130
君には $hoge1 = '<a href="hoge1.html"><img src="hoge1.gif" width="100pt" height="32px"></a>';
とする権利と、弁護士を呼ぶ権利がある。
0132nobodyさん2005/05/20(金) 06:44:01ID:???
echo preg_replace("/(width=\")[0-9]+[a-z]*\"/","width=\"100pt\"",$hoge1);
0133初期不良2005/05/20(金) 07:30:11ID:???
PHP5.0.4 なんだけど # の処理がおかしくない?

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

%23 が URL エンコードされた # だけどそれ以降ぶった切られちゃってて取得できん。
ちょっと前まで取得できてたはずなんだが... 最近入り込んだバグか?
他の人はどうでつか?
0134nobodyさん2005/05/20(金) 07:52:54ID:???
>>132
やはり、正規表現しかないですか。。
 でも、ありがとうございました。
 
0135nobodyさん2005/05/20(金) 08:26:48ID:???
>>127
俺も以前PHPとGDでQRコード作成プログラムを作ろうと思ったことがある。
QRコードの検索してたらプログラムそのものがすでにあったのでやめた。
PerlにはGD::Barcode::QRcodeがあるし。
0136nobodyさん2005/05/20(金) 09:08:04ID:???
>>133
4.3.11ではちゃんと取得できた。5の問題かな。
0137nobodyさん2005/05/20(金) 10:28:18ID:???
>>133
手元の5.0.4(Windows)はちゃんと
_SERVER["QUERY_STRING"]comment=2004WorldMatchplayDarts%2301PARTvsANDERSON
_GET["comment"]2004WorldMatchplayDarts#01PARTvsANDERSON
でした
0138nobodyさん2005/05/20(金) 11:41:08ID:???
フォームからの入力(URL)をDBレコードに追加する場合、$_POST{'nn'}をSQL文にそのまま投げると危険ですよね?
でもどういう予防措置をしておけばよいかわかりません。rawurlencodeすればいいのかな。
0139nobodyさん2005/05/20(金) 12:24:16ID:???
>>138
ヒント♪
''して$_POST{'nn'}に含まれる'を\'に変換する
0140nobodyさん2005/05/20(金) 12:34:44ID:???
私は、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;
}
0141nobodyさん2005/05/20(金) 12:48:18ID:???
>>140
arrayに突っ込むかマニュアルにある方法を使う方がスマートかも
0142nobodyさん2005/05/20(金) 12:55:49ID:???
クロスサイトスクリプティングとSQLインジェクションがごっちゃになってるのかな。
それとも別の質問なのかしらん?
各DB用の文字型の変換関数(ex. (pg|mysql|..)_escape_string)があるならそれを使うのも手かと。
0143初期不良2005/05/20(金) 13:27:42ID:???
>>137
>手元の5.0.4(Windows)はちゃんと

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

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

http://www.php.net/manual/ja/security.database.sql-injection.php
0148初期不良2005/05/20(金) 20:18:00ID:???
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>
0149nobodyさん2005/05/21(土) 07:39:21ID:???
これブラウザ側でぶった切ってるって事は無いよね?

あ、REQUEST_URIには入ってるのか・・・・
0150初期不良2005/05/21(土) 12:26:09ID:???
>>149
いや、よく考えてみたら $_SERVER["QUERY_STRING"] だから Apache が作った値だね。
Apache Environment の QUERY_STRING 見てもぶった切られてる。
ありがとう、気付かなかったよ。Apache2 を疑ってみまつ。お騒がせしますた。
0151初期不良2005/05/21(土) 12:54:29ID:???
解決
mod_encoding の問題だった...
mod_encoding モジュールをはずしたら解決した。
WebDAV に関係する部分だけ EncodingEngine on すれば
良いみたい。スレ違いすまそ
0152nobodyさん2005/05/21(土) 23:48:55ID:???
$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を出力してしまいます。
なにかが間違っているのでしょうか、ご教示願います。
0153nobodyさん2005/05/22(日) 09:29:21ID:???
>>152
natsortは戻り値は返さない。マニュアルぐらい読もうよ。
$n_dir = scandir($dir);
print_r($n_dir);
natsort($n_dir);
print_r($n_dir);
でないと。
実際には、期待した順にはソートされないと思う。"." ".." が前に来ると思われ。
0154nobodyさん2005/05/22(日) 21:41:43ID:???
include_pathに新たなパスを追加する関数ってありますかね?
set_include_pathだと上書きになってしまうので。
一応自分で以下のような関数を自作したんですけど、
もし標準であるならそっちを使いたいので。

function add_include_path($path) {
$include_path = get_include_path();
set_include_path($include_path . ":" . $path);
return true;
}
0155nobodyさん2005/05/24(火) 13:11:43ID: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?
0156nobodyさん2005/05/24(火) 13:29:18ID:???
>>154
多分、色々と見かけてるとは思うけど、

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

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

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

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

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

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

を取得してソースを

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

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

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

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

0171nobodyさん2005/05/26(木) 22:21:54ID:???
>170  サンクス
0172nobodyさん2005/05/26(木) 23:51:33ID:Jhl0Cun1
PHPをいちから始めるつもりなんですが
アパッチいれても動きません・・・2000とXPで設定が違ったりするんでしょうか?
0173nobodyさん2005/05/26(木) 23:53:47ID:???
phpdevにしれ。
0174nobodyさん2005/05/27(金) 00:00:06ID:oSADx+e2
やーいPHPのデブー^3^
0175nobodyさん2005/05/27(金) 00:02:31ID:???
wammp
0176nobodyさん2005/05/27(金) 00:07:15ID:???
>>172
設定は同じ
インストール方法なんてゴロゴロしてんだろ
検索してからまた来い
0177nobodyさん2005/05/27(金) 00:12:22ID:???
>>176
それは分かっております
0178nobodyさん2005/05/27(金) 00:45:23ID:???
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"
等試してみたのですができなかったので。。。。。、
0179nobodyさん2005/05/27(金) 00:49:36ID:???
XSAS!
0180nobodyさん2005/05/27(金) 09:57:01ID:???
>>178
多分こんな感じ。
$aa = array_map(array(&$this, 'call_back_arr'), $ary);
0181nobodyさん2005/05/27(金) 11:59:21ID:???
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では変数に数値を入れるときは「"」をつけてもつけなくても変わらないということなのでしょうか?
0182nobodyさん2005/05/27(金) 12:15:36ID:???
つ [ ttp://www.php.net/manual/ja/language.types.type-juggling.php ]
0183nobodyさん2005/05/27(金) 12:19:00ID:???
>181
マニュアル「型の相互変換」を参照。
01841832005/05/27(金) 12:19:29ID:???
orz
01851812005/05/27(金) 13:46:14ID:???
>>182,183
レスどうもです。
なるほど、使用時にその都度決定されるという理解でよさそうですね。
ためしに
$a = "a1";
print substr($a,1,1) . "<BR>";
print substr($a,1,1) + 2 . "<BR>";
とやってみたところ最後の計算も問題なくできてました。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

print ($item->title);

}
?>

↑こう書きました。

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

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

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

ができるのはPHP4.3系からですか?
4.2.3だとエラーになるのですが。
0216nobodyさん2005/05/28(土) 20:56:41ID:???
どうしてもわからん!!
preg_replaceで文字列の一部分だけ
置き換えしたくない場合はどうすれば一番良いねーーーん!
0217nobodyさん2005/05/28(土) 21:13:09ID:???
>>216
例えばどんな場合?
聞くなら、取りあえずどうしたいのか、例題と解答を出してみないか?
でもって、今はこうやってみたけど結果がこうなってダメだったと書くと
的確に答えやすい。
0218nobodyさん2005/05/28(土) 22:12:48ID:???
$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);
0219nobodyさん2005/05/28(土) 22:27:48ID:???
>>218
つまり、[]で囲まれた部分は置換の対象外にしたいと。
0220nobodyさん2005/05/28(土) 23:32:51ID:???
正規表現道場にいけば?
0221nobodyさん2005/05/28(土) 23:37:48ID:???
マッチさせるものなのに、マッチさせない。
これいかに。
02221922005/05/29(日) 02:09:10ID:???
>>193 >>195

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

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




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

parse_ini_file()

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

ttp://www.php.gr.jp/php/php4tettei/
0230nobodyさん2005/05/29(日) 18:18:38ID:???
<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
となるのに表示されません。
なぜでしょうか?
0231nobodyさん2005/05/29(日) 18:47:25ID:???
>>230
>$_GET['$pos']
0232nobodyさん2005/05/29(日) 18:54:18ID:???
つか<?php〜?>の中、全体の処理が意味不明だな。
printf("座標 = %s",$_GET['pos']);
とか。文字結合しながら出力でも勿論よいが。
0233nobodyさん2005/05/29(日) 20:18:44ID:???
複数の変数の値を同じ関数で処理したいのだが

$aaa $bbb $ccc $ddd ...
を
strlen()で処理する場合

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

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

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

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

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

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

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

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

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

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

この挙動(2回リクエストする)じゃ無いと問題が起きるケースがあったような。
ブラウザが相対URIの解決をする時だったかなぁ。
02622562005/06/02(木) 22:10:37ID:???
>>257
幸せなやつだなぁ〜。
0263nobodyさん2005/06/02(木) 22:48:10ID:???
IEならやりかねないかもと思った俺がいた。
bbbってファイルにアクセスするときゃどうするんだろうと。
0264nobodyさん2005/06/02(木) 22:50:08ID: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
0265nobodyさん2005/06/02(木) 22:50:46ID:???
IE等のブラウザが付加するのは後ろのほうじゃなくて
省略した前のほうだな
0266nobodyさん2005/06/02(木) 23:14:21ID:???
>>264
それぞれの処理を関数にしてindex.incにまとめておき、
冒頭でrequire_once('index.inc");
必要個所で func1(); func2(); .. とかじゃ駄目なのん?
0267nobodyさん2005/06/02(木) 23:50:00ID:???
>>261が正しい。>>262は知ったかのバカ。
02682562005/06/02(木) 23:53:26ID:???
>>267
ほんと、幸せ回路全開ですねw
0269Imo ◆.jC7ANgFY. 2005/06/03(金) 00:14:55ID:???
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
02702332005/06/03(金) 00:27:46ID:???
PHPプログラマーズマガジンって書店で売ってますか?
0271nobodyさん2005/06/03(金) 00:32:00ID:???
>>269
つづき
http://example.com/bbb/をリクエストされたサーバは
http://example.com/bbb/index.html(設定によるが)を返すと。


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

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

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

全てを一旦読ませてそこだけ実行するにはfunctionを利用する。
0277nobodyさん2005/06/03(金) 18:22:13ID:???
>>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(); // お好きな場所でドゾー
?>
0278nobodyさん2005/06/03(金) 19:56:31ID:???
まずその拡張子やめれ
0279nobodyさん2005/06/03(金) 20:24:40ID:VBKePBZt
>>278
理由を簡潔に。
0280nobodyさん2005/06/03(金) 21:05:59ID:???
.incのせいで彼女を寝取られたっていうトラウマがあるんだよ!!
0281nobodyさん2005/06/03(金) 21:22:26ID:???
>>279
>>278じゃないけど
・コードがそのまま表示される可能性がある。
・どうでもいいことだが、エディタの関連付けがめんどくさい。
(うちの環境だと、ダブルクリックでVS.netが開く)

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

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

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

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

正しいコードを所得する方法をご教授頂ければ幸いです。
サーバはApache/1.3.31、PHPのバージョンは4.3.8です。よろしくお願いします。
0286nobodyさん2005/06/03(金) 23:09:30ID:???
>>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 してる意味もないがな
0287nobodyさん2005/06/03(金) 23:11:51ID:???
>>284
同意

まぁ、これが現実。
http://www.itmedia.co.jp/enterprise/articles/0506/03/news059.html
0288nobodyさん2005/06/03(金) 23:13:08ID:???
>>285
どういうコード書いたのか晒してくれ。
0289nobodyさん2005/06/03(金) 23:20:38ID:???
>>285
UTF-16では「e70c」。UTF-8では「ee9c8c」。
0290nobodyさん2005/06/04(土) 03:27:45ID:+GcaB5nm
すみませんPHP初心者ですが 教えてください

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

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


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

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

で、その上で質問なんだが、スクリプトを書く時、わざわざ長さを
制限する処理とか入れてる?
PHPcoreのバグの可能性とかも考慮して一応入れている場所も
あるんだけど・・・・心配し過ぎ?
0294nobodyさん2005/06/04(土) 07:40:07ID: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です。よろしくお願いします。
0295nobodyさん2005/06/04(土) 07:46:06ID:9qCVt472
EUCJPの文字コードからSJISに変換して
文字列を標示させたいのですが
うまくいきません。
↓
$str = "はい!!よしきた!";
$str = mb_convert_encoding($str, "SJIS");
echo "$str";
よろしくお願いします。
0296nobodyさん2005/06/04(土) 08:23:32ID:???
>>295
internal encodingはEUCになってるかい
とりあえず変換元も明示してみる
$str = mb_convert_encoding($str, "SJIS", "EUC-JP");
0297nobodyさん2005/06/04(土) 08:40:17ID: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";
?>

0298nobodyさん2005/06/04(土) 08:44:02ID:???
>>294
セットされてないのは送られてないから
俺はお前よりApacheとPHPの方を信じる
0299nobodyさん2005/06/04(土) 08:47:29ID:???
>>297
multibyte関数自体が使えないんじゃないかバカ
エラーでてるんなら最初に書けバカバカ
どうすれば使えるようになりますかとか質問するなよバカ
そんなこと検索すれば分かるバカバカ
0300nobodyさん2005/06/04(土) 08:51:03ID:???
>>295
念のためエディタの保存形式もチェックしてみては?
0301nobodyさん2005/06/04(土) 10:31:18ID:???
>>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は入ってないのですが。
0302nobodyさん2005/06/04(土) 10:58:05ID:???
チョンのようにF5押したから。
0303nobodyさん2005/06/04(土) 11:04:27ID:???
>>301
IEの要求が矛盾してることだけは判った。

良くわからないけどIEのキャッシュが変だとか。
いっぺん物理的に(ファイルシステム的に)クリアしてみては。
0304nobodyさん2005/06/04(土) 12:27:27ID:???
>>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ユーザーが多数派なのでなんとかしたいです。
03053032005/06/04(土) 13:18:10ID:???
>IEのキャッシュをクリアすると、If-Modified-SinceやIf-None-Matchを送らなくなります
>でもやっぱりPragma: no-cacheは送っているようです。

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

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

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

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

参考にして自分で組んで見た結果なら、
SSLを使うようビルドしてないPHPでhttps、ftpを使うようビルドしてないPHPでftp、
元からサポートしてないmmsとかrtspプロトコルを指定したとか。
03202852005/06/04(土) 18:25:34ID: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

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

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

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

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

解説があるページでも良いので教えてください。
0323nobodyさん2005/06/05(日) 04:28:26ID:???
>>322
マルチーズかよ
0324nobodyさん2005/06/05(日) 09:02:34ID:???
ポメラニアンです
0325nobodyさん2005/06/05(日) 11:52:24ID: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が悪いのか私の頭が悪いのかの
どこかに理由あることはわかりますが、上手く動作しません。


0326nobodyさん2005/06/05(日) 12:05:21ID:???
>>325
エラーログを見たら?
0327nobodyさん2005/06/05(日) 12:18:37ID:fHB//NoE
なにも書かれていませんでした
0328nobodyさん2005/06/05(日) 12:19:40ID: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ページ
0329nobodyさん2005/06/05(日) 12:33:23ID:???
>>327
ログには出ないパターンかもな。

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

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

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

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

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

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

今は
PHP
↓
データベース
↓
手動メルアカ発行 ←この部分を自動化したいのですが・・
0347nobodyさん2005/06/05(日) 20:07:58ID:???
>>346
コマンドラインからメールアカウントを発行する時のコマンドを、
system()とかのプログラム実行関数で実行する。
0348nobodyさん2005/06/05(日) 20:40:24ID: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
0349nobodyさん2005/06/05(日) 20:50:37ID:???
>>348
そんな方法など無い。
UTF-16は全ての文字を2バイトで表現し、PHPのパーサはそれを解釈できない。

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

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

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

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

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

よろしくお願いします。
0360nobodyさん2005/06/06(月) 20:50:23ID:???
>>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 '範囲外';
03613592005/06/06(月) 21:01:59ID:???
>>360
レスありがとうございます。
何故「ある曜日と時刻」かと申しますと、
1週間の中で曜日と時刻で変化するパラメータを設けたいのです。

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

0362nobodyさん2005/06/06(月) 21:21:50ID:7fi2eBpp
webサービスなどで自動更新される
(株価やランキングの数値など)ものを
IFRAMEを使わずに表示するには
どうしたらできるでしょうか?
表にその数値を入れたいので、レイアウトがくずれないようにしたいからです。
phpでできるようなことを聞きました
助言おねがいします
0363nobodyさん2005/06/06(月) 21:26:01ID:???
>>362
自動更新されるデータをとってきて変数にいれて、
表の中で表示すればいいだけじゃん。
0364nobodyさん2005/06/06(月) 21:32:14ID:???
>>362
あとはjavaかなんかで自動でリロードさせれば完璧(´・ω・`)b
0365nobodyさん2005/06/06(月) 21:54:33ID:???
>>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;
}
0366nobodyさん2005/06/06(月) 22:13:08ID:???
>>362
IFRAMEを使わずにってことはブラウザ側でも一定間隔で自動更新したいって意味?
それだったらXMLとかの形でJavaScriptで定期的にロードすればそのまま整形できるし(スレ違いだけど)ページ全体を更新する必要もない。
別にブラウザ側で自動更新しなくていいなら>>363の方向で。
>>364はよーわからん。
03673622005/06/06(月) 22:48:00ID:7fi2eBpp
遅くなってすみません
>>363
cgiやperlはやったことがありますが、phpは
ないので、今のところできません
>>364
24時間に一回更新すればそれでいいです。
>>366
とりあえずやってみます。
03683622005/06/06(月) 22:54:40ID:7fi2eBpp
>>363
自動更新されるデータはxmlなのですが
htmlの中のtableの中にどうやって組み込むのですか?
0369nobodyさん2005/06/06(月) 23:11:32ID:???
>>368
パースして適当に表にする
03703622005/06/06(月) 23:47:41ID: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のページに表示するには
どうすればいいのですか?
0371nobodyさん2005/06/06(月) 23:49:51ID:???
>>368
Javascript(XMLHttpRequest) + DOM + DHTML
0372nobodyさん2005/06/06(月) 23:56:14ID:???
>>371
Ajax?
0373nobodyさん2005/06/07(火) 00:39:29ID:???
フォームの処理に関して質問です。
下記のような流れの登録フォームがあったとします。

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

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

これを解消するにはどうしたらいいのでしょうか?
GETにするしかないのでしょうか?
03743622005/06/07(火) 01:36:45ID: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のページに表示
0375nobodyさん2005/06/07(火) 02:17:18ID:???
>>374
ここのスレタイを読むべし。
0376nobodyさん2005/06/07(火) 04:34:51ID:???
>>372
そだね。

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

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

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

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

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

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

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

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



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

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

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


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

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

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

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

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

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

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

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

以上、推測、憶測、ほんまにてきとー。
0406nobodyさん2005/06/08(水) 12:02:03ID:???
ここのカウンター広告ないし最高だよ。
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
0407nobodyさん2005/06/08(水) 12:02:38ID:???
ここのカウンター広告ないし最高だよ。
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
http://www.eucaly.net/
04084022005/06/08(水) 19:58:06ID:???
>>40
リサイズはGDバージョンです。
GDの1、2の設定があったのですが、両方試してもダメでした。
容量は指定以下でやってますので、関係ないようです。

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

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

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

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>
0435(3-2)2005/06/09(木) 22:36:47ID:???
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>
0436自動返信2005/06/09(木) 22:37:42ID:jH9aJbMC
>432
ありがとうございます!
↓参考にして調べたところこんな情報ページがありました
http://www.itmedia.co.jp/help/tips/linux/l0349.html

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

file uploader

Upload failed...

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

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

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

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

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

ただ、環境はWindowsですのでアクセス権の設定はしていません。(出来ないのかな?)
それが問題でしょうか?
0442nobodyさん2005/06/09(木) 23:11:01ID:???
>>437
スクリプト的には問題なさそうだから
error_reporting(E_ALL);
をuploader.phpの<?phpの次の行に追加してみたら。
0443nobodyさん2005/06/09(木) 23:19:42ID:???
ただファイルを何もうpしてないだけだったりして
0444(3-3)2005/06/09(木) 23:20:32ID:???
>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
0445nobodyさん2005/06/09(木) 23:21:25ID:???
誰かZend Studio 4.0日本語版使ってる人いない?
買おうかどうか悩んでるんだけど、レビューしてる人見かけないし・・・。
地雷かな?
Eclipseもいいけど、色んなの使ってみたいなとも思ってて。
0446nobodyさん2005/06/09(木) 23:37:17ID:???
>>445
人柱乙(*´∀`)
見た感じは良さそうだけどなぁ。
0447nobodyさん2005/06/09(木) 23:46:51ID:???
>>445
よほど大規模な開発にはよさげだけどね
でもかなりの部分はEclipseでも賄えちゃうしなあ
俺はまず使うこと無いな
0448自動返信2005/06/10(金) 00:08:58ID:gLWzFcyI
/etc/aliasesでroot:"/usr/bin/php /home/sample.php"のようにしてroot宛にメールがきたらsample.phpを実行するという環境にしました。
これは成功したんですけど、送信されてきたメールアドレスをこのPHPスクリプトに渡したいんですが、まずメールアドレスの取得方法は何かありませんか?
0449nobodyさん2005/06/10(金) 00:52:21ID:???
>>448
ぉぃぉぃ。
qmailだと実行できるとか、Maildir/を見るしかないとかを>>431で書いておきながら、
実は何も知りませんてか。
エンベローブFromは取れないが、Mailヘッダも含めて標準入力から来てるだろ。
0450自動返信2005/06/10(金) 00:58:44ID:gLWzFcyI
>449
すみません…そのとおり何も知らないんでどうしようもなく質問させていただきました。
qmailだと実行できるというのはそういう一言情報が調べたときにありましたが、という意味で書きました。
Maildir/については、メール内容などがどういう風に書き込まれてるかを調べていけば読み出すことでできるかもしれないという自分なりの考えを述べたつもりです。
こんな/etc/aliasesというものをまったく知らなかったので。
標準入力からきているというヒントでも正直よくわかりません…。
どこでどう取得すればいいんでしょうか?
0451nobodyさん2005/06/10(金) 01:08:30ID:???
>>450
$mail = file_get_contents('php://stdin');
これで、メールの内容(ヘッダ込)が全て$mailに入るから、
適当なファイルに書き出して、どのような中身になっているか見てみるがいい。

後は、マニュアルのmailparse関数等を参考に。
0452nobodyさん2005/06/10(金) 01:13:11ID:???
追記つーか補間
mailparse関数を使えって意味じゃなくて、そこに書いてある内容を参考にって意味だったんだが、
何も書いてないよなw
RFC822とか、その他いろいろググってってことで。
0453自動返信2005/06/10(金) 01:44:05ID: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の情報はありがとうございます。
メールヘッダの形式もあいまいだったのでこの機会に習得しておきたいと思います。
0454nobodyさん2005/06/10(金) 01:45:52ID:???
>>453
newaliasesは実行したか。
で、俺はもう寝るぞ。
0455nobodyさん2005/06/10(金) 01:53:30ID:???
>>445
一度も使ったことがないなら、登録してFree Evaluation(英語版)で試してみなよ。
バージョンが上がる度に良くなってる点は評価できるけど、
Java使ってて動作がもっさりだなと思わないこともない。Eclipseもいっしょだが。
まあ、今時のマシンだと気にするほどじゃないけどね。
0456自動返信2005/06/10(金) 01:54:08ID:gLWzFcyI
はい、newaliasesはきちんとしているのですが…。
遅くまですみません、でも何か解決策が見えると思います。
がんばってみます。
昼4時から取り組んで悩んでいたので解決に光が見えてきて本当に嬉しいです。
本当にありがとうございます。
自分もこういう質問に答えられるくらいになるようもっと勉強します。
0457自動返信2005/06/10(金) 02:12:27ID:gLWzFcyI
>454
できました!
きちんと$mail=file_get_contents("php://stdin");で$mailに入っていました。

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

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

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

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

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

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

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

こういう話じゃないってこと?
0471nobodyさん2005/06/11(土) 00:12:41ID:???
アップロード系のサイトをやってるんですが、
特定のディレクトリ内に一番最後に格納されたファイル
(または過去n個以内の複数のファイル)のファイル名情報を取得して、
.php内に表示させる方法ってないでしょうか?
イメージとしては、
<?php echo date('m/d', filemtime('./upload/') ) ?>
↑の指定ディレクトリの更新日時を取得して表示する、の
名前取得版みたいな感じで動作させたいんですが...。
0472nobodyさん2005/06/11(土) 00:27:43ID:???
いろんなやり方があると思うけど、
・アップロード時にテキストファイルにファイル名を書き込む
・表示させる時にディレクトリ関数・ファイルシステム関数を使ってデータ取得
etc.
0473nobodyさん2005/06/11(土) 00:57:32ID:???
>>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>
のような感じで。
0474nobodyさん2005/06/11(土) 01:14:18ID:???
>>473
そんな事やってそうな気がしたんだよ…

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

表示されんのだが・・・
0537nobodyさん2005/06/12(日) 23:32:34ID:???
>>536
1. phpinfo(); - phpが動いているかどうか調べる
2. echo 'hello world'; - お約束。アルファベットのみなので文字化け等の問題を除去できる
3. echo 'てすと'; - 次へのステップ
4. echo '<center>てすと</center>'; << いまここ
つー感じで徐々に試してみたりしませんか?
05385362005/06/12(日) 23:36:47ID:???
>>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>
だと何も表示されなくなるのよ(´・ω・`)
05395382005/06/12(日) 23:39:42ID:???
すまん、解決した・・・
""が!!になってたよ(´・ω・`)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

>>552
同意
0554nobodyさん2005/06/13(月) 05:00:42ID:???
$_SERVER["UNIQUE_ID"]
というのは、どういう値でしょうか?
05554922005/06/13(月) 07:28:22ID: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/に変えると普通に
動作します。
0556nobodyさん2005/06/13(月) 07:56:09ID:???
>>548
image/pjpeg
というのもあるからその方法は使えない
0557nobodyさん2005/06/13(月) 10:08:59ID:???
日本語名のファイルを登録させないようにしたいのですが
制御する方法が分かりません。ググっても見つかりません・・。

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

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

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

これを一行に省略したりできる?
05645572005/06/13(月) 16:25:04ID:???
>>562
鯖缶に聞いてくれ
05655622005/06/13(月) 16:26:26ID:???
extractで自己解決しました
0566nobodyさん2005/06/13(月) 16:36:29ID:DISdzlt3
うはwwwww
trimって全角の空白削除されないのかwwwwww
05675622005/06/13(月) 16:36:56ID:???
>>565
誰かしらんがサンクス!
そんな便利な機能があったとは
0568nobodyさん2005/06/13(月) 16:42:45ID:???
>>565
>>563のような変数の初期化を面倒くさがる奴の
書いたスクリプトでは全般的に変数の初期化が甘いと思われ。
そんなスクリプトでextractなんて使っちゃ駄目。
0569nobodyさん2005/06/13(月) 17:11:51ID:???
php.iniってどこにあるんですか?
0570nobodyさん2005/06/13(月) 17:22:48ID:???
>>569
findして見つかったところ。そのファイルが有効かどうかは
お前さんの使っているPHPに依存する
05715692005/06/13(月) 17:23:42ID:???
findしてなかったんだが
0572nobodyさん2005/06/13(月) 17:26:52ID:???
>>569
そのPHPがどうやってインストール(configure)されたかによる。
>1に「質問する際には環境も明記。」とあるのも読んでくれよ
0573nobodyさん2005/06/13(月) 17:30:10ID:???
PHPって鯖上で動くんだよな・・・
インスコしないといけないのか?
0574nobodyさん2005/06/13(月) 17:31:02ID:???
>>571
うーん、じゃあ無いんじゃないか。別に無くてもPHPは動くし、
必要な場合にはdistやrecommendedを参考に作ることになってるわけだから。
0575nobodyさん2005/06/13(月) 17:31:51ID:???
>>573
されてなければね。
0576nobodyさん2005/06/13(月) 17:32:23ID:???
PHP5.0.4インスコした。
探したがiniないぽ
0577nobodyさん2005/06/13(月) 17:34:13ID:???
環境を書けと言ってるだろうが!この本7野郎が!(/-o-)/ ┫
0578nobodyさん2005/06/13(月) 17:35:16ID:???
xp
0579nobodyさん2005/06/13(月) 17:36:40ID:???
うなwwwwiniハケンしたwwwwwwww
error_reportingたくさんあったが全てE_ALLになってた(´・ω・`)
0580nobodyさん2005/06/13(月) 17:37:02ID:???
Windows系にPHPを入れた場合、
php.iniは自分で適切な場所に”作る”必要がある。
0581nobodyさん2005/06/13(月) 17:41:47ID:???
php.ini作成シマスタ!
display_errorsをとりゃえずOnにしてみたが・・・
0582nobodyさん2005/06/13(月) 17:58:10ID:???
>>573
MS officeってwindows上で動くんだよな・・・
インスコしないといけないのか?
0583nobodyさん2005/06/13(月) 18:02:44ID: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 〜〜
と言うエラーがでてしまいます。

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

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

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

good と出ますた
0585nobodyさん2005/06/13(月) 18:30:12ID:???
もしかして自宅鯖じゃないと
php.iniの設定は反映されないのか?
05865832005/06/13(月) 18:38:21ID:???
>>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;

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

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

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

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

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

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

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

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

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

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

皆さん改めて有難うございました。
0593nobodyさん2005/06/13(月) 19:11:55ID:QMcSO9eW
URLへジャンプし、その際のターゲット属性を指定できる関数ってありますか?
0594nobodyさん2005/06/13(月) 19:19:34ID:???
>>593
ブラウザの挙動としては、
targetが指定されたウィンドウ(該当が無ければ新しいウィンドウをオープン) ”から” ジャンプ先のURLが鯖にリクエストされます。
要は、リクエストの前にターゲットが決まってないといけない。
0595nobodyさん2005/06/13(月) 19:45:51ID:QMcSO9eW
<iframe src="xxx.html" name="hoge">
上記のようにフレームを作り、PHPでtargetを"hoge"、
つまり上記のフレームにしてフレーム内だけが更新できればと考えているのですが、
説明不足ですみませんでした。
Javascriptでも hoge.location.href="yyy.html"; として試してみたのですが、
挙動がありませんでした。
0596nobodyさん2005/06/13(月) 20:11:36ID:???
>>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>
0597nobodyさん2005/06/13(月) 21:00:39ID: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で確認しました。
0598nobodyさん2005/06/13(月) 21:08:33ID:QMcSO9eW
>>596
そうですか。ありがとうございました。
外部のページを読み込んで更新を何秒ごとかに行いたかったのですが、
どうやらPHPはページの操作という概念自体が違うようでしたね。
JSで頑張ってみることにします。
0599nobodyさん2005/06/13(月) 21:19:39ID:???
>>597
ノートン先生がごるぁしているとか。
Apacheのログにユーザーエージェントがはいっていないなら、PHPの問題ではないと思われ。
0600nobodyさん2005/06/13(月) 21:56:26ID:???
webサーバーの再起動ってなんだ?
要するにPC再起動ということか?
0601nobodyさん2005/06/13(月) 22:00:41ID:???
>>600
好きにやってくれ
0602nobodyさん2005/06/13(月) 22:21:24ID:???
>>601
もったいぶらずに教えてくれ!!!
0603nobodyさん2005/06/13(月) 22:36:16ID:???
>>600
電源抜いて数秒待って差す
0604nobodyさん2005/06/13(月) 22:39:01ID:???
>>602
Apache再起動。
出来ない環境ならini_setすれば?
質問する前にマヌアル読もうな。
06056002005/06/13(月) 22:40:17ID:???
>>604
Apache使ってない
0606nobodyさん2005/06/13(月) 22:50:57ID:???
鯖はレンタルさばくぃhじゅ、l;、
0607nobodyさん2005/06/13(月) 23:10:01ID:???
>>604
IIS?なんでもいいよ。Webサーバの再起動ね。
で、>>606のようにレン鯖で再起動出来ないならini_setしろって事ね。
0608nobodyさん2005/06/13(月) 23:27:17ID:???
レンタル鯖でPHPエラー発生したがエラーが表示されない。
エラーを表示させるためにPHP.iniを書き換えた

ってことだな?
0609nobodyさん2005/06/13(月) 23:28:53ID:???
>>608
そそ
レンタル鯖だとどうしようもないよね
0610nobodyさん2005/06/14(火) 03:56:03ID:???
みんな!大変だ!Smartyスレが落ちた!!
0611nobodyさん2005/06/14(火) 07:19:02ID:???
【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

---
こんな感じでどうだろう
0612nobodyさん2005/06/14(火) 09:32:51ID:???
PHPの開発ツールで
お勧めなものを
教えて神さま。
0613nobodyさん2005/06/14(火) 09:44:37ID:???
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
0614nobodyさん2005/06/14(火) 10:29:50ID:???
>>612
Eclipse+PHPEclipse
統合環境 ttp://www.eclipse.org/
PHP用プラグイン ttp://phpeclipse.sourceforge.net/
日本語情報サイト ttp://eclipsewiki.net/eclipse/

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

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

ちなみにMetaタグのRefreshも試してみましたが、再読み込みが繰り返し行われることになり視覚的にいまひとつの結果でした。。。
どうかお知恵をお貸しください。よろしくお願いします。
0616nobodyさん2005/06/14(火) 11:50:23ID: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です。
なぜエラーがでるのかおしえてくださいお願い致します。
0617nobodyさん2005/06/14(火) 12:04:41ID:???
>>616
php.iniの設定が違うだけ
バージョンは関係ない
error reporting参照
0618nobodyさん2005/06/14(火) 12:05:58ID:???
>>613
お前のバグだろ
スクリプト晒さないとわからんよ
0619nobodyさん2005/06/14(火) 12:35:35ID:kWRonEc7
iniの設定は本によって違うからわかりません
具体的にどの変がまずいの?
0620nobodyさん2005/06/14(火) 13:18:14ID:???
>>619
エラーレポーティング();
0621nobodyさん2005/06/14(火) 13:20:09ID:???
つ ttp://jp.php.net/manual/ja/function.error-reporting.php
0622nobodyさん2005/06/14(火) 13:36:48ID: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のどっかを修正したら直るんですか?
バージョンさげるとでなくてあげるとでます
0623nobodyさん2005/06/14(火) 13:56:28ID:???
>>622
4.3でmb系の関数がインストールされてないんだろ。
0624nobodyさん2005/06/14(火) 14:19:14ID:kWRonEc7
古いバージョンの拡張モジュールをすべてコピーしたら
解決しました
新しいバージョンってインストールするだけなら拡張モジュールは
インストールされないの?
昨日狩ってきた本にはPHP.iniの設定には全く触れてなかっただけど
本によっては設定したりしなかったりわけわからん
0625nobodyさん2005/06/14(火) 14:59:41ID:???
>>624
解決したのはいいが、ヒントをいただいた人にお礼は?

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

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

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

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

ttp://web-navigation.net/


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

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

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

>>599
というわけでした。すいません。
0645nobodyさん2005/06/15(水) 16:37:10ID: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の初歩の検索プログラムをつくっているのですが
条件を三つにしたら機能しません。
二つなら正常に検索するのですが
条件を三つつなげることはできないのでしょうか
0646nobodyさん2005/06/15(水) 17:05:54ID:???
>>645
ソースは汚いし説明は良く分からんわで、質問を正確に理解できてるか自信ないけど、
比較の時のcsvの格納順序($line[])と各条件の対応がおかしいだけじゃないの?
06476382005/06/15(水) 17:07:05ID:???
error_reportingが2047になっていました・・・
ん^・・・
06486382005/06/15(水) 17:25:00ID:???
あれ?2047って全てのエラー表示するんじゃ・・・
06496382005/06/15(水) 18:09:49ID:???
string ini_set ( display_errors , "on");

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

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

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

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

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

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

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

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

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

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

「実際には繋がって(改行せず)ますよ」ってこと。
そのまま写すと大抵エラーになるよ。
0668nobodyさん2005/06/15(水) 23:42:31ID:???
>>663
それを答えるのに必要な情報を提示しない理由は?
0669nobodyさん2005/06/15(水) 23:42:46ID:???
>>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
06706642005/06/15(水) 23:52:34ID:???
即レスどうもありがとうございます。

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

>>669
分離が可能なのですか・・・。
目からうろこが・・・。
いろいろ調べてみることにします。
0671nobodyさん2005/06/15(水) 23:54:12ID:???
PHP5のSoapClientをWSDL使ってインスタンスにし、
メソッドの引数が構造体である場合どのように構造体を実現すれば良いのでしょう?
0672nobodyさん2005/06/16(木) 00:07:34ID:???
>>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/
0673nobodyさん2005/06/16(木) 00:39:10ID: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くらい多めに設定ということを毎日やってます。
なんか、うまい方法があれば、アドバイスをお願いします。
0674nobodyさん2005/06/16(木) 00:44:24ID:???
rpmのphp(レッドハット製?)のspecと
php-4.3.11.tar.gzに入っているsepcとだいぶ違います。
(レッドハットの方は複数のパッケージが作られる。)

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

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

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

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

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





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

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

PHPはきえていくのだろうか・・・俺PHPしか使えないのに・・・
30歳だし
0704nobodyさん2005/06/16(木) 19:36:10ID: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が悪いのか、その他の原因があるのか想像も付きません。
どなたかお気づきの点がありましたらご教授お願い致します。
0705nobodyさん2005/06/16(木) 19:36:52ID:???
>>703
うち募集しているけど、誰も来ない。
0706nobodyさん2005/06/16(木) 19:55:45ID:???
PHPだけ出来てもなぁ…
0707nobodyさん2005/06/16(木) 20:26:50ID:???
>>704
おもしろそうなので、やってみましたけど動きましたよ。
(Solaris10、PHP5.0.4、qmail1.03)

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

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

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

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

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

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

>>713 さんのように一階層毎に作成するか、UNIX環境なら以下でもOK
system('/bin/mkdir -p foo/bar/baz');
0715nobodyさん2005/06/16(木) 22:54:37ID:???
すみませんが、質問させてください。
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);
?>
0716nobodyさん2005/06/16(木) 22:57:56ID:???
>>713
これって、__mkdir('path/path/path') のように先頭の / がない状態で
呼び出されると無限ループしそうな希ガス

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

うーむ、何が悪いのだろう??? php本体が正常に働いていないのかな?
とDSO版のPHPは稼動しており、phpで作成したページをapacheサーバーで公開して
作動しているのは確認しております。
07377072005/06/17(金) 12:26:33ID:???
>>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);
?>

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

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

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

あああ
あいう
くるま

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

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

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

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

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

まあプログラマに安住しない方がいいとは思うけど…
0765nobodyさん2005/06/18(土) 22:32:18ID:???
>>763
データファイルの中身次第だろうけど、白紙のページが表示される。
たまたま、データファイルの先頭が <? なんかで始まるデータなら
PHP のエラーメッセージが表示されるかもしれんが。
ただ、その類のファイルは、URLでは参照できないディレクトリに
保存するのが普通。
0766nobodyさん2005/06/18(土) 23:47:13ID:???
>>763
なんでデータファイルの拡張子をPHPにしたいわけ?
0767nobodyさん2005/06/18(土) 23:49:53ID:???
中身を見せない為でしょうね
0768nobodyさん2005/06/18(土) 23:54:17ID:???
perl等のcgiの場合は、データファイルの拡張子をcgiにしておくことで
shebang(一行目のアレ)無し+HTTPヘッダ出力無しでエラーになるから
それからの連想じゃないかねぇ。
0769nobodyさん2005/06/19(日) 00:43:24ID:???
俺はテキストデータにする場合は、データファイルは.cgiにしてある。
最近は小規模でもめっきりDBに逃げてるけど。楽チンフォーー
0770nobodyさん2005/06/19(日) 00:53:50ID:???
てか見せたくないファイルはApacheの設定で403にするだろ普通
0771nobodyさん2005/06/19(日) 00:54:57ID:???
htaccessが置けないところもあるからじゃない?
07727632005/06/19(日) 01:02:40ID:???
そのファイルへ毎回<?を頭につけてやってしまえば、
なーもしないでサクッと導入できるんだけど、
これでいいんかな、とおもて質問したわけでございます。
結局のところ問題無い?ある?
問題あったとして、こちらに責任は被さる?個人情報とかあったとして。
0773nobodyさん2005/06/19(日) 06:09:14ID:???
oioi
0774nobodyさん2005/06/19(日) 06:22:33ID:???
>>772
漏れたら責任以前に信用なくしてさよならだな。
0775nobodyさん2005/06/19(日) 06:42:04ID:???
かってにCookieが設定されてしまいます。
pma_lang
pma_charset
pma_collation_connection
pma_theme
たぶん、phpMyAdmin関係だと思うんですけど、
どうやって消すんでしょうか。
0776nobodyさん2005/06/19(日) 07:22:22ID:???
有効期限とかパスとか調べて
setcookie("pma_lang", "", その他適切な引数);
っていうふうに空文字セットすれば消せるんじゃん?
別に消さなくてもいい気がするけど。
0777nobodyさん2005/06/19(日) 07:33:22ID:???
phpmyadminだとしたら、cvsのrevision2.70では
setcookie('pma_lang', $lang, time() + 60*60*24*30,〜
ってなってるから、30日保持されて消えるようになっている。
パスの指定もきっちりしてあるから無意味にcookieを送出しなさそうだし、消す必要ないんじゃないの?
0778nobodyさん2005/06/19(日) 15:25:27ID: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()の中に入れてしまった方が
スッキリするんですが。どのようにすれば良いでしょうか。よろしくお願いします。
0779nobodyさん2005/06/19(日) 15:32:10ID:???
それは出来ない。
俺的には呼び出す方が自然だしスッキリする。
0780nobodyさん2005/06/19(日) 16:43:56ID:???
functionの中にfunctionいれれるのなんかJavaScriptくらいだろ。
$this->nikaisuru()でよろしく。
0781nobodyさん2005/06/19(日) 16:56:49ID:???
>>778
privateメンバ関数定義すれば?
07827782005/06/19(日) 17:20:34ID:TrIxMHAD
privateメンバ関数を定義し、$this->nikaisuru() とする事にしました。
ありがとうございました。
0783nobodyさん2005/06/19(日) 23:30:53ID:???
特定のサイトが更新されたら、自サイトに更新部分を自動で表示する
スクリプトって既にありますか?

例:ヤフーhttp://dailynews.yahoo.co.jp/fc/
の一部分の更新を、自サイトにも反映させる
0784nobodyさん2005/06/19(日) 23:37:04ID:???
>>783
マルチウザイ。
すれ違い。というか板違い。
0785nobodyさん2005/06/19(日) 23:46:53ID:???
>>783
RSSでも喰っとけ
0786nobodyさん2005/06/20(月) 00:00:37ID:???
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のコンソールで問題なく動くことは確認しました。

何が原因なのでしょうか?
0787nobodyさん2005/06/20(月) 00:14:49ID:???
>>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リソースではありません。
07887862005/06/20(月) 00:17:09ID:???
レスありがとうございます。>>787
英文の内容は、「正しくないよ」くらいのことを言ってるのかな?とは分かったのですが、
何が正しくないのか分かりません。
コンソールでは通るのに、他に何か問題があるのでしょうか?
よろしくお願いします。
0789nobodyさん2005/06/20(月) 00:22:48ID:???
>>788
mysql_num_fields関数に渡した引数が正しくない。
なぜ正しくないのかとかそういうことはソース晒してくれなきゃわからない。
くだ質レベルなわけだが。
07907862005/06/20(月) 00:31:08ID:???
レスありがとうございます。>>789
mysql_num_fieldsに渡した引数ですが、ソースのほかの部分については全く変わりはありません。
該当部分のみ抜き出すと
$rst = mysql_query($sql, $con);
$fldmax = mysql_num_fields($rst);
こんな感じです。
ソースには>>786の2つの文を両方記述してあり、片方ずつコメントアウトしてやると、
1ではうまくいくのに2ではうまくいかない、という状況です。
なんでだろう・・・。
0791nobodyさん2005/06/20(月) 00:42:58ID:???
>>790
>4をよく読め。
まぁ、おそらくタイポだろ。


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

試して結果出してくれ>>817
0823nobodyさん2005/06/21(火) 03:37:33ID:???
突然だけど、マルチポストをまるぽと呼んでみないかい?
0824nobodyさん2005/06/21(火) 03:45:21ID:???
まるぺ(教)みたいだ
0825nobodyさん2005/06/21(火) 13:04:34ID:YilT+fOH
僕はPHPが理解できましぇん><
駄目です。そんな俺を一人前にしてくれ
頼む・・・はげ板在住おろかなPHPプログラマより・・・お前らへ
最後のお願いです。
0826nobodyさん2005/06/21(火) 13:13:07ID:???
まず何かつくってみよう。一行掲示板でもいい。
そしてどんどん規模が大きくて複雑なものに挑戦していこう。
はげ2号より。
0827nobodyさん2005/06/21(火) 13:19:58ID:???
とりあえず、暫く無視してみよう
0828nobodyさん2005/06/21(火) 16:45:20ID:???
始めに作るといえばやっぱ
Hello World
か
phpinfo()
だろ。
0829nobodyさん2005/06/21(火) 17:20:01ID:???
PHPでHello Worldやってもなぁ・・・
0830nobodyさん2005/06/21(火) 17:28:53ID:???
<?php #Hello world を出力する ?>
Hello world
0831nobodyさん2005/06/21(火) 18:05:35ID:???
>>830
おしい!
0832nobodyさん2005/06/21(火) 18:06:26ID:???
<html><head><title>PHPでHello World!</title></head><body>
<p>Hello<?php echo ' '; ?>
World!</p>
</body></html>
0833nobodyさん2005/06/21(火) 18:07:22ID:???
>>833
あともう少し!
0834nobodyさん2005/06/21(火) 18:18:45ID:???
>>832
えええええええ
0835nobodyさん2005/06/21(火) 18:21:08ID:???
<?php
// phpによる至極簡単なHello World!表示の例
$a='eJyzySjJzbGzyUhNTLGzKcksyUm1C/AI'.
'aDrqkZqTk68Qnl+Uk6Joow+RsNGHKEvK'.
'T6m0symwQ1VTAJSHyOiDzQQAtVYfZw==';
echo gzuncompress(base64_decode($a));
?>
0836nobodyさん2005/06/21(火) 18:21:35ID:???
<?php
$aho = "Hello World!";
echo <<<HOGE
<html><head><title>$aho</title></head><body>
<p>$aho</p></body></html>
HOGE;
?>
0837nobodyさん2005/06/21(火) 18:24:11ID:???
奇妙なHello Wordl特集というサイトが作れそうだな。
0838nobodyさん2005/06/21(火) 18:30:41ID:???
つーか理解できないのに何故PHPプログラマなんだ・・・
0839nobodyさん2005/06/21(火) 18:37:13ID:???
自称ならなんでもあり


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class classA {
  ...
}

class classB extends classA {
  ...
}

class classC extends classA {
  ...
}
0870nobodyさん2005/06/23(木) 00:01:18ID:???
仕様上の制限(や強制)は無いから好きにすればイイヨイイヨ
別ファイルにした時はrequire_onceを忘れずに。
0871nobodyさん2005/06/23(木) 00:05:23ID:ol7QAXcn
thx。1クラス1ファイルってのはjavaだったのか
0872nobodyさん2005/06/23(木) 00:08:23ID:???
1クラス(継承クラス含む)1ファイルにした方がautoloadし易かった。
0873nobodyさん2005/06/23(木) 00:09:01ID:???
>>871
別に 1 クラス 1 ファイルとは限らないよ。
0874nobodyさん2005/06/23(木) 00:20:53ID:???
じゃあ気にせずにやります
0875nobodyさん2005/06/23(木) 02:41:39ID:Ycsi6J8Z
C言語(WinNT)と php で、共有メモリを介して通信って可能でしょうか。
0876nobodyさん2005/06/23(木) 03:28:07ID:???
つ [http://www.php.net/manual/ja/ref.shmop.php]
08778752005/06/23(木) 03:49:09ID: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 側は、別の関数を使うのでしょうか。
勘違いしていたらツッコミお願いします。
0878nobodyさん2005/06/23(木) 04:38:48ID:???
>>877
つうか
phpの共有メモリのアクセス関数が提供するのは
UnixライクなOSで実装されてる共有メモリへのアクセスで
win32の共有メモリのアクセス関数(で示してるのが良く判らんが) は
Windows独自の実装の共有メモリへのアクセスではないのか。
後者は前者に対してもアクセス出来るような作りの関数なのか?

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

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

こんな明け方に、レスありがとうございました。
0880nobodyさん2005/06/23(木) 07:46:13ID:4sGGPAIm
お前らそんな高レベルな話
はいかんぞ
0881nobodyさん2005/06/23(木) 09:29:53ID:???
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);

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

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

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

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

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


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

$lines=file('http://pc8.2ch.net/php/subject.txt');
foreach ($lines as $line_num => $line) {
$line=mb_convert_encoding($line,"EUC-JP","SJIS");
list($num,$title)=explode(".dat<>",$line);
$title=str_replace ("'","\'",$title);

for($i=0;$i<count($title);$i++){
$sql="insert into subtxt (dat,title)values('$num','$title')";
$resultInsertrev=$db->query($sql);
if((DB::isError($resultInsertrev))){echo $resultInsertrev->getMessage();echo ('えらーでたよ');exit;}
}}
0907nobodyさん2005/06/26(日) 13:46:56ID:???
>>906
突っ込みどころ満載
自鯖でやってるんなら別にいいけど。
0908nobodyさん2005/06/26(日) 21:59:05ID:???
>>907
いいじゃん
そうやって人は成長するんだ
0909nobodyさん2005/06/27(月) 10:50:35ID:???
ソースなんか動けば良いんだよ
メンテナンス性が必要ならメンテ時に改善すればいい
0910nobodyさん2005/06/27(月) 11:52:56ID: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メソッドにオブジェクト渡す時って何か特殊な渡し方があるんでしょうか?
0911nobodyさん2005/06/27(月) 13:26:31ID:???
>>910
マルチ
ttp://oshiete1.goo.ne.jp/kotaeru.php3?q=1476152
09128992005/06/27(月) 16:36:54ID:???
(ノД`)グッスン
0913nobodyさん2005/06/27(月) 20:07:16ID:???
>>909
OOP の考え方を否定するようなことを言うなよ。
0914nobodyさん2005/06/27(月) 22:40:22ID:???
>>913
OOPじゃなくても、こんな考え方はダメでしょ。
0915nobodyさん2005/06/27(月) 22:45:36ID:???
別にいいと思うけどなぁ・・・
0916nobodyさん2005/06/27(月) 22:55:07ID:???
>>915

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

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

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

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

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

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

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

どこのサイトにpatch情報はありますか。
0928nobodyさん2005/06/30(木) 18:02:09ID:???
必要のないpatchが残ってたりするけどな。
古すぎて大幅にソースの位置が変わってて追従しきれてないのとか。
手動で当ててみ。
0929nobodyさん2005/06/30(木) 22:28:13ID:KTukUE2K
2chとヾトリップ作成する方法教えてください
0930nobodyさん2005/06/30(木) 22:36:30ID:???
2chとおなじトリップ作成する方法教えてください
0931nobodyさん2005/06/30(木) 23:06:16ID:KTukUE2K
ChatWorldに入るのに
Proxy制限かかってるよ・・・
まだ使えるプロキシおせーて
0932nobodyさん2005/06/30(木) 23:06:34ID:KTukUE2K
誤爆
0933nobodyさん2005/07/01(金) 03:51:14ID:???
>>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);
}
0934nobodyさん2005/07/01(金) 08:34:44ID:???
>>933 $keyには何をいれるよ?
0935nobodyさん2005/07/01(金) 12:09:35ID:???
>>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);
}

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

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

遊んでいて良いと言われてもすることがないから、
いくつかサイトをつくってみた。
今はその収入で食っている。
0943nobodyさん2005/07/02(土) 04:25:08ID:???
usortで呼び出す関数について
基本はsortと同じように数順、アルファベット順にするが、
「hoge.mp3」を「hoge.htm」より前に置きたい
(例えば aa.mp3 bb.mp3 bb.htm cc.htm dd.mp3 dd.htm というふうに)
どういう関数にすればいいですか
0944nobodyさん2005/07/02(土) 07:28:55ID:???
>>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);
?>
0945nobodyさん2005/07/02(土) 08:25:36ID:???
>>944
期待する動作が得られました、丁寧にありがとう
0946nobodyさん2005/07/02(土) 10:02:27ID: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にてグループ化した値を参照する方法を調べたのですが
みあたりませんでした。
どうかアドバイスお願いします。
0947nobodyさん2005/07/02(土) 10:07:37ID:???
http://jp2.php.net/preg_match
0948nobodyさん2005/07/02(土) 10:17:53ID:???
>>946
3番目の引数を使う
09499462005/07/02(土) 12:04:04ID:???
>>947
>>948
ありがとうございます。
無事エラーなく動作させることができました!
0950nobodyさん2005/07/02(土) 18:22:12ID:???
>>933
>>935
使い方おせぇてください、いや、まじお願いします
0951nobodyさん2005/07/02(土) 21:56:20ID:???
特定のサイトから任意のページを取得して
そのページのHTML全部変数にブチ込むにはどうすればいいでしょうか?
0952nobodyさん2005/07/02(土) 22:03:55ID:???
つ [ ファイル関数 ソケット関数 ]
0953nobodyさん2005/07/02(土) 22:22:44ID:???
$hensuu = file_get_contents( 'http://〜' );
0954nobodyさん2005/07/02(土) 23:20:11ID:???
>>953
ありがとうございます
0955nobodyさん2005/07/03(日) 02:40:25ID:???
>>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") );

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

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

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

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

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

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

イーチョだよイーチョ!
エチョってよむやつは英語の勉強しなおしてこい!
0979nobodyさん2005/07/05(火) 07:44:20ID:???
>>975
しょうがねーなー>>972が改行文字のあるなしって書いてるだろ
if($shop[$lp]==$a)
↓
if(trim($shop[$lp])==$a)
0980nobodyさん2005/07/05(火) 16:32:23ID:KhOBjuCN
>>977
ごめんごめん。
いつもの癖で、関西弁が出てしまいましたw

>>979
ありがとうございます。
できました。
0981nobodyさん2005/07/05(火) 16:36:22ID:???
へーちょ
0982サル2005/07/05(火) 16:40:59ID: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>
0983nobodyさん2005/07/05(火) 16:46:45ID:???
表示できない、だけでは何とも
0984サル2005/07/05(火) 16:50:22ID:rDJ/Mrei
どういう風にすれば宜しいでしょうか?
0985nobodyさん2005/07/05(火) 17:29:52ID: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 "ココが表示されない";
}
}
?>
0986nobodyさん2005/07/05(火) 18:06:57ID:???
>>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 "ココが表示されない";
}
}
0987nobodyさん2005/07/05(火) 18:26:04ID:KhOBjuCN
>>986
ありがとうございます。
0988nobody2005/07/05(火) 18:49:01ID:???
>>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);
?>
0989nobodyさん2005/07/05(火) 18:58:48ID:KhOBjuCN
>>986
やってみましたが、思ったとおりの正しい値でした。
原因はわからないままです。

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

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

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";
}
?>

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

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

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

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

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

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

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

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

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