「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。 1. ハードウェア、OSのバージョン等には一字一句触れない。 2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。 3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。 目の前で生じている現象をそのまま具体的に書くなどもっての外。 事実より俺様の脳内解釈を優先すべし。 4. 独り言文体で必勝。 「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」 5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。 6. もう試したことを得意げに指摘してくる奴には、厳しく対応。 「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」 "どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。 7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。 「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」 示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので 絶対に避ける。 8. 情報は小出しに。 「エスパーきぼんぬ」補足 上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。 そのような悪い質問に対して答えられるのは, 質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ, という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。 まちがっても「エスパーの方,回答お願いします」 なんて痛い質問するな。つうか氏ね。
5 :
nobodyさん :2005/05/05(木) 17:28:34 ID:lUYNUyUo
6 :
nobodyさん :2005/05/05(木) 17:32:08 ID:HJsvd1wb
ttp://pc3164.chukai.ne.jp/ wっwwwwwwwうぇwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwうはっっうぇw
wwwwwwおkっwっwwwうはっうはっwwwwww
wwwwwwwおkwwwwwwwwwwwww
wwwwwwwwwwww
うんこ
8 :
nobodyさん :2005/05/05(木) 23:21:09 ID:QynlR/yC
参考サイト、技術名、検索キーワードだけでもいいので教えてください。 出会い系サイトにありがちですが、空メールのみで会員登録するものです。 例: 1.メールをサーバーが受信する。ID発行プログラム起動 2.受信と同時にmd5等でIDを作成。メールアドレスとIDとともにデータベースにつっこむ 3.ID付きURLの記述されたメールを自動返信 4.URLをクリックすると、画面にメールアドレスが表示 というものです。自分でテキストボックスにメルアドを記入させればすむことですが、 記入の手間を減らしたいと思っています。 これらを行なうには、レンタル鯖ではなく、自宅鯖を立てるしかないのでしょうか? 検索できるようなキーワードか、参考にできるサイト、書籍名でもかまいません。 どうか宜しくお願いします。 ちなみに、レンタル鯖の環境は以下です。 MySQL 4.0 Perl 5.8.3 PHP 4.3.10・PHP 5.0.4 Ruby 1.8.2 Sendmail nkf ImageMagick Netpbm
>>8 特に名称がついてるわけじゃないと思うよ。
1.の部分を実現する手段の1つとしてMDA(Mail Delivery Agent)の機能を使う方法がある。
鯖がメールを受信してデータとして保存する時にスクリプトを実行させることができる。
「MDA procmail mail.local qmail-local」あたりでググれば良いかと。
これらの機能を使えるかどうかは鯖の設定次第。無料レンタル鯖だとほぼ無理と思われ。
その他(2〜3)はよくある処理で難しいことは無いので、
自分で書いている通りの処理をスクリプトに反映させればよい。
10 :
nobodyさん :2005/05/06(金) 01:23:43 ID:IFZ+5alj
>>9 さん
どうもありがとうございました。
一度ググってみます。本当にありがとうございました。
今日、ふとファイルのアップロードにzipを選択してみると、$_POSTとかが 消滅するらしい現象が発生しました。他のファイルでは正常にアップロード 出来る点から考えると、どうもzipファイルの取り扱いに問題があるように 想われるのですが、この点に関してバグ情報などをお持ちの方は いらっしゃらないでしょうか?。
12 :
nobodyさん :2005/05/06(金) 11:25:06 ID:qI/vadDO
自宅鯖にMovable Typeを組み込みたいと思い、PHPを稼働させたいのです。 質問事項 phpMyAdminにログインすると、 「mbstring PHP 拡張は見つかりませんでした。また、マルチバイト文字セットを使用し ているように見えます。phpMyAdmin は mbstring 拡張なしでは文字列を正確に 分割することができず、また、予期しない結果が返ってくるかもしれません。」 と出るので、過去スレを遡って調べ、書かれているように extension_dir = "c:\php\extensions\" とし、さらに extension=php_mbstring.dll の前の;を外しました。 ところが、IISを再起動してもPCを再起動しても相変わらず上記のエラーが出ます。 mbstring拡張を読み込ませるにはどうしたらよいのでしょうか? php.iniはc:\windowsに置いてあります。 phpのフォルダは、c:ドライブ直下にあります。 環境はWindows server 2003 phpは4.3.11、phpMyAdmin 2.6.2、mysql4.0.24 以上の情報でおわかりになりますか。よろしくお願いいたします。
なお、php4ts.dllは、c:\windows\system32にコピーしてあります。
14 :
12 :2005/05/06(金) 11:28:43 ID:???
>>12 テンプレに乗ってるじゃないかなぁ
窓のextension_dirは無効だから、c:\windows\system32\php_mbstring.dllという
感じでシステムフォルダに入れないとダメだよ
@apacheの再起動も忘れないようにね
それにphp.iniの設定でもコメントアウトしないといけないような
今は犬なので窓の事はハッキリとは覚えてないけど、そんな感じだったかと
>>15 >窓のextension_dirは無効だから
それは初耳。つかextension_dir設定してそこから読み込んでる。
だだextensionの中には更に別のdllに依存するものがあって、
それをextension_dirやカレントディレクトリから読んでくれないので
WindowsのDLLパスが通ってるところに置くことはある。
mbstringはextension_dir設定してそこから読むけどね。
IISとか書いてるのでISAPIじゃなくてCGI版使ってて
違うphp.iniの方が影響してるんじゃないかね
17 :
12 :2005/05/06(金) 13:52:57 ID:???
>>15 >>16 ありがとうございます。
サーバーにはIIS6を使っていてapacheは使ってません。
CGIでは無くてISAPIを使ってます。
c:\windows\system32\php_mbstring.dll
に置くことと、コメントアウト
;extension=php_mbstring.dll
を行ってみます。
また結果を報告にあがります。
18 :
12 :2005/05/06(金) 14:12:09 ID:???
>>17 の通りにして鯖を再起動。やってみました・・・・が、結果は
>>12 と同じでした。
<? info(); ?>を実行してConfiguration PHP Core の表を見たのですが、
extension_dir c:\php4 と表示されています。
php.iniに、extension_dir = "c:\php\extensions\"と書いたのになんでえ?
どうやらphp.iniが読み込まれてないのでしょうか・・・。
php.iniを読み込ませるにはどうしたらよいのでしょうか。
19 :
12 :2005/05/06(金) 14:32:08 ID:???
php.iniと、他の〜.iniとのプロパティを開いてじっと見つめました。
どこかが違うかも・・・。
すると、セキュリティタブを開いた瞬間、脳裏にぴぴとひらめきましたです。
php.iniには、users権限が割り当てられてない! systemとadministrators権限のみだ!
そこで、php.iniのプロパティのセキュリティタブで、usersを追加しました。
そして再起動。
見事、Configuration PHP Core の表にextension_dir c:\php\extensions と表示されています
高鳴る胸を押さえてphpMyAdminにアクセスすると、みごと!
>>12 の現象が直ってました!!
なお、c:\windows\system32\php_mbstring.dll は削除して、extension=php_mbstring.dll のコメントアウト
はコメントインしました。
これでも同じです。extension_dir = "c:\php\extensions\" が有効になっているということです。
考えるヒントをくれたみんなありがとう!! 権限に気づいた俺も偉い!!
20 :
12 :2005/05/06(金) 14:34:09 ID:???
なお、php.iniに付与したusers権限は、読み取りと実行、と、読み取り、です。
IIS(ISAPI)って、ちゃんとuserレベルで動いてるのか。 MSのことだから管理ユーザレベルで動かしてるのかと思ってた。
22 :
12 :2005/05/06(金) 14:43:05 ID:???
>>21 僕もadminisutratorsレベルで動作するのかと思ってました。
phpディレクトリも、usr/bin/phpでは無く、c:\phpに置きますし。
usersレベルで動くんだから、c:\usr\bin\phpディレクトリに置くと分かりやすいかも。
23 :
nobodyさん :2005/05/06(金) 17:33:59 ID:7XggbpDP
すみません質問させてください。今までperlを使っていたものです。PHP 4.3.11で、iniは特に弄ってません。 $DbName = 'database'; $TbName = 'linkSiteDate'; $sql{'db'}{strtolower($DbName)}{'DbName'} = strtolower($DbName); $sql{'db'}{strtolower($DbName)}{'TbName'}[] = strtolower($TbName); $sql{'db'}{strtolower($DbName)}{'table'}[] = "create table strtolower($TbName) ( id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, hp VARCHAR(100), str VARCHAR(300), unique (hp), time TIMESTAMP(14) NOT NULL );"; function setMysqlStract ($DB){ 〜〜 } のようにある程度構造体をもった変数を定義してから サブルーチンにてその構造体をもとに処理させたいと考えているのでウsが 引数に参照渡しを使えばいいのでしょうか? 一応参照渡しをしてみたのですがうまくいかず、サブルーチン内にてglobalを宣言したのですが $sql ←このような変数にはアクセスできますが、$sql{’test’}こrをglobal宣言しようとするとエラーがでてしまいます。 アドバイスいただけると助かります。
24 :
nobodyさん :2005/05/06(金) 17:37:00 ID:koT4Gk1l
>>23 構造体は無いので、クラス或いは配列を使うことになります。
参照渡しも可能です。
それと、多次元配列を使う場合は $a['a']['b']['c']のように、[ ]を使って{ }を使いません。
(でも、なんかうまく配列扱いになってるんだよね。不思議(笑))
function setMysqlStract ($data){
// $dataは$sqlの参照
}
setMysqlStract(& $sql); // 参照渡し
26 :
nobodyさん :2005/05/06(金) 19:05:17 ID:hjSdpWYJ
すみません、初歩的なことなのかもしれませんが、 "A1A2" という文字列を実際に A1A2 というバイナリデータとして扱うには、 どうすればいいのでしょうか? 具体的には、外字コード変換用テーブルより取得した 文字コードに対応した文字を出力したいのです。 @文字コード xを16進数に変換、それを文字列として保持。 (仮に、文字列"B1B2"となったとする)。 //できた A文字列"B1B2"に対応する文字文字列をテーブルより取得。 (仮に、文字列"A1A2"が返ってきたとする。)//できた B文字列"A1A2"を、文字コード A1A2 のバイナリデータとして出力 //できない Bに関してイロイロ調べた結果、以下の方法だと思ったのですが 期待通りの結果が得られません。 $codestr = "A1A2" ;//実際にはテーブルより取得。 $str = pack("C*", pack ( "H*" , $codestr ) ); echo $str //文字コードA1A2に対応する内部外字データが出てほしい。
>>26 $codestr = "A1A2";
$codestr = pack ( "H*" , $codestr );
echo bin2hex($codestr);
$str = pack ( "C*" , $codestr );
echo bin2hex($str);
28 :
nobodyさん :2005/05/06(金) 19:34:41 ID:hjSdpWYJ
>>27 ありがとうございます!
できました!
pack("C*" ・・・・が要らなかったんですね。
PHP マニュアルのフォーマットの説明を見ても
理解できませんでした。
なんとなく自分の中でつじつまがあったような気がします。
ありがとうございます
>>25 設定によってはWarningがでるのでこっちが推奨されている
function setMysqlStract (&$data){
// $dataは$sqlの参照
}
setMysqlStract($sql);
ぐは、、、どっちもしらねー
>>32 どのようにって、、、3番目の引数に入れるだけだけど。
意味かな?
FILE_USE_INCLUDE_PATH open()の3番目の引数と同じ
FILE_APPEND open() の2番目の引数に'a'を入れたときと同じ
34 :
32 :2005/05/07(土) 21:45:40 ID:???
>>33 どうもです。たとえば、FILE_USE_INCLUDE_PATH と FILE_APPENDを
同時に指定する時は、どんな値を渡すんですか?
35 :
32 :2005/05/07(土) 21:49:35 ID:???
あ〜、パーミッションの指定を同じような感じなのかな。
36 :
nobodyさん :2005/05/08(日) 21:56:17 ID:OHdCeEKV
<form method="POST" enctype="multipart/form-data" action="このPHP名"><br> 年<INPUT type="text" name="y" size="5"><br> 月<INPUT type="text" name="mo" size="5"><br> 日<INPUT type="text" name="d" size="5"><br> 時<INPUT type="text" name="h" size="5"><br> 分<INPUT type="text" name="mi" size="5"><br> 秒<INPUT type="text" name="s" size="5"><br> <INPUT type="submit" name="submit" value="計算"><br> </form> <FORM METHOD="post"> 入力した時間の時は、<INPUT NAME="time" SIZE="12" value=" <?php $start = mktime($h,$mi,$s,$mo,$d,$y); print ($start); ?> ">です </FORM> こういうの作ったんですが、どうもこの計算方法だと使い勝手が悪いです これを、10桁の数字いれて逆に年月日時分秒を出力してくれるように改造して頂けませんか・・・? なんか丸投げスレになげるには単純なものなので、こちらに書かせていただきました
38 :
nobodyさん :2005/05/08(日) 22:07:56 ID:OHdCeEKV
39 :
23 :2005/05/09(月) 02:09:18 ID:5TcE9neg
>>25 さんアドバイスありがとうございます。
なんとかうまく多次元配列をつくることができました。
なのですが、もうひとつ問題が・・
$sql = "select * from site where site_name in ('$tmp[hash][name]');";
このような形でデータを格納したいのですがこの場合
$tmp[hash][name]を変数として参照してくれません。
そのまま$tmp[hash][name]と言うデータが入ってしまいます。
$temp = $tmp[hash][name]
$sql = "select * from site where site_name in ('$temp');";
もしくは
$sql = "select * from site where site_name in ('".$tmp[hash][name]".');";
としてやればいいのですがどうもスマートではありません・・
同様に
print"$tmp[hash][name]<BR>\n";
↑これでは$tmp[hash][name]と表示されてしまいます。
print $tmp[hash][name]."<BR>\n";
↑これでやっと変数を表示してくれます。
ここらへんの書き方を探したのですがどのサイトでも
みつけられませんでした。
私の探し方がよくないのでしょうか・・
ご指摘いただければ助かります。
40 :
nobodyさん :2005/05/09(月) 02:31:34 ID:SCkyzNUL
$sql = "select * from site where site_name in '{$tmp['hash']['name']}'"; print"{$tmp['hash']['name']}<BR>\n";
43 :
カポコン :2005/05/09(月) 22:23:40 ID:???
どっかに素晴らしいTrueTypeフォントは無いかな。。。
なければ作ればいいじゃない
45 :
カポコン :2005/05/10(火) 00:00:27 ID:???
出来なくは無いが画像データ以上に難しいじゃない。 tteditにしても何にしても、まー作れる時間が無いからなー。 csv形式からシコシコ作るのも最近は萎えている。 やっぱり人が作ったのを拝借するに限るよ。。。
(‘ε‘) これと (・σ・) どっちが可愛い?
腐女子乙
なんで腐女子ってわかったの!!
ある条件が発生したら./optimizationというファイルを作成して ある処理をさせようと想うのですが、どうした訳か以下の行程 では削除されないようです。 $optimizationには1が入るのですが・・・・。 パーミッションもディレクトリ権限も問題ありません。 以下の部分を通っていないのかとも想ったのですが、そうでもない ようです。何か間抜けな事をしているのだとは想うのですが エスパーさん募集中です。 is_readable('./optimization') && $optimization = 1; isset($optimization) && unlink('./optimization'); echo'とおったよ';
>>49 win+apacheの環境でそのまま実行してみたけど、ちゃんと削除されたよ。
51 :
49 :2005/05/10(火) 23:43:03 ID:???
ファイルの作成と削除の順番が逆になってた-;ごめん。
>>50 ありがとうございます。
52 :
nobodyさん :2005/05/11(水) 02:24:59 ID:0snN3vGS
is_object()が思った動きをしてくれません。 $p_valueは自前のクラスのインスタンスです。 if(is_object($p_value)){ print("オブジェクトだよ"); }else{ print("オブジェクトじゃないよ:" . $p_value); } この結果が オブジェクトじゃないよ:Object となります。 クラスのインスタンスはオブジェクト型じゃないのでしょうか?
class Value { } $p_value = new Value(); if(is_object($p_value)){ print("オブジェクトだよ:".gettype($p_value)); }else{ print("オブジェクトじゃないよ:" . $p_value); } -- オブジェクトだよ:object
54 :
52 :2005/05/11(水) 02:56:19 ID:0snN3vGS
>>53 返信ありがとうございます。
確かにうちでもその通りの結果がでました。
もしかして
>>52 での$p_valueが引数で渡したクラス型だからかな。
RedHat9.0にPHP5.0.2をインストしようと思ったんだが libphp5.soが生成されないorz 誰かあほな僕に解決策を教えてください
エスパーではない僕に作業手順とその時々の作業結果を教えてください
>>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
58 :
52 :2005/05/11(水) 23:06:38 ID:???
原因がわかりました。
すいません。僕のミスでした。
実際
>>52 の$p_valueには文字列が入ることもあり、addslashes()をかけていた事が原因でした。
エラーにはならないけどObject型ではなくなるみたいです。
59 :
nobodyさん :2005/05/12(木) 00:00:49 ID:q2eyoFxP
PHPの動作速度について質問があります。 現在、Linux上で、コマンドラインからPHPを起動して CSVからデータを読み込んでPosgreにレコードを登録する処理を 作ってます。 レコードは10万件近くあって、列数は50個くらいです。 PHPでやるよりもPerlでやるほうが速かったりしますか?
60 :
nobodyさん :2005/05/12(木) 00:50:53 ID:KoUlpu2o
>>59 使ってるライブラリは一緒だし、そんなに気にするほど変わらんと思うよ。
>>59 こういった質問見るたびに思うんだけど、
大抵のDBってバックアップとリストアの機能があって、
CSVとかテキスト形式のデータを登録するためのコマンドが普通は用意されてるんだよね。
なんで、それを使わないでPHPとかその他の言語とか使って登録しようとするの?
鯖が直接データ取り込んで登録するのが一番速いに決まってるじゃん。
PostgreSQLのFAQの中にも同様のアドバイスがあるね。
それ以外にもヒントがあるので読んでおくと良いよ。
>>59
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スクリプト自体の作り込みが原因ではないか?と言われました… しかし、どうしても原因が掴めず困っています…
65 :
64 :2005/05/12(木) 09:29:14 ID:uDP5UTsR
すみません、age忘れてました。
67 :
64 :2005/05/12(木) 10:15:58 ID:???
>>67 mysql関数がインストールされてない。
サーバ側の設定ミスじゃないのかね。
69 :
64 :2005/05/12(木) 10:50:31 ID:???
>>68 やはりそうでしょうか。
"Call to undefined function: mysql_connect()" はどう考えてもおかしいですよねぇ…
>>67 sharedになってるね
dl('mysql.so');
とか
71 :
64 :2005/05/12(木) 11:45:19 ID:???
mysql.soが見付からないと怒られました… Warning: dl(): Unable to load dynamic library '/usr/lib/php4/mysql.so' - /usr/lib/php4/mysql.so: cannot open shared object file: No such file or directory in /home/xxxxxx/public_html/test.php on line 3
どっかに同じ環境作って同じソースで動かして こっちで動くのにあんたんとこで動かんのはどーして とか持ってったら。 作り込みが原因とか言われるとはらたつな(俺が言われたんじゃないが)
73 :
教授 :2005/05/13(金) 01:16:20 ID:p6STq+85
教えてgooで質問したのですが、回答して頂ける方がいなくて 非常に困っています。宜しくお願い致します。 PHPからSQLServerに接続しようと試みております。 ですが、以下のソースで $conn = mssql_connect("localhost", "sa", ""); mssql_select_db("hoge", $conn); 以下のワーニングが発生してしまいます。 Warning: mssql_connect(): Unable to connect to server: localhost Warning: mssql_select_db(): supplied argument is not a valid MS SQL-Link resource 接続のために行なったことはphp.iniの extension=php_mssql.dll のコメントアウトを外しました。 クエリアナライザでは"sa"、""で接続できるのですが・・・ "localhost"を"127.0.0.1"にしても、IPアドレスにしてもサーバ名にしても同じでした。(hostsファイルに追記もしました。) ご存知の方がおられましたらご教授頂けませんでしょうか。 サーバ OS:Windows2000Server SP4/WebServer:Apache2.0.54/言語:PHP4.3.11/RDBMS:SQLServer2000 SP4 端末 OS:Windows2000Professinal SP4/IE6 SP1
74 :
教授 :2005/05/13(金) 02:11:08 ID:p6STq+85
$conn = mssql_connect("サーバ名\DB名", "sa", ""); で繋がりました。
75 :
64 :2005/05/13(金) 03:31:12 ID:???
昨日鯖缶から連絡があり、改善されていました。 ご丁寧にレスくれた方、どうもありがとうございました!
76 :
nobodyさん :2005/05/13(金) 05:35:52 ID:JdBVVipf
if ($_POST['passwd'] == $_POST['passwd2']) { print "パスワード違います" } フォームでパスワード変更をしようと思うのですが、 上の比較演算子で2つのフォームの内容をチェックしようと思ったのですが、 フォームの内容が違っても、素通りして次の処理をしてしまいます。 比較演算子がまちがっているのでしょうか?
たぶんexit;とかdie;で処理終わらせてないからそのまま処理が続いている die("パスワード違います"); あと説明がないから良く分からんが 確認のためパスワードを二回書くやつかな? なら == だとおかしくね? 値が違う場合にエラー出すのでしょ? if ($_POST['passwd'] != $_POST['passwd2']) { die("パスワード違います"); }
>76 内容が違う場合に処理させたいのなら、 if($_POST['passwd'] != $_POST['passwd2']){} if($_POST['passwd'] <> $_POST['passwd2']){} でしょ。 if($_POST['passwd'] == $_POST['passwd2']){} これだと内容が同じなら処理される。 ifは、式がTRUEである場合に、文を実行する。だぞ? どっちゃにしろ、マニュアル読んでこい。
79 :
nobodyさん :2005/05/13(金) 08:36:06 ID:ZsOHWwh7
80 :
nobodyさん :2005/05/13(金) 20:21:56 ID:SDhwmUt9
PHP でリンクからそのページ自身をリロードさせる方法が わかりません。 ブラウザの更新ボタンを押した時と同じような 動作が希望です。 <a href="<?php print($_SERVER['PHP_SELF']); ?>">更新</a> と書いてみたんですが、これだと希望のとおりにならないのです。
キャッシュが効いてるんじゃないの
>>81 そのキャッシュを無効にするにはどうしたら良い?
もう少し書くと、掲示板でSQLiteを使ってます。
ブラウザ1を開いといて、ブラウザ2を開き書き込む。
ブラウザ1でその新規カキコを見たいが、
リロードするにはブラウザの更新ボタンを押すしかない。
どうにかできないものかな。
>>80 <a href=".<?php print($_SERVER['PHP_SELF']); ?>">
(絶対指定じゃなくて、相対指定とするために.を入れる)
じゃ駄目か?
>>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" />
>>85 キャッシュじゃないのかな
SQLite でデータベースを強制的に読みに行くように
すれば良い気がするができないんだなリンクでは。
2chの最新みたいな感じが良いんだけどな希望としては
>>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" />
とすることで希望のものになりました。
ありがとん。
88 :
nobodyさん :2005/05/13(金) 22:51:38 ID:4h6Whmqq
質問させてください。 Perlのsubのような戻り値を返さない処理を呼び出したい場合どのように書けば良いのでしょうか。 functionで無理矢理っぽくやるしかないんでしょうか。 例えば ------------------------------ if ($hoge eq "hogehoge"){ &hoge_list; } sub hoge_hoge{ 処理 } ------------------------------ こんな感じで処理(ここではhoge_hoge)を呼び出したいのですが。
89 :
nobodyさん :2005/05/13(金) 22:52:24 ID:4h6Whmqq
間違えました ------------------------------ if ($hoge eq "hogehoge"){ &hoge_hoge; } sub hoge_hoge{ 処理 } ------------------------------ ですorz
つ [マニュアル (ユーザ定義)関数]
91 :
nobodyさん :2005/05/13(金) 23:26:05 ID:4h6Whmqq
>>90 ありがとう。一回読んだつもりでいたら肝心のとこをスルーしてたらしいorz
ほんとありがとございますたーー
PHP4から5にしてみたら $name == 'abc' && $this->line++; と if ($name == 'abc') $this->line++; の挙動が違うみたいなのですが、そもそもこの書き方自体の意味が違うのでしょうか? 何となく短い上の方を使っていたのですが・・・
こんなソース見にくすぎる
94 :
カポコン :2005/05/15(日) 01:13:32 ID:???
>>94 カポコンさん、久しぶりの登場ですが
相変わらず汚いスクリプトですねwプゲラ
何かと思えば、俺が2chからリンクされてて初めて「痛い」と思ったサイトじゃねーか。 ようはPerlが分からないからPHPに逃げた厨のサイトだろ(プゲラw
98 :
96 :2005/05/15(日) 13:15:22 ID:???
イチョウガイですかね?それかマベガイクラスの真珠香具師でっせ。 アワビじゃないけど。取り合えず貝捕り大成功ですねカポコンさん。
つっこみどころ満載だね >Java(ジャバ、ジャワ) >また、現在ではWeb用、サーバー用、家電用などと3つの派に分類されている。 じゃこれは何用? public class Unko { public static void main(String args[]) { System.out.println("ウンコサイト"); }
} >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つの関数を紹介したと思う。 ↑
>先ずは、AAACafeで ユーザー登録を済ましてしまいましょう。 募集していませんが、何か? >5:flock($fp,LOCK_SH); >6:$count = (int)fget($fp,fileSize); >7:flock($fp,LOCK_EX); 何このロック しかも”fget()” >格納した値は文字列なため。(int)はこれを整数にキャストしています。 いらない >require() >外部のファイルを取り込みます。取り込めなかった場合404エラーを出します。 大嘘
>/** > * 多くの開発者が悩むであろうポイント↓。 > */ >if($process==one): >$cnt++; >endif; if($process==one) ++$cnt;でいいのに何で回りくどいことを? >unset() 馬鹿? おまけにJavadocコメント間違ってるよ 明日までに修正しなさい
入れ食いだなぁ…
104 :
nobodyさん :2005/05/15(日) 14:34:46 ID:p7a+MkNk
age
>>99 JavaのSDKそのものが3つに分かれているって事じゃ・・・(ry
phpdocとjavadocの違いってなんだろ?
>>102 無駄です、そこの管理人は面倒臭がり屋なので
自分本位にしか動きません。
おっ糞サイトのカウンタが上昇したぞ!! ホリエモンもホクホクだなぁ。。。
ミミ ヽヽヽヽリリノノノノ ミ ,,、,、,、,、,、,、,、、 彡 l i''" i彡 .| 」 −- − | ,r-/ fエ:エi, 、fエエ) | l ( 、_, ) | 僕はきれいなホリエモン ー' !ー―‐r、 | ∧ ヽニニソ l カポコンさんよくやったy! /\ヽ / / ヽ. `ー--一'ノ/ヽ
>>105 99は
3つ分かれて=J2EE SE ME
で、SEがWeb用になってるから突っ込んだのでは?
スレ違いスマソ
112 :
110 :2005/05/15(日) 23:24:10 ID:???
そうくると書きながら思ってたw
テンプレートエンジン使うとき、 フォームの入力画面、バリデート画面、単独で作りますか? flexyつかってます。 できればhtml 1ファイルにまとめたいんですけど。 quickform使えばできるけどややこしい。
114 :
nobodyさん :2005/05/16(月) 15:23:57 ID:goO1rgy6
$path = './hoge.txt'; header("Content-Disposition: attachment; filename=text.txt"); header("Content-Type: application/download"); readfile($path); で、テキストファイル(タブ区切りデータ)をダウンロードさせようとしているのですが なぜか、ダウンロードしたファイルの、最後の行にタブが2個ほど追加されてしまいます。 サーバ上にある hoge.txt 自体にはそのようなタブはありません。 色々なブラウザで試してみたのですが、同じでした。タブを付けずにダウンロードさせる には、どうすれば良いんでしょうか?
>>114 <?php 〜 ?>の外に余計なTABが入ってるとか。
116 :
114 :2005/05/16(月) 19:17:53 ID:???
>>115 まさにそれでした。
うーん、全く気が付かなかった orz
しょうがない、 TABは馬鹿には見えないからな
おれはバカだけどエディタが記号で表示してくれるので見られる。
phpでhtmlソースをゲットしてから、特定の語句の周り(または行)だけ抜き出したいのですが。 どういう方法が一般的なのでしょうか。 くだらねぇ質問ではスルーされました。
>>119 一般的かどうか分からないけど、その質問に書いてある通りに処理をすればいいんでないの?
1. 行単位でリモートからデータを取得(或いはローカルに保存後に行単位で処理開始)
2. 特定の語句があるか調べて(strpos()等)、存在すればデータをどっかに保持。(或いは正規表現を使う)
3. 繰り返す。
特定語句の周りだけ抜き出す…googleみたいな?
124 :
nobodyさん :2005/05/20(金) 00:46:49 ID:hzltzNE3
phpでw32apiが使いたいのだが、w32api_register_functionがどうね上手く動かん原因わかりませんか?
詳しく
126 :
nobodyさん :2005/05/20(金) 01:08:54 ID:TNhieU4U
SQLiteとMYSQLのどちらのほうがPHPで使いやすいでしょうか? またどちらが簡単なのでしょうか?初心者なのでよろしければ教えてください。
127 :
124 :2005/05/20(金) 01:13:14 ID:???
QRコードを自動生成するものを開発しているのだが、phpのAPI使うの初めてで 勝手が全くわからんのですよ。 とりあえずphpマニュアルの例題スクリプトを試したが、undefinedと言われる ワケで、そりゃ自分で定義してないけど、たったらなんの為のextensionやねん とか。
>>126 環境を構築する事とPHPからDBMSを利用することは別のこと。
PHPからDBMSを利用するだけなら、SQLiteの方が簡単。
環境を構築の話になると、使うOSとかで全然違うわけだが、
その辺を適当で考えるとPHP5ならSQLite。PHP4ならSQLiteを
使えるようにするまでを考えると、MySQLの方が楽かと。
>>127 phpのバージョンに注意。
該当バージョン以外のやり方は、php.netのマニュアルのuser noteに解説あり
130 :
nobodyさん :2005/05/20(金) 06:00:28 ID:y2xo3LJo
タグでサイズ指定された、画像を 同じ大きさで表示るにはどうすればよろしいでしょうか? 例えば・・ $hoge1 = '<a href="hoge1.html"><img src="hoge1.gif" width="24px" height="32px"></a>'; $hoge2 = '<a href="hoge2.html"><img src="hoge2.gif" width="100" height="63"></a>'; $hoge3 = '<a href="hoge3.html"><img src="hoge3.gif" width="30%"></a>'; ・・・・・ と、あって echo $hoge1; echo $hoge2; echo $hoge3; などとした際に、画像サイズをがバラバラになりますが これを、width=100pt などで、同じサイズで表示するには?? JAVAスクリプトでも構いませんし、HTMLタグやスタイルシートでも構いません どなたか、お願いします。
>>130 君には $hoge1 = '<a href="hoge1.html"><img src="hoge1.gif" width="100pt" height="32px"></a>';
とする権利と、弁護士を呼ぶ権利がある。
echo preg_replace("/(width=\")[0-9]+[a-z]*\"/","width=\"100pt\"",$hoge1);
133 :
初期不良 :2005/05/20(金) 07:30:11 ID:???
PHP5.0.4 なんだけど # の処理がおかしくない? _SERVER["REQUEST_URI"] /post.php?comment=2004WorldMatchplayDarts%2301PARTvsANDERSON _SERVER["QUERY_STRING"] comment=2004WorldMatchplayDarts _GET["comment"] 2004WorldMatchplayDarts %23 が URL エンコードされた # だけどそれ以降ぶった切られちゃってて取得できん。 ちょっと前まで取得できてたはずなんだが... 最近入り込んだバグか? 他の人はどうでつか?
>>132 やはり、正規表現しかないですか。。
でも、ありがとうございました。
>>127 俺も以前PHPとGDでQRコード作成プログラムを作ろうと思ったことがある。
QRコードの検索してたらプログラムそのものがすでにあったのでやめた。
PerlにはGD::Barcode::QRcodeがあるし。
>>133 4.3.11ではちゃんと取得できた。5の問題かな。
>>133 手元の5.0.4(Windows)はちゃんと
_SERVER["QUERY_STRING"]comment=2004WorldMatchplayDarts%2301PARTvsANDERSON
_GET["comment"]2004WorldMatchplayDarts#01PARTvsANDERSON
でした
フォームからの入力(URL)をDBレコードに追加する場合、$_POST{'nn'}をSQL文にそのまま投げると危険ですよね? でもどういう予防措置をしておけばよいかわかりません。rawurlencodeすればいいのかな。
>>138 ヒント♪
''して$_POST{'nn'}に含まれる'を\'に変換する
私は、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; }
>>140 arrayに突っ込むかマニュアルにある方法を使う方がスマートかも
クロスサイトスクリプティングとSQLインジェクションがごっちゃになってるのかな。 それとも別の質問なのかしらん? 各DB用の文字型の変換関数(ex. (pg|mysql|..)_escape_string)があるならそれを使うのも手かと。
143 :
初期不良 :2005/05/20(金) 13:27:42 ID:???
>>137 >手元の5.0.4(Windows)はちゃんと
おろ、環境依存?
こちら FreeBSD5.3-Stable ports mod_php5-5.0.4_2,1 です。
設定による部分はどこか可能性あるだろうか...
144 :
初期不良 :2005/05/20(金) 13:29:14 ID:???
あ、書き忘れました。Apache2 で動作中ってのも重要かも?
>>139 そんだけじゃint型いれるときに「;delete from tablename;」が通ってしまうがな。
$sql = 'SELECT * … id="'.$request_str.'"'; $sql = mysql_real_escape_string($sql); … 上の文で、… id='.$request_str; とかやると、";"を処理しないと、危ないな。
148 :
初期不良 :2005/05/20(金) 20:18:00 ID:???
php.net のバグレポート見ると普通に URL エンコードを勘違いしているものとか 古い話で mbstring をはずせとか言う話があったが、mbstring をはずしても変化ない。 このテストコードで hidden の値まで取得できなくなるわけだが... けど、他の人は取得できるのかな... test.php <? if(count($_GET)>0){ phpinfo(); print_r(parse_url($_SERVER["REQUEST_URI"])); exit; } ?> <html><body> <form action="test.php" method="get"> <input type="text" name="comment" value="test#test"> <input type="hidden" name="hidden" value="hiddenValue"> <input type="submit"> </form> </body></html>
これブラウザ側でぶった切ってるって事は無いよね? あ、REQUEST_URIには入ってるのか・・・・
150 :
初期不良 :2005/05/21(土) 12:26:09 ID:???
>>149 いや、よく考えてみたら $_SERVER["QUERY_STRING"] だから Apache が作った値だね。
Apache Environment の QUERY_STRING 見てもぶった切られてる。
ありがとう、気付かなかったよ。Apache2 を疑ってみまつ。お騒がせしますた。
151 :
初期不良 :2005/05/21(土) 12:54:29 ID:???
解決 mod_encoding の問題だった... mod_encoding モジュールをはずしたら解決した。 WebDAV に関係する部分だけ EncodingEngine on すれば 良いみたい。スレ違いすまそ
$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を出力してしまいます。 なにかが間違っているのでしょうか、ご教示願います。
>>152 natsortは戻り値は返さない。マニュアルぐらい読もうよ。
$n_dir = scandir($dir);
print_r($n_dir);
natsort($n_dir);
print_r($n_dir);
でないと。
実際には、期待した順にはソートされないと思う。"." ".." が前に来ると思われ。
include_pathに新たなパスを追加する関数ってありますかね? set_include_pathだと上書きになってしまうので。 一応自分で以下のような関数を自作したんですけど、 もし標準であるならそっちを使いたいので。 function add_include_path($path) { $include_path = get_include_path(); set_include_path($include_path . ":" . $path); return true; }
155 :
nobodyさん :2005/05/24(火) 13:11:43 ID:E/H71Uk/
I teach good Blog which is usable as a substitute for a homepage, and it is clay る? I made a ASABlogBlogzine person, but examine most nobody. Yahoo || of watching it || because there is much it, but is not usable for business. Why is it good if charged a fee?
>>154 多分、色々と見かけてるとは思うけど、
ini_set('include_path', '追加したいパス' . PATH_SEPARATOR . ini_get('include_path'));
という方法が、昔からの定石として使われている。
>>156 ini_setの方が定石ですか。
ありがとうございます。
zipファイルにパスワードを書ける方法を教えてください
>>159 $fp = fopen('hoge.zip', 'a+');
fwrite($fp, 'パスワード');
fclose($fp);
161 :
nobodyさん :2005/05/26(木) 13:31:25 ID:t2iex5dJ
PHPで作成した(PHPに限らずですが)プログラムのバグを発見するための チェックリストみたいなものって、どっかにありませんか? XSSや、文字化けとか、見落としがちな定番穴見つけリストみたいので良いのですが。
>>164 ttp://www.php.net/manual/ja/ にPHPのマニュアルがある。
やりたい事に関係しそうなものを探していく。
「リモートファイル、ファイルシステム関数、HTTP関連の関数、ネットワーク関数、ソケット関数、URL関数 etc.」
これらの単語が目に付く筈だ。
それぞれのページを見ていくと、今回のスクリプトに使えそうかそうでないかを判断することができる。
サンプルまで書いてある場合もある。
さぁ、これでオマイは今までの質問するだけのヘタレでは無くなった。後は実際にスクリプトを書くだけだ!
おまえwwwwwwwwww
↓でエラーがでる、、、何処だめなん
<?php
$file = fopen("test.html", "w");
$line = fopen("
http://www.yahoo.co.jp/ ", "r");
fputs($file,$line);
?>
ヒント:ファイルリソース
<?php
$logfile ="a.dat";
$files = file_get_contents("
http://www.yahoo.co.jp/ ");
$fp = fopen("$logfile","w");
fputs($fp, $files);
fclose($fp);
?>
>170 サンクス
172 :
nobodyさん :2005/05/26(木) 23:51:33 ID:Jhl0Cun1
PHPをいちから始めるつもりなんですが アパッチいれても動きません・・・2000とXPで設定が違ったりするんでしょうか?
phpdevにしれ。
174 :
nobodyさん :2005/05/27(金) 00:00:06 ID:oSADx+e2
やーいPHPのデブー^3^
wammp
>>172 設定は同じ
インストール方法なんてゴロゴロしてんだろ
検索してからまた来い
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" 等試してみたのですができなかったので。。。。。、
XSAS!
>>178 多分こんな感じ。
$aa = array_map(array(&$this, 'call_back_arr'), $ary);
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では変数に数値を入れるときは「"」をつけてもつけなくても変わらないということなのでしょうか?
>181 マニュアル「型の相互変換」を参照。
184 :
183 :2005/05/27(金) 12:19:29 ID:???
orz
185 :
181 :2005/05/27(金) 13:46:14 ID:???
>>182 ,183
レスどうもです。
なるほど、使用時にその都度決定されるという理解でよさそうですね。
ためしに
$a = "a1";
print substr($a,1,1) . "<BR>";
print substr($a,1,1) + 2 . "<BR>";
とやってみたところ最後の計算も問題なくできてました。
どうもありがとうございました。
186 :
nobodyさん :2005/05/27(金) 17:10:05 ID:nWSYjCL0
PHPで定数の共有化を行うには グローバル変数を使う、 defineで定義した値や変数をrequireで呼び出す などがありますがどれがおすすめでしょうか? 昨今ではグローバル変数は問題ありだと思いますし defineで定義した変数は $記号が無いためちょっと読みづらい 気がします。 で呼び出すにはrequireを使う感じでしょうか。 それとも、他の方法で呼び出すのでしょうか?
>>186 自分のコードは定数だけ大文字だしエディタで色を変えてくれるので特に読みづらくは無い
188 :
nobodyさん :2005/05/27(金) 19:23:15 ID:nPYYisrT
ApacheにPerlとPHPの両方ともを設定することはできますか?
190 :
nobodyさん :2005/05/27(金) 19:27:24 ID:nPYYisrT
191 :
nobodyさん :2005/05/27(金) 23:21:53 ID:m4bC+hhp
俺は「釣ったよ!」を参考にした
MYSQLへのデータベース接続しようと思ったのですが、MYSQLのサーバーのホスト名、ユーザー名や パスワードの設定の仕方がわかりません。 学校でコマンドプロントで設定し、家にそれを使ったプログラムを持ち帰ってやろうとしたのですが、 サーバー接続でエラーが出るので気づきました。 PHPのプログラムで // データベース接続 $host = "localhost"; if (!$conn = mysql_connect($host, "usr", "passwd")){ die("データベース接続エラー.<br />"); } mysql_select_db("sample", $conn); となっているのでユーザー名は"usr"でパスは"passwd"だと思うのですが これをMYSQLに設定するやり方がググッテも解りません。 データベース板で聞くべきかもしれませんがどなたか教えてください。
194 :
nobodyさん :2005/05/28(土) 11:33:55 ID:vndaXCbx
アパッチ入れるの成功したんだけど、肝心のスタートメニューに「restart」がないんだけど、 なんで? アパッチ。exeでリスタートする方法ありますか? コマンドなんかつけりゃいいの?
>>192 まさかとは思うけど、自宅から学校のMySQLにアクセスしようとしてないよね?
そうだとしたら、その辺は学校側のセキュリティの問題だから、俺らじゃ解決できない。
>>194 普通にサービスからリスタートしたら?
>>194 まずOSを名乗れ
次にApacheのバージョンも
197 :
194 :2005/05/28(土) 11:58:48 ID:vndaXCbx
OSは2000です。すいません アパッチはver4?1? 確か今現時点の最新より一個前のバージョンです。 あと、サービスからリスタートする方法って・・・?すいません、初心者で。。
オキャクサン、サービススルヨ!
素直に解説本買ってこい。 「初心者」ならできるシリーズがオススメ!
XMLファイルの文字コードを変換したいんだけど、 $objXml=simplexml_load_file("test.xml"); mb_convert_variables("EUC-JP", "auto", $objXml); エラーがでる、何がいけないの?
軍曹!エラー内容は極秘でありますか?(=゚ω゚)ノ
>>197 Apacheにはメジャーバージョンで1と2があるの
2をWinNT,2000,XPにインストールするとApacheモニターというプログラムもインストールされるからそこから再起動とかできる
204 :
nobodyさん :2005/05/28(土) 13:10:06 ID:RUnx6ukk
205 :
194 :2005/05/28(土) 14:07:45 ID:vndaXCbx
>>199 ありがとう!! >>203 アパッチのバージョン1を入れました。 2を入れたほうがよかったのかな・・・。
foreach関数でループ内の処理結果を変数に入れたいのですが、 できますか?
処理結果って?
>>206 こういう結果を期待して、こういうコードを書いたら、こういう結果になって絶望した。
というのを書いてもらえませんか?
210 :
206 :2005/05/28(土) 14:59:35 ID:???
<?php foreach ($rss as $item){ print ($item->title); } ?> ↑こう書きました。 print ($item->title); の結果を変数に入れたいのですが、
foreach ($rss as $item){ print ($item->title); $hoge[] = $item->title; }
212 :
206 :2005/05/28(土) 15:15:25 ID:???
>>211 初歩的ですいません。ありがとうございます。
$hoge[] の全てのキーを求める事もできますか?
$objXml=simplexml_load_file("sample.xml"); print ($objXml->channel->title); print ($objXml->channel->dc:date); [title]の部分は表示されるのですが[dc:date]は表示されません。 たぶん:(コロン)が原因だと思うのですが、 解決方法ありませんでしょうか?
215 :
nobodyさん :2005/05/28(土) 20:17:48 ID:sWsyG2zN
foreach ($hoge as &$value) { $value = "あああ"; } ができるのはPHP4.3系からですか? 4.2.3だとエラーになるのですが。
どうしてもわからん!! preg_replaceで文字列の一部分だけ 置き換えしたくない場合はどうすれば一番良いねーーーん!
>>216 例えばどんな場合?
聞くなら、取りあえずどうしたいのか、例題と解答を出してみないか?
でもって、今はこうやってみたけど結果がこうなってダメだったと書くと
的確に答えやすい。
$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);
>>218 つまり、[]で囲まれた部分は置換の対象外にしたいと。
正規表現道場にいけば?
マッチさせるものなのに、マッチさせない。 これいかに。
222 :
192 :2005/05/29(日) 02:09:10 ID:???
>>193 >>195 学校で作ったPHPの課題を家で動かすのにMysqlのデータベースが必要で
自宅のパソコンにMysqlを入れて、パスワードをつけたデータベース作ろうとしてつまずいたもので。
データベース板でも聞いたのですがrootにパスをかけてしまい学校でやったように
作成したデータベースのみにパスをかけて動かせず途方にくれています
>>222 示したリンクからドキュメントを辿ってれば判るかと思うが、
MySQLのユーザに対してパスワードは設定できるが、
データベースに対して各々にパスワードを設定することはないよ。
あるのはMySQLのユーザに対して、各データベースの各種利用権限を設定することだけ。
取りあえず、DB板でやってるみたいだから後はそっちで。
PHP覚えたいのだが何か良い本ないー?
225 :
nobodyさん :2005/05/29(日) 09:19:52 ID:lGP1siTx
PHPを実行する前にシンタックスエラーだけでも とりたいんだけど、いいソフト無い? 出来ればコマンドラインベースで。
ちょっとお尋ねしますよ。 parse_ini_file() の逆の動きをしてくれる関数ってありますか? 連想配列をiniファイルフォーマットで書き出してくれるようなやつです。
>>227 無いです。
大掛かりですけどPEAR::Configを使うのもありかと。
つか<?php〜?>の中、全体の処理が意味不明だな。 printf("座標 = %s",$_GET['pos']); とか。文字結合しながら出力でも勿論よいが。
複数の変数の値を同じ関数で処理したいのだが $aaa $bbb $ccc $ddd ... を strlen()で処理する場合 どうすればいいのでしょうか?
234 :
233 :2005/05/29(日) 20:37:29 ID:???
自己解決しました ><
235 :
218 :2005/05/29(日) 23:10:27 ID:???
自己解決・・・。 半画面の関数一つつくるのに丸一日かかったTT
236 :
nobodyさん :2005/05/30(月) 10:03:00 ID:Zho+fj0B
質問です。 JPEG の画像(主に写真)を任意の角度で回転させたいのですが、imageRotate 関数ではかなり質が落ちてしまいます。(はしっこがギザギザになるわ、中身がモゴモゴになるわ) そこで自作で関数書くことにしてみました。使った補完アルゴリズムは面積平均法です。 できあがった画像は極めて高品質で感動したのですが、肝心の実行速度がめちゃくちゃ遅いのです。100x75の画像の処理に約7秒かかります(既存のimageRotate関数は0.005秒・・・)。 どうやら回転によって傾いた画素と、出力用のまっすぐな画素との重なった部分の面積を求めるのに、交点をひたすら出して多角形の面積を求めているためかと思います。 希望する結果としては、品質的には少しくらい劣っても斜めになった縁の部分のギザギザがあまり目立たなければオッケーで、実行速度は今の状態の数倍はほしいです。なにか良い知恵がありましたら、ご教授願います。 環境はレンタル鯖で、Apache/1.3.33 で PHP/4.3.11 です。
237 :
nobodyさん :2005/05/30(月) 10:11:41 ID:g9V9N+zS
eaccelerator の設定で、 eaccelerator.keys eaccelerator.content は、何のことを指しているのでしょうか?
>>236 作った関数をCで書き直したらどうでしょう。
>>236 レンタルサーバでも、ImageMagick(Cで書かれた画像ライブラリ)は
使えるところが多いと思うけどな。未インストールなら相談すれば
入れてもらえる可能性も。勿論画像の回転機能がある。
その手の実装をPHPでやろうとすると、スピード面ではやっぱりつらいやね。
書きやすいから試作ではやることもあるけど。
240 :
236 :2005/05/31(火) 00:30:14 ID:???
>>238 サーバ側でコンパイルする方法がない(もしくは知らないだけ?)のです。
Cで書けたら断然スピードアップしそうですよね^^;
>>239 ImageMagickは初めて知りました。
うちのサーバではインストールされてなかったのですが、オープンソースのようなので、ソースの関連部分を読んでみると、とても参考になるアルゴリズムで書かれていました。
PHPで書くと限界があるかもしれないので、相談してImageMagickを入れてもらうことも検討してみます。
お二方ともどうもです。
お前ら騙されたと思って「こんとんじょのいこ」って言ってみろ えなりかずきが「簡単じゃないか」って言ってるように聞える
>>240 巷のレンタルサーバはそんなに特殊なハードやOSで動いてる訳でもないので、
ローカルでターゲット(レンタルサーバ)に合わせて、リンクも静的にしといて
コンパイルして、バイナリーで持ち込むようにすると、
ちょっと変わったことをやろうとする場合には良い。
まあ、自作のバイナリーの持込に制約のある鯖屋も多いけどね。
243 :
236 :2005/05/31(火) 03:07:08 ID:???
>>242 そんなこと実際にできてしまうんですね。
そういう場合ってハード面はどこまで合わせる必要があるんですか?
それともOSだけ合わせればオッケーなんでしょうか?
>>243 CPUはi386でやっておけばたいがいOK
複数の静止画像(png, jpeg, pgm 等)から動画を生成するにはどうすればよいのでしょうか?
>>245 ターゲットの動画のファイルフォーマットを調べて、それに適合するようにファイルを作成する。
文字では一行で書けるけど、かなりめんどくさいよ。
複数静止画像フォーマット→動画gifなら、 GDもImageMagickもサポートしてるけどな。 他の動画フォーマットは製品では見かけるけど、 安く簡単に使えそうなのは知らない。
251 :
初期不良 :2005/06/02(木) 17:04:29 ID:???
>>253 それは強引だな。スマートな方法ではない。
>252 mod_rewrite使えない場合は、 .htaccessに、"ErrorDocument 404 /hoge/index.php"みたいに追加して /hoge/index.phpで、$_SERVER['REQUEST_URI']を解析すると言う方法もある。 が、これやるとhttpdのエラーログが404で埋まるのでお勧めしない。 (レン鯖だったら関係ないとか言うかもしれんが)
>>256 いや、IEは勝手に末尾に「/」を付加するぞ。内部的に。
>ましてや/bbb/index.html(php)をブラウザが探しに行くわけでもない
大ウソこくな。自分で試してみろ。
259 :
初期不良 :2005/06/02(木) 21:14:41 ID:???
>>257 Apache が 302 で普通に / 付きに転送してると思うが。
後者は... ネタ?
>>257 (´-`).。oO(Location・・・)
bbbの時は、 鯖がbbb/じゃねーの?ってレスして、 ブラウザが、じゃbbb/くれって言って、 鯖がbbb/に対応するbbb/index.htmlを返す。って感じ この挙動(2回リクエストする)じゃ無いと問題が起きるケースがあったような。 ブラウザが相対URIの解決をする時だったかなぁ。
262 :
256 :2005/06/02(木) 22:10:37 ID:???
IEならやりかねないかもと思った俺がいた。 bbbってファイルにアクセスするときゃどうするんだろうと。
264 :
nobodyさん :2005/06/02(木) 22:50:08 ID:Bb2Nk9Kh
すいません、index.incファイルをインクルードして読み込んでいるんですが その際index.incファイル内の定義を別々に読み込むことは可能でしょうか? たとえば、echoに名前を付けて <?php Echo 1("ここだけ読み取る1\n"); Echo 2("ここだけ読み取る2\n"); Echo 3("ここだけ読み取る3\n"); ?> っとEcho 1 Echo 2 Echo 3と名前を付けて、それをインクルードで読み込む歳に。 <?php include("index.inc"class="echo1");?> <?php include("index.inc"class="echo2");?> <?php include("index.inc"class="echo3");?> っと、こんな感じで別々に読み込みたいんですが。 php全然初心者でまだよくわかってなくて、どなたかお助けください・・・orz
IE等のブラウザが付加するのは後ろのほうじゃなくて 省略した前のほうだな
>>264 それぞれの処理を関数にしてindex.incにまとめておき、
冒頭でrequire_once('index.inc");
必要個所で func1(); func2(); .. とかじゃ駄目なのん?
268 :
256 :2005/06/02(木) 23:53:26 ID:???
270 :
233 :2005/06/03(金) 00:27:46 ID:???
PHPプログラマーズマガジンって書店で売ってますか?
>>267 馬鹿丸出しですねえ。
ブラウザが補完するのはドメイン直後のスラッシュだけですよ、と。
スレ違いだっつーの
pugya-
275 :
nobodyさん :2005/06/03(金) 09:43:23 ID:jMnj8COP
>>266 回答ありがとうございます。
調べて色々行ってみたんですが、やり方が間違っているのか全然出来ません・・・orz
初心者で申し訳ないのですが、よろしければ方法教えてください(>_<;
>>275 >>264 とりあえずひとつのファイルをincludeしたら
そのファイル全てが読まれてしまうから一部分だけ読むこと
はできない。
ファイルを3つに分けて読み込めば希望のものになる。
全てを一旦読ませてそこだけ実行するにはfunctionを利用する。
>>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(); // お好きな場所でドゾー
?>
まずその拡張子やめれ
279 :
nobodyさん :2005/06/03(金) 20:24:40 ID:VBKePBZt
.incのせいで彼女を寝取られたっていうトラウマがあるんだよ!!
>>279 >>278 じゃないけど
・コードがそのまま表示される可能性がある。
・どうでもいいことだが、エディタの関連付けがめんどくさい。
(うちの環境だと、ダブルクリックでVS.netが開く)
あえてやるなら、hoge.inc.phpみたいにするか、
AddType application/x-httpd-php .inc
などした方がいいかと。
.htaccess使うならデニるのが基本だろ。
>>282 無理だろ。
此処に居る奴等の8割以上は.htaccessすら使えない。
書き込みみれば分かるけどな。
質問しているやつのことをそこまで心配する必要ないだろ。
285 :
nobodyさん :2005/06/03(金) 22:05:35 ID:Aav4DKSz
お世話になります。 Unicode(UTF-8)の文字列中の特定の文字(具体的にはi-modeの絵文字)を それぞれ対応する画像に変換したいのですが、 文字の正しいコードが所得できずに難儀しています。 例えば『α』マークの場合、正しいコードは『E70C』となるはずなのですが 自分で作ったスクリプトでは『ee9c8c』となってしまいます。 正しいコードを所得する方法をご教授頂ければ幸いです。 サーバはApache/1.3.31、PHPのバージョンは4.3.8です。よろしくお願いします。
>>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 してる意味もないがな
>>285 UTF-16では「e70c」。UTF-8では「ee9c8c」。
290 :
nobodyさん :2005/06/04(土) 03:27:45 ID:+GcaB5nm
すみませんPHP初心者ですが 教えてください phpで指定されたhtmlをまるまる読み込んで html内の 指定のタグを書き換えて 出力できますか? read文で1行読み込んで 調べてprintで出力 するしか 方法はないのでしょうか?
>>290 まるまる読み込みたいならfile_get_contents
それとも置換方法かなんかの悩み?
>>291 すみません PHPってメモリ確保の手続き無しで
まるまる 読めるんですね
すごいなPHP・・・・
ありがとうございました
これだな >注意: 文字列が非常に大きくなっても問題ありません。 >PHPに課せられる文字列 のサイズの実用上の制限はありません。 >このため、長い文字列に関して 恐れる必要は全くありません。 で、その上で質問なんだが、スクリプトを書く時、わざわざ長さを 制限する処理とか入れてる? PHPcoreのバグの可能性とかも考慮して一応入れている場所も あるんだけど・・・・心配し過ぎ?
294 :
nobodyさん :2005/06/04(土) 07:40:07 ID:SiwHKpMg
PHPで画像を出力してるんですが、ブラウザが同じ画像を再取得するときに$_SERVER['HTTP_IF_MODIFIED_SINCE']も$_SERVER['HTTP_IF_NONE_MATCH']もセットされていないのですが、何か心当たりある人いますか? 更新されていない画像には304 Not Modifiedを返したいのですが、上記の理由で全く機能しません。 画像を出力する際にヘッダにETag:もLast-Modified:も入れてるし、ブラウザのリクエストヘッダにもIf-Modified-Since:やIf-None-Match:はちゃんとありました。ApacheかPHPが消してるとしか思えないのですが・・・。 Apache1.3.33 - PHP4.3.11です。よろしくお願いします。
295 :
nobodyさん :2005/06/04(土) 07:46:06 ID:9qCVt472
EUCJPの文字コードからSJISに変換して 文字列を標示させたいのですが うまくいきません。 ↓ $str = "はい!!よしきた!"; $str = mb_convert_encoding($str, "SJIS"); echo "$str"; よろしくお願いします。
>>295 internal encodingはEUCになってるかい
とりあえず変換元も明示してみる
$str = mb_convert_encoding($str, "SJIS", "EUC-JP");
297 :
nobodyさん :2005/06/04(土) 08:40:17 ID:9qCVt472
>>296 mbstring.internal_encoding = EUC-JP
mbstring.http_output = SJIS
です!
errorを表示させると
Fatal error:Call to undefined function
:mb_convert_encoding() in /home/adonis/html/3.php on line 3
とでます。
<?php
$str = "はい!!よしきた!";
$str = mb_convert_encoding($str, "SJIS", "EUC-JP");
echo "$str";
?>
>>294 セットされてないのは送られてないから
俺はお前よりApacheとPHPの方を信じる
>>297 multibyte関数自体が使えないんじゃないかバカ
エラーでてるんなら最初に書けバカバカ
どうすれば使えるようになりますかとか質問するなよバカ
そんなこと検索すれば分かるバカバカ
>>295 念のためエディタの保存形式もチェックしてみては?
>>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は入ってないのですが。
チョンのようにF5押したから。
>>301 IEの要求が矛盾してることだけは判った。
良くわからないけどIEのキャッシュが変だとか。
いっぺん物理的に(ファイルシステム的に)クリアしてみては。
>>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ユーザーが多数派なのでなんとかしたいです。
305 :
303 :2005/06/04(土) 13:18:10 ID:???
>IEのキャッシュをクリアすると、If-Modified-SinceやIf-None-Matchを送らなくなります >でもやっぱりPragma: no-cacheは送っているようです。 ieHTTPHeaders v1.6で確認してみたが、 IE6.0.2800.1106.xpsp2.050301-1526 ではリクエストでPragma: no-cacheは送ってないけどな。 何らかのproxyが噛ましてあって、それを通ったあとのリクエストを キャプチャして見てるってことはない?
306 :
nobodyさん :2005/06/04(土) 13:24:02 ID:sb3TzWhw
質問させてください 他サイトのHTMLやCGI等の文字を抜き出して、PHPの引数にしたりすることは出来ますか?
できません ><
308 :
nobodyさん :2005/06/04(土) 13:38:31 ID:BqXj2EH6
他サイトのCGI等のフォームに文字を書き込むことは出来ますか? 例えば他ドメインの掲示板などに自分で作ったフォームから書き込んだりとか
悪用(・A ・)イクナイ!
311 :
nobodyさん :2005/06/04(土) 14:12:41 ID:BqXj2EH6
いや、悪用じゃないんです。 何がしたいかと言うと、巡回する掲示板(同じフォーマット)をプルダウンで選択して URLを変えずに書き込みたいんです。 ダメですか・・・
巡回する掲示板なら巡回したときに書き込めば良いじゃない。 掲示板を見もせずにマルチポストしかけるためのスクリプトにしか見えませんが。
>>311 本当に正当な事をやりたいのなら、
PHPで書かれてる2chブラウザ(p2)なんかを読んでみな。
ちょろっと読むには大仰だけど、読んで書き込むだけの部分は、
そんなに大きくはないのだから。
314 :
nobodyさん :2005/06/04(土) 14:59:28 ID:BqXj2EH6
ありがとうございます。 DLしたけど、ものすごい量ですね^^; でも、これでがんばってみます。
315 :
314 :2005/06/04(土) 15:09:48 ID:BqXj2EH6
ところで、 これってプロバイダで関数が規制されているような
316 :
314 :2005/06/04(土) 15:17:51 ID:BqXj2EH6
Unable to open remote fileって出ました(orz これは諦めた方がよさそうですかね・・・
もしかしてレンタルサーバか?
318 :
nobodyさん :2005/06/04(土) 15:48:06 ID:BqXj2EH6
レンタルサーバです。 自サバでも立ててみます。
>>316 allow_url_fopenかね。エラーが違うように思えるけど。
レンタルサーバだと、引数のチェックをしないよう作りの
クソプログラムを使われるか判らんので、使えないようにしてるかも。
利便性とのバーター。
参考にして自分で組んで見た結果なら、
SSLを使うようビルドしてないPHPでhttps、ftpを使うようビルドしてないPHPでftp、
元からサポートしてないmmsとかrtspプロトコルを指定したとか。
320 :
285 :2005/06/04(土) 18:25:34 ID:ZARj7JSX
お返事が遅くなりまして申し訳ありません。
>>289 さんのご指摘通り、
文字列のエンコードをUTF-8からUTF-16に変更する事で正しいコードが得られますた(´・ω・)
>>288 そんなわけで今更なのですが、自分が書いたのはこんな感じのものでした。
$str = "何か適当な文字列";
$str = unpack("C*", $str); // アン(゚Д゚)パーック!
$len = count($str); // 長さ(゚Д゚)チェーック!!
$n = 1;
while($n <= $len) {
echo $n.": ".dechex($str[$n])."<br>\n"; // コード(゚Д゚)エコー!!!
$n ++;
}
作成にあたっては以下のサイトのコードを参考にさせて頂きました。
ttp://www.sound-uz.jp/php/tips/mobile.html お二方とも、どうもありがとうございました。
321 :
nobodyさん :2005/06/04(土) 20:30:20 ID:+tj+PzMb
perlだと下みたいに、ヒアドキュメント中に命令文をかけますが、 PHPでは可能でしょうか?可能ならどうすればいいんでしょうか? よろしくお願いします。 print <<"EOD"; ああああ @{[$flag ? "true" : "false"]} ああああ EOD 環境: Windows Server 2003 PHP 4.3.11
322 :
nobodyさん :2005/06/04(土) 22:56:32 ID:en4OOD87
日本語が表示されません。 例えば print "japanese日本語"; と書くと 「japanese」 とだけ表示されます。 「japanese日本語」と表示させるようにするにはどうしたらよいですか? 解説があるページでも良いので教えてください。
ポメラニアンです
325 :
nobodyさん :2005/06/05(日) 11:52:24 ID:fHB//NoE
XPホームエディション
Apache+php5+MySQLの導入を図っているものですが、
Apacheとphp5のインストールを終え、Apacheの再起動によるインストールの確認作業で詰まりました。
Apacheのインストール後に、
http://localhost/で確認ページはでたのですが 、
php5の設定後に
http://localhost/test.phpを見ようとしたのですが 、表示されません。
システム管理のサービス画面からApacheの再起動を促したのですが、
起動させても、すぐにサービス停止のメッセージボックスが表示されて停止状態になります。
手動設定にしても停止してしまいます。
tp://allabout.co.jp/career/database/closeup/CU20040928A/index.htm
このページを見て設定したのですが、何が悪いのかわかりません
おそらく私の設定が悪いのかPCが悪いのか私の頭が悪いのかの
どこかに理由あることはわかりますが、上手く動作しません。
327 :
nobodyさん :2005/06/05(日) 12:18:37 ID:fHB//NoE
なにも書かれていませんでした
328 :
nobodyさん :2005/06/05(日) 12:19:40 ID:WUf4gILF
質問です。フレームで上下に分けているページで 上のフレーム print "<FORM name=form1 method=POST target=bottom action=$PHP_SELF?mode=output "; print "<INPUT TYPE=TEXT NAME=comment SIZE=50><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信>\n"; 上のフレームで↑のように「送信」を押した時に、outputの処理をさせつつ、下のフレームが別のウェブページが表示されるようにするにはどうしたらよいですか? 例えば、「送信」を押す前は下のページはYAHOOのページ。「送信」を押した後の下のページはGOO。 「画面」 上フレーム 【送信】 ---------------- 下フレーム YAHOOページ ↓ 【送信】ボタンを押す ↓ 「output」の処理 「画面」 上フレーム 【送信】 ---------------- 下フレーム GOOページ
>>327 ログには出ないパターンかもな。
php.ini-distをphp.iniにして書き直せと解説されてるけど、
取りあえずphp.iniが無い(コピーしない)状態でApacheを起動してみな。
php.ini内の記述が問題かどうかの確認。
駄目なら、httpd.confのphp絡みの記述の問題。
スレ違い ヒント:JavaScript
>>328 手っ取り早く、header("Location: 〜");だけ出力して飛ばしたらいいんでないの?
自分のプロバイダには最初から日本語が使用できるようになってるから仕組みはわからないけど、 php.iniを書き換えるだけで、PHPのプログラムでかかれたものに日本語も認識出来るようになるの?
333 :
332 :2005/06/05(日) 12:44:07 ID:???
ごめん332はスレ違いでした。無視して
334 :
nobodyさん :2005/06/05(日) 12:44:49 ID:fHB//NoE
335 :
328 :2005/06/05(日) 12:57:04 ID:WUf4gILF
みなさん、お答えいただいてありがとございます。質問がちょっと違ってました。ごめんなさい。 上のフレーム print "<FORM name=form1 method=POST target=up action=$PHP_SELF "; print "<INPUT TYPE=TEXT NAME=comment SIZE=50><INPUT TYPE=SUBMIT NAME=Submit VALUE=送信>\n"; 上のフレームで↑のように「送信」を押した時に、上の画面を別の画面を更新させつつ、 下のフレームが別のページが表示されるようにするにはどうしたらよいですか? 例えば、「送信」を押す前は下のページはYAHOOのページ。「送信」を押した後の下のページはGOO。 「画面」 上フレーム 画面A【送信】 ---------------- 下フレーム YAHOOページ ↓ 【送信】ボタンを押す ↓ 「output」の処理 「画面」 上フレーム 画面B ---------------- 下フレーム GOOページ
337 :
328 :2005/06/05(日) 13:17:57 ID:WUf4gILF
お答えありがとうございます。 JavaScriptをOffにされた時はどうしましょう?
>>337 phpでやりたいのか?
<frame>…を書いているphpに、POSTデータを送る。
送られたPOSTデータによって、上下フレームのsrcをphpで変更。
>>337 動く訳が無い。
JavaScriptをOnにさせないと正常に動作しない旨を明記する。
それか、構造自体を変えるしかない。
つまり1画面にする。
携帯用とPC用のページを作るのと同じように、JavaScriptのON/OFFによって
表示させるページを変えるとかね。
>>340 (どうしても)phpでやりたいのか?って意味だったんだけどね。
まぁ、良いけどさ…
342 :
nobodyさん :2005/06/05(日) 15:34:20 ID:lYJETCr8
>>321 どなたもご存知ないでしょうか。
申し訳ないですが、別の場所にもマルチさせてもらいます。
不可能です。
>>342 ヒアドキュメントとは違うけど
?>
ああああ
<?=$flag?"true":"false"?>
ああああ
<?
マルチは放置
346 :
nobodyさん :2005/06/05(日) 19:55:55 ID:bZeUemJD
PHP(4.3)で WEB上でメールアカウントの発行を行いたいと考えておりますが、 どのような関数を使ったらよいのかわかりません・・ ヒントだけでももらえませんでしょうか? 今は PHP ↓ データベース ↓ 手動メルアカ発行 ←この部分を自動化したいのですが・・
>>346 コマンドラインからメールアカウントを発行する時のコマンドを、
system()とかのプログラム実行関数で実行する。
348 :
nobodyさん :2005/06/05(日) 20:40:24 ID:sNIsIaeC
OS X(Tiger)のApache/1.3.33にPHP5.0.4を入れてローカルで動かしています。 UTF-16で保存したPHPスクリプトを実行しようとすると 何故か<?php〜?>の部分がそのまま出力されてしまうのですが、 これはPHPの仕様によるものでしょうか? それとも当方のPHPの設定によるものでしょうか? 同様のスクリプトをUTF-8やEUCで保存した場合はすんなり動きます。 PHPはUTF-8もUTF-16も問題なく扱えるものと思っていたのですが、 UTF-16でコードされたPHPスクリプトを動作させる方法等、 ご存じの方が居られましたら何卒ご教授頂けますようよろしくお願い申し上げますm(__)m
>>348 そんな方法など無い。
UTF-16は全ての文字を2バイトで表現し、PHPのパーサはそれを解釈できない。
入出力のエンコーディングにUTF-16を使うことは可能。
350 :
nobodyさん :2005/06/05(日) 22:09:44 ID:fHB//NoE
>>329 記述が間違ってました
ありがとうございます
351 :
348 :2005/06/06(月) 00:35:39 ID:???
>>349 ぐはあ、2バイトだからか…orz
近い将来対応される事を祈りつつUTF-8で行く事にします。
どうもありがとうございました。
>>346 メールアカウントをそのデータベースで管理すれば
データベースに追加=メールアカウント発行となる。
データベース認証と連携できるSMTP/POPサーバを探してみ。
>>351 シングルバイト圏のマルチバイト対応のスタンスを知れば
そんなのは甘い幻想だということが判る。
待ってても辛いぞ。
>>353 日本の開発者が頑張ってマルチバイトに対応させてきたのを蔑ろにするかのように
mb_*関数をiconv_*関数でリプレースさせようとしてる連中だからな〜。
かといって日本人がメインでやってるRubyは書式が好かん。
LLとしてはPHPがいちばん性に合うんだよなぁ。
Tickで茶を濁すんじゃなくてユーザレベルスレッドが欲しいとか
ネイティブにイベントドリブンなプログラムが書きたいとか
欲を言えばきりがないけど。
355 :
nobodyさん :2005/06/06(月) 13:02:47 ID:6gysl0iC
>>347 ありがとうございますた。
鯖でCpanelを使っていたので、そこから発行している
コマンドがわかれば使えるかなと思って、調べていたら、
そのまんまクラスが落ちてましたw
>>352 噂には聞いた事ありますが、sudoとかmtaとか
サバーにも詳しくならないといけないなと思いますた
356 :
nobodyさん :2005/06/06(月) 18:40:19 ID:AU1ko05N
htmlページを解析して名詞単語をキーワード抽出するようなcgiを作りたいのですが 資料がなく、アルゴリズムもイメージできません。辞書ファイルなど作って一致したものを抽出させるのでしょうか? なにか助言ください。
つ [ 形態素解析 ]
>>356 じゃないけど
PHPから茶筅とかを使う例とかはあるけど、PHPのみで形態素解析してる例ってあるのかな?
359 :
nobodyさん :2005/06/06(月) 20:32:12 ID:cu+btNTG
当日の曜日と時刻が ある曜日の時刻からある曜日の時刻の範囲内であるかどうかを チェックするには どのようなコーディングをすればよろしいでしょうか。 多分、機能の実現自体は出来ると思うのですが、 いかに綺麗なプログラムで実装するかという意味では こちらで識者の意見を仰いだほうがよいと思ったので 質問させていただきました。 よろしくお願いします。
>>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 '範囲外';
361 :
359 :2005/06/06(月) 21:01:59 ID:???
>>360 レスありがとうございます。
何故「ある曜日と時刻」かと申しますと、
1週間の中で曜日と時刻で変化するパラメータを設けたいのです。
なので、ある日時の範囲ではなく
ある曜日と時刻からある曜日の時刻の範囲内で在るかを
見ていきたいというわけなのです。
362 :
nobodyさん :2005/06/06(月) 21:21:50 ID:7fi2eBpp
webサービスなどで自動更新される (株価やランキングの数値など)ものを IFRAMEを使わずに表示するには どうしたらできるでしょうか? 表にその数値を入れたいので、レイアウトがくずれないようにしたいからです。 phpでできるようなことを聞きました 助言おねがいします
>>362 自動更新されるデータをとってきて変数にいれて、
表の中で表示すればいいだけじゃん。
>>362 あとはjavaかなんかで自動でリロードさせれば完璧(´・ω・`)b
>>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;
}
>>362 IFRAMEを使わずにってことはブラウザ側でも一定間隔で自動更新したいって意味?
それだったらXMLとかの形でJavaScriptで定期的にロードすればそのまま整形できるし(スレ違いだけど)ページ全体を更新する必要もない。
別にブラウザ側で自動更新しなくていいなら
>>363 の方向で。
>>364 はよーわからん。
367 :
362 :2005/06/06(月) 22:48:00 ID:7fi2eBpp
遅くなってすみません
>>363 cgiやperlはやったことがありますが、phpは
ないので、今のところできません
>>364 24時間に一回更新すればそれでいいです。
>>366 とりあえずやってみます。
368 :
362 :2005/06/06(月) 22:54:40 ID:7fi2eBpp
>>363 自動更新されるデータはxmlなのですが
htmlの中のtableの中にどうやって組み込むのですか?
370 :
362 :2005/06/06(月) 23:47:41 ID:7fi2eBpp
>>368 Javascript(XMLHttpRequest) + DOM + DHTML
フォームの処理に関して質問です。 下記のような流れの登録フォームがあったとします。 (1)IDとパスワード入力 ↓ (2)個人情報入力 ↓ (3)アンケート回答 ↓ (4)内容確認 ↓ (5)登録完了 formのactionをpostにしていると、IEでは3の時にブラウザの 「戻る」を押した時にエラーになります。(セッションエラー?) これを解消するにはどうしたらいいのでしょうか? GETにするしかないのでしょうか?
374 :
362 :2005/06/07(火) 01:36:45 ID:3zfTLLTt
377 :
361 :2005/06/07(火) 08:27:51 ID:umy9na94
>>365 どうもありがとうございます!
参考にさせていただきます。
>>373 Post時、情報を2重送信しないためのIEの仕様。掲示板とかでも出るから試してみ。更新を押すと見れるはず。
379 :
nobodyさん :2005/06/07(火) 16:02:52 ID:jA26TwdA
質問です。 PHPでWebサイトの製作を計画しているのですが ページのリンクにより @PHP→AHTML→BPHP と遷移した場合、@のPHPで作られたセッション情報というのは BのPHPでも参照できるのでしょうか? よろしくおねがいします。
>>379 やってみればいいじゃん。
1のPHPでセッションに何か情報記録しておいて、
3のPHPで表示できるかどうか。
この質問に関しては、実験しても正しい考察が得られるとは限らないような。 いや、htmlやhttpの知識があってマニュアルをよく見ていれば、質問する必要すらないんだけどね。 セッションの実装には、cookieとURL埋め込みの2種類があって、 URL埋め込みの場合は(2)の部分でセッションが切断される。 cookieとURLのどっちが使われるかは、鯖の設定とブラウザの設定に左右される。 よって、参照できる時もあれば、参照できない時もあらーな。
382 :
nobodyさん :2005/06/07(火) 16:54:29 ID:jA26TwdA
>>381 PHPはやったことがないというか。いまから開発環境の選定をしている
最中でして・・・・・
Javaで作るServletコンテナの場合は、
@JAVA→AHTML→BJAVA で引き継ぐことがてきたので
PHPの場合はどうか質問してみましたのよ。
まあ、よく考えればPHPは所詮CGIなのでできないはずですね。
失礼ー。
>>382 >PHPはやったことがないというか。いまから開発環境の選定をしている
>最中でして・・・・・
自分の使ってるパソコンにでもインストールしてテストすれば良いじゃないか?
インターネットで調べながらでも2,3時間もあれば初心者でも十分過ぎる。
>まあ、よく考えればPHPは所詮CGIなのでできないはずですね。
PHPが分かってない。
そして、結果的に言えば出来る。
384 :
nobodyさん :2005/06/07(火) 17:06:10 ID:kfATXNgN
>>382 一時的にDBにセッション情報を保存しておけば出来るじゃん。
>>382 PHPであろうとJavaであろうとセッション保持の仕組みそのものはたいして変わらない。
>まあ、よく考えればPHPは所詮CGIなのでできないはずですね。
セッションの仕組みを理解していないのに、CGIだからという理由で結論を出すのは浅はか過ぎる。
そもそもPHPはCGI版と共有オブジェクト版があるわけで。
しかも、>381には
>いや、htmlやhttpの知識があってマニュアルをよく見ていれば、質問する必要すらないんだけどね。
って書いてあるんだが。
スマン、ストレスがたまってるみたいだ。
386 :
nobodyさん :2005/06/07(火) 17:38:48 ID:jA26TwdA
>>383 ,385
>>384 は論外として
誘導尋問のつもりは無かったのですが
おかげさまで必要な情報が取れました。
これで実現に向けてGOをかけれます。
ありがと。
>>382 >PHPは所詮CGIなのでできないはずですね
バカじゃねーの?こいつ。
知ったかぶってるけど基本が分かってないな。
というか、なぜ
>>384 が論外なのかわからん。
むしろ王道だろうに。
389 :
nobodyさん :2005/06/07(火) 21:03:42 ID:kfATXNgN
>>386 GOをかける前にセッションの勉強したほうがいいよ、キミ。
あとクッキーの勉強もな。
他人に質問しといて「論外として」はないだろう。
見てて不愉快だ。
386ではないが、
>>384 は解決方法にならなくない?
再認証するなら使えるけど、クッキーオフだとセッション切れちゃうよね。
クッキー使う事前提ならDBに保存する必要はないわけだし。
(別に最初からDBでセッション管理してもいいけど)
>>390 388だけど、384の趣旨はセッション管理にDBを使うということと読んでた。
でも読み返すと微妙な気がするなあ。
どのみちPHP以外の言語と連携するならセッション情報のシリアライズに
serialize()関数の代わりにwddx_serialize_vars()を使うとか、
セッション自体を独自に実装するとか、ちょっとした工夫は必要だけど。
392 :
カポコン :2005/06/07(火) 22:31:37 ID:???
うーむ自作スクリプトって難しいな。 UNIXで使う場合の変換とか頭がこんがらがってしまう。 何か良いネタ無いかプリーズ。
質問です。 $a = new A(); class A { var hoge; function get() { print $this->hoge; } } これで$a->get()してもhogeの内容が取得できません。hogeにはコンストラクラで文字列を代入しています。 何がおかしいですか?
>>389 てっきり悪意あるガセネタかと思いました。
「論外」は撤回します。
>>394 var hogeは var $hoge の間違いだとして、
上記のコードにコンストラクタで代入と$a->get()を付け足せば、きちんと動作したよ。
>>394 なんで、そのコンストラクラとやらを省略するんだ
>>396 >>398 情報小出し失礼しました
class commonClass {
var $mysqlHost;
function commonClass() {
$mysqlHost = 'localhost';
}
function get() {
print $this->mysqlHost;
}
}
$a = new commonClass();
print $a->get();
やはり何も出てきません。。
>>399 >$mysqlHost = 'localhost';
ローカル変数に代入してる件について。
それとな、
function get() {
print $this->mysqlHost;
}
getterの中でprintキモス。
>ローカル変数に代入してる件について。 あっそれでした!ありがとうございました! # getterの中でprintは編集時のミスでした
402 :
nobodyさん :2005/06/08(水) 00:53:20 ID:aX6bI7hV
画像掲示板、- Joyful Note -- php resize を使ってます。 糞鯖ぶっとびで利用してるのですが、 どうも画像のUPがおかしいのです。 というのは、UPできないJPGがあるのです。 いろいろ試した結果、Exif情報が埋め込まれたJPGで起こるようです。 エラーは「500 Internal Server Error」が出ます。 他の鯖(x-beatやpc1)ではこういう現象は起こらなかったのですが、 なぜなんでしょう??? 鯖側がなにかJPGをチェックしているのでしょうか? それとも鯖のPHPがよくないのでしょうかね? よろしくお願いいたします。
>>402 そういう質問は配布元周りで聞いたほうが早いと思うが。
404 :
402 :2005/06/08(水) 01:15:00 ID:aX6bI7hV
>>403 そうですね。
ただ、問題がどこにあるのかが分からないので、
推測でも構いませんので、おかしいなと思えるような点を
明示していただければ助かります。
>>404 その画像掲示板スクリプトを全く知らないんだけど、
resize処理しているのが自力なのかGDを使っているのかわからないが、
他の鯖で動くのなら、GDライブラリを使っているってことかなぁ。
で、phpinfo()が使えるのならGDライブラリのバージョンを見比べてみるとか。
他には、Exif情報の埋め込まれた小さな画像で試してみて、
鯖に負荷を与えないようにしてみるとか。負荷がかかりすぎて
エラー扱いになっているかもしれんし。
以上、推測、憶測、ほんまにてきとー。
408 :
402 :2005/06/08(水) 19:58:06 ID:???
>>40 リサイズはGDバージョンです。
GDの1、2の設定があったのですが、両方試してもダメでした。
容量は指定以下でやってますので、関係ないようです。
他の鯖で問題ないようなんで、「ぶっとび」はやめますわ。
PHPがダメならとCGIにしてみたけど、rejpegとか働かないみたいだし、
どうもぶっとびはぶっとんでる感じでした。
>>408 WebProg板であってWeb制作板でもレンタル鯖板でもないんだが。
FormからPOSTするのではなく、PHPからPOSTでデータ送信&データ取得したいのですが やり方を教えてください。
つ [ ソケット関数、RFC2616 ]
・ソケット関数を使ってHTTPプロトコルを自分でおしゃべりする。 ・cURL関数を使う ・PEARのHTTPエージェント(だっけ?)ライブラリを使う。
413 :
nobodyさん :2005/06/09(木) 14:58:57 ID:RW1olHwC
サーバー上に白紙の.cgiを作成するにはどうすればよあですか
>>413 詳しく。
つーか、cgiってperlの事じゃないよね?
415 :
nobodyさん :2005/06/09(木) 15:08:57 ID:yRdQnuIC
パールじゃなしに、形式です。 fopenでファイル名を指定すればコードwで自動作成されるのかな?
>>415 意味わかんね。
白紙の.cgiってなんだよ。
単にxxxx.cgiって名前の空のファイルってことか?
417 :
nobodyさん :2005/06/09(木) 15:17:20 ID:Ni6QuDwq
そういうこと
418 :
nobodyさん :2005/06/09(木) 15:17:55 ID:Ni6QuDwq
そゆこと
420 :
nobodyさん :2005/06/09(木) 17:08:52 ID:yZsyb8/9
えっち?
おっねがいっ、タッチ、タッチ、そこにタッチ♪
あなたから〜♪
呼吸を止めて千秒、貴方死んでる目をしたから〜♪
そういうスレだったのか。
425 :
nobodyさん :2005/06/09(木) 19:23:06 ID:zoe0L2G9
僕は初心者です。プログラマになりたくて本のソースをそのまま のしたHPを紹介して今の会社おとついはいりました。 いきなり検索システムをつくってくだささいといわれまったくなにを したらいいかわかりません・・・・どうなってるといわても すみません設定がまだといいつつ二日になりました・・・ もう言い訳できそうにありません・・検索システムって初心者の 僕がつくるにはどうしたらいいでしょうか? PHPの文法もまったくわかりません・・・ どこかにまるまるコピできるやつで短めで簡単ぽいのおしえてください お願いしますTT
僕も初心者です。プログラマになりたくて本のソースをそのまま のしたHPを紹介して今の会社おとついはいりました。 いきなり検索システムをつくってくだささいといわれまったくなにを したらいいかわかりません・・・・どうなってるといわても すみません設定がまだといいつつ二日になりました・・・ もう言い訳できそうにありません・・検索システムって初心者の 僕がつくるにはどうしたらいいでしょうか? PHPの文法もまったくわかりません・・・ どこかにまるまるコピできるやつで短めで簡単ぽいのおしえてください お願いしますTT
北緯東経を各変数に収納しようと思って
$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 釣りか?
>>427 多分、想いっきり勘違いしてる
↓splitのマニュアル
>pattern は正規表現であることに注意して下さ い。
explodeを使うべきかと
>>427 split( string regex, string source )
正規表現で . は任意の文字列。つまり全てにマッチしてる。
explode() のが動作早いし目的に合ってるからそっち使え。
430 :
427 :2005/06/09(木) 19:59:43 ID:???
うは、サンクス! 正常に動いたよ(・∀・)b
431 :
自動返信 :2005/06/09(木) 21:58:57 ID:jH9aJbMC
Fedora3 PHP4 APACHE2 Postfix Dovecotの環境でWEBプログラミング勉強中です。 ユーザーに空メールをおくってもらい、そのメールアドレスをとりだしデータベースに登 録するというサンプルを作りたいんですがどうしたらいいでしょうか? qmailだとメールが届いたら特定のスクリプトを実行というものがあるようですが、今の Postfix+Dovecotの環境でメールが届いたらデータベース登録のPHPスクリプトを読み出 すという形にしたく悩んでいます。 PostfixはMaildir/形式にしてあります。 最終手段として定期的に/home/(user)/Maildir/の中をチェックという方法しかないかと 思っていますがもし何か解決策ご存知でしたら教えてください。 PHPとは直接は関係ないかもしれませんが、メールを受信したかどうかをどう取得するか。
>>431 /etc/aliasesに
hoge: "/path/to/php -f hoge.php"
で、ええんちゃうの?
ゴメソ hoge: "| /path/to/php -f hoge.php" ね。
434 :
(3-1) :2005/06/09(木) 22:36:09 ID:???
参考書をそのまま打ち込んでますが 思う動作をしてくれなくて困ってます。 何か手がかりを教えて下さい。 uploader.html <html> <head> <title>File Uploade</title> <META http-equiv="Content-Type" content="text/html; charset=x-sjis"> </head> <body> <form method="post" enctype="multipart/form-data" action="uploader.php"> <input type ="file" name="upfile"> <input type ="submit" value="uploadする"> </form> </body> </head>
435 :
(3-2) :2005/06/09(木) 22:36:47 ID:???
uploader.php <html> <head> <title>File Uploarder</title> <META http-equiv="Content-Type" content="text/html; charset=x-sjis"> </head> <body> <p> file uploader </p> <?php $updir = "./upload/"; $filename = $_FILES['upfile']['name']; if (move_uploaded_file($_FILES['upfile']['tmp_name'],$updir.$filename) == FALSE){ print("Upload failed..."); print($_FILES['upfile']['error']); }else { print("<b>" . $filename . "</b> uploaded!"); } ?> </body> </html>
436 :
自動返信 :2005/06/09(木) 22:37:42 ID:jH9aJbMC
437 :
(3-3) :2005/06/09(木) 22:39:26 ID:???
以上のソースを打ち込み 適当にファイルを選択後送信してみても file uploader Upload failed... だけしか表示されず旨くいきません。 自分の環境はローカルでPHPをテストする為だけの環境なので WindowsXP+Xamppです。
>>437 確信は無し
>$updir = "./upload/";
↓
>$updir = "./upload";
439 :
(3-3) :2005/06/09(木) 22:47:36 ID:???
>>438 ありがとうです。
でも結果は変わらずでした。
打ち間違いは無いと思うのですが(何度も確認したので)
参考書の誤字か、私の環境が悪いのかと疑っています
ソース的には問題はないのでしょうか?
>>439 uploader.phpと同じところに「upload」というディレクトリはあるんだな?
441 :
(3-3) :2005/06/09(木) 22:59:02 ID:???
>>440 もちろんです。
ただ、環境はWindowsですのでアクセス権の設定はしていません。(出来ないのかな?)
それが問題でしょうか?
>>437 スクリプト的には問題なさそうだから
error_reporting(E_ALL);
をuploader.phpの<?phpの次の行に追加してみたら。
ただファイルを何もうpしてないだけだったりして
444 :
(3-3) :2005/06/09(木) 23:20:32 ID:???
>442 むむ!? なにやら沢山出てきました。 グーグル先生に聞いてきます。 みなさん有難うございました。 file uploader Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 11 Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 12 Upload failed... Notice: Undefined index: upfile in C:\apachefriends\xampp\htdocs\project\upp\uploader.php on line 14
誰かZend Studio 4.0日本語版使ってる人いない? 買おうかどうか悩んでるんだけど、レビューしてる人見かけないし・・・。 地雷かな? Eclipseもいいけど、色んなの使ってみたいなとも思ってて。
>>445 人柱乙(*´∀`)
見た感じは良さそうだけどなぁ。
>>445 よほど大規模な開発にはよさげだけどね
でもかなりの部分はEclipseでも賄えちゃうしなあ
俺はまず使うこと無いな
448 :
自動返信 :2005/06/10(金) 00:08:58 ID:gLWzFcyI
/etc/aliasesでroot:"/usr/bin/php /home/sample.php"のようにしてroot宛にメールがきたらsample.phpを実行するという環境にしました。 これは成功したんですけど、送信されてきたメールアドレスをこのPHPスクリプトに渡したいんですが、まずメールアドレスの取得方法は何かありませんか?
>>448 ぉぃぉぃ。
qmailだと実行できるとか、Maildir/を見るしかないとかを
>>431 で書いておきながら、
実は何も知りませんてか。
エンベローブFromは取れないが、Mailヘッダも含めて標準入力から来てるだろ。
450 :
自動返信 :2005/06/10(金) 00:58:44 ID:gLWzFcyI
>449 すみません…そのとおり何も知らないんでどうしようもなく質問させていただきました。 qmailだと実行できるというのはそういう一言情報が調べたときにありましたが、という意味で書きました。 Maildir/については、メール内容などがどういう風に書き込まれてるかを調べていけば読み出すことでできるかもしれないという自分なりの考えを述べたつもりです。 こんな/etc/aliasesというものをまったく知らなかったので。 標準入力からきているというヒントでも正直よくわかりません…。 どこでどう取得すればいいんでしょうか?
>>450 $mail = file_get_contents('php://stdin');
これで、メールの内容(ヘッダ込)が全て$mailに入るから、
適当なファイルに書き出して、どのような中身になっているか見てみるがいい。
後は、マニュアルのmailparse関数等を参考に。
追記つーか補間 mailparse関数を使えって意味じゃなくて、そこに書いてある内容を参考にって意味だったんだが、 何も書いてないよなw RFC822とか、その他いろいろググってってことで。
453 :
自動返信 :2005/06/10(金) 01:44:05 ID:gLWzFcyI
>451 ありがとうございます。 PHPのCLI版はさっきいれたところで、このような形で標準入力を取得できるとは知りませんでした。 標準入力を取得し、それをファイルに書き出すまでは成功してるんですが、いざ、メールの内容取得となると取得できていません。 現時点まででしたことをまとめると /etc/aliasesにroot:"|/usr/bin/php /home/sample.php"を追記 /home/sample.phpに以下のコードを記述 $mail = file_get_contents("php://stdin"); $fp = fopen("mailh.txt","w"); fwrite($fp,$mail); fclose($fp); まだ何か勘違いしているのでしょうか? RFC822の情報はありがとうございます。 メールヘッダの形式もあいまいだったのでこの機会に習得しておきたいと思います。
>>453 newaliasesは実行したか。
で、俺はもう寝るぞ。
>>445 一度も使ったことがないなら、登録してFree Evaluation(英語版)で試してみなよ。
バージョンが上がる度に良くなってる点は評価できるけど、
Java使ってて動作がもっさりだなと思わないこともない。Eclipseもいっしょだが。
まあ、今時のマシンだと気にするほどじゃないけどね。
456 :
自動返信 :2005/06/10(金) 01:54:08 ID:gLWzFcyI
はい、newaliasesはきちんとしているのですが…。 遅くまですみません、でも何か解決策が見えると思います。 がんばってみます。 昼4時から取り組んで悩んでいたので解決に光が見えてきて本当に嬉しいです。 本当にありがとうございます。 自分もこういう質問に答えられるくらいになるようもっと勉強します。
457 :
自動返信 :2005/06/10(金) 02:12:27 ID:gLWzFcyI
>454 できました! きちんと$mail=file_get_contents("php://stdin");で$mailに入っていました。 まずそもそもrootに対してメールが送られたときにファイル書込みができているのだろうかと思い適当な文字をファイル書込みしようとしました。 すると適当な文字aaaとかにもかかわらずファイル書込みがされませんでした。 じゃあこのスクリプトを呼び出していないのかというとそうでもなく、mail関数などは正常に動作していて、きちんとスクリプトを呼んでいることがわかりました。 そこでmail関数を使用して、$mailで取得したヘッダ内容を自分の携帯電話へ送ってみたところ正常に動作しました。 なぜファイル書込みができなかったかを考えたところ、おそらくこのスクリプトを実行しているのがメールサーバーだからだろうと思い/homeを777にして書き込み権限を与えました。 すると成功しました。 長かったですがやっと成功できました。 本当にありがとうございました。 本当にいくら感謝してもしきれません。 もっとPHP単体だけでなく他プログラムとのかかわりも含め勉強を重ねていきます。
>>456 >>453 のmailh.txtを書き出すには、postfixが動いている権限で書き出せるように
パーミッションの設定が必要。
後は、本当にsample.phpに渡っているかmailログ等で確認汁。
今度こそ寝るw
ありゃ、3秒差で遅かったかw まぁ、よかったな。
460 :
自動返信 :2005/06/10(金) 02:14:13 ID:gLWzFcyI
あ、すれ違いになってしまいました(汗) そのとおりです。 そこまで見通せるの本当に凄いです、ありがとうございました。
携帯でjaming使ってる人が集う場所ってどこかないでしょうか? dblは表示できるんだけど、jpgがどうしても上手くイカン・・・
同じ名前のクラスを呼ぶと、Cannot redeclare classエラーが出ますが、 これを、なんとか呼ぶことが出来ないものでしょうか…。 2回目にクラスを呼ぶ時点で、前に呼んだクラスはもう必要が無くなるので、未定義状態に出来ればいいのですが そんな都合がいいことは出来ないでしょうかね・・・?
PHPでそんな融通効くわけないじゃん
>>463 クラスを呼ぶ???とはどういう事だい?
ちと、コードコピペしてみな。
include
>>463 include_onceかreqiure_onceを使ってみれば?
>>463 、
>>467 結局includeeされたファイルはただそのまま読み込まれているだけだから、
同じファイルに同じクラス名のクラスを2つ書いてることになるだろ。
それを別のものとして宣言ってのは無理だろ。
だいたい同じクラス名を使うなって。
469 :
468 :2005/06/10(金) 23:13:45 ID:???
eが多かった・・・。
>>455 どうも使用期限が付いてるものをインストールするのは嫌なんだよね〜・・・。
ゴミが溜まりそうなので。
だからCeleron600MHz、メモリ128Mの使ってない端末に入れてみた->評価版。
ん〜・・・、すげーもっさりしてるね動作が・・・。当たり前か。
まぁでも良い感じかなぁとは思った。今月末に購入するよ。
>>468 ---- Test.class.php ----
<?php
class Test {
}
?>
----------------------
---- main.php -----
<?php
require_once('Test.class.php');
require_once('Test.class.php'); // これはエラーにならない
$obj =& new Test();
?>
------------------
こういう話じゃないってこと?
アップロード系のサイトをやってるんですが、 特定のディレクトリ内に一番最後に格納されたファイル (または過去n個以内の複数のファイル)のファイル名情報を取得して、 .php内に表示させる方法ってないでしょうか? イメージとしては、 <?php echo date('m/d', filemtime('./upload/') ) ?> ↑の指定ディレクトリの更新日時を取得して表示する、の 名前取得版みたいな感じで動作させたいんですが...。
いろんなやり方があると思うけど、 ・アップロード時にテキストファイルにファイル名を書き込む ・表示させる時にディレクトリ関数・ファイルシステム関数を使ってデータ取得 etc.
>>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>
のような感じで。
>>473 そんな事やってそうな気がしたんだよ…
もう一遍、classについて勉強しなされ。
インスタンスを2個作るんじゃダメなの?
名前空間の問題なんですね。
>>474 なるほど。
というかこんな発想をするほうがすごいね・・・
普通こういう使い方はしない。
ほかの言語だと同じクラス名があると上書きされるんだっけ?
言語によってどう扱うか変わるだろうね。javaで試してみたら、重複エラーがでたよ。
perlは確か上書きされた気がする。
481 :
nobodyさん :2005/06/11(土) 22:30:08 ID:JxmTPzAI
PHPを使う人にとってさ ショッピングカーとぐらい、本とかみないでも 1からスクリプトかけるのか? 俺ショッピングモールいまつくってるけど、仕事で ぶっちゃけ本みながらやってるんだけど・・・ おまえらどうなの?
>>481 ボクはマニュアルさえあれば何もいらないよ、サチコ。
>>481 見ないでも書けるけど、本見て仕事がスムーズに進むなら
別に見ても構わんと思うぞ。教科書持ち込み不可のテストでもないんだから。
リファレンスマニュアルは、手元に置いてるな。データと紙の両方。
ああ、あとショッピングカートをゼロから組むことは殆ど無い。 そんなことやってたらコスト的に勿体無いから。
>>481 よくスペルとか忘れるから、マニュアル片手にやってるよ。
あと、自分で作った既存のスクリプトからコピペしたりよくやってる。
正直、関数のうろ覚えが多いんでマニュアルないとゼロから100まで作るのは無理かも。
配列関数で、(array_mapとかarray_fileterとかarray_walkとか…)パラメータの順番が関数によってまちまちなんで どっちに配列だっけ…と迷う事がよくある。
会社だとZendStudio使ってるからコード補完があるし、引数も分かるからなぁ。 それと、本を見ながら作業ってのは、余りしないな。 ネット上で探した方がコピペも出来るし作業的には楽。
>>487 ZendStudioがない場合、何も出来なくなりそうだな…。
まぁ、そんな事態はないだろうけど。
array_* な関数は殆ど foreach で処理させている俺ガイル。
PHP4.3をソースコードからCLI版としてインストールしたんですがどう頑張ってもmb関数がundefinedとなってしまいます。 PHPのソースを展開し ./configure --enable-mbstring make su make install 何かいけないこと考えられますか? php-cli.iniの[mbstring]設定もしました、といってもそもそもUndefinedFunctionとなるのでそれ以前の問題なんです
492 :
nobodyさん :2005/06/12(日) 05:32:11 ID:T3M2BgYk
複数のBLOGに同時に書き込みしてくれるような機能を サーバサイドで実行してくれるPHPスクリプトってどっかにありませんかね。 ご存知の方がいたらよろしくです。 一応、最初は自作しようと思ってpearのhttp_requestとか使って まずlivedoorBLOGで試したんですが、いきなりログインまわりの セッション保持で挫折です。cookieの送受信はきちんとやっているつもりなんですが、 どうやらそう簡単にはいかないらしく。
2005-06-12T01:28:43+09:00 を 2005年06月12日 01時28分43秒 に整形したいのですが、できませんか?
494 :
掲示板のperlですが :2005/06/12(日) 10:37:05 ID:CxMhZf98
$host = $ENV{'REMOTE_HOST'}; (略) if($mail eq "fusianasan"){ $body = "$host"; } この場合メル欄に「fusianasan」と入れると、メル欄にホストが晒される ことになると思いますが、たとえば「俺はfusianasan」「fusianasanだよ」のように 「fusianasan」という文字列を含む場合は全てhostを晒したいという時、 $mail eq のあたりをどう書き換えればいいですか。 どうか先輩方教えて下さい。<(_ _)>
ごめんなさい $body = "$host"; } じゃなく $mail = "$host"; } でした。逝ってきます。
>>493 Date関数のマニュアルをよく読む。
date("Y年m月d日 h時i分s秒")
という風に出力する形式(フォーマット)を指定できる。
しかもperlとPHP間違えました。 逝ってきます。すみません。
>>496 date("Y年m月d日 h時i分s秒") は知っています。
2005-06-12T01:28:43+09:00
を
2005年06月12日 01時28分43秒
に整形したいんです。できませんか?
できます。
>>500 正規表現使うまでもないでしょ。
形が決まってるんだから。
>>481 PHPのマニュアルはかなり優秀だと思う。
〜やりたい時はどうすればいいのだろう?
と思ったときは、まず最初にマニュアルを見る。
大概答えが書いてあるよ。
PHP5で実装されている__autoload()関数をPHP4でも使いたいのですが、 同じような挙動を取る関数を作成することは可能でしょうか。 とりあえず、PHP4の時は以下のようにしてファイルを読み込むようにしているのですが、 これだとページによっては不要なファイルも読み込んでしまいますよね。 if (PHP_VERSION < "5.0.0") { foreach (gleb("./class/*.inc") as $classfile) { require_once($classfile); } }
504 :
503 :2005/06/12(日) 14:31:35 ID:???
コピペしただけなのにスペルミスってる・・・(´Д`)? gleb→globです。
ちょいと質問です readdirでディレクトリの中にあるファイルを全部表示させたのはいいんですけど で、ファイルがこんな感じで表示されてるんですが ↓↓↓ 〜.jpg [ファイルサイズ] 削除 〜.txt [ファイルサイズ] 削除 〜.zip [ファイルサイズ] 削除 この削除ボタンを押すと対応したファイルが消えるようにしたいんですけど どんなスクリプト組めばいいのかいまいちわかりません。 誰か俺に教えてくださいorz
>>503 エラーハンドラをいじったらできそうな気もしなくもない。
>>505 どのあたりが分からんのか説明が欲しいところだけど、
やることは簡単なので処理の流れを書いてみる。
<a href="delete.php?filename=〜.jpg">削除</a> で、削除スクリプトを呼び出すボタンを作成。
delete.phpは適切に入力チェック後、unlink()を使ってファイルを削除。
>507 dクス 強引に一つのスクリプトでやろうとしてたからいけなかったのかorz
PHPってテスト実行するには鯖にうpしないといけないのか? いつもそうやってきたんだが デスクトップ上で動かすことってできねえか?
511 :
509 :2005/06/12(日) 17:03:36 ID:???
>>509 ローカルサーバの立て方調べてみ
もしくは、「Windows」「php」「Apache」でググる
すみません、教えてください。 コード「F659」といった16進で指定される文字を 出力するにはどうしたら良いのでしょうか?
>>517 今日日のクライアントPCはハード的に見ればけっしてミニとは言えないけど
ローカルマシン内でクライアントとサーバが同居して閉じた構成。
つまり仮想鯖?
だから、「Windows ローカルサーバ」でググってから、別のスレに池
>>517 サーバの定義は人によると思うけど、
WEBサーバとして機能するソフトウェア(Apache、IISなど)がそのPC内で稼動してれば
WEBサーバと言えると思うよ。
サーバに大きいも小さいもないし。
とりあえず、ApacheとPHPをインストールしてきちんと設定すれば
Win上でテストはできるよね。
もちろん、実際のサーバ上でしか使用できないモジュールなどを使う場合は
テストできないけど、それは仕方ない。
522 :
509 :2005/06/12(日) 18:05:37 ID:???
スレ違いなのにいろいろありがとうございました 是非やってみます><
Windows環境でPHP5を使っているのですが、マルチスレッドプログラミングをするにはどうしたら いいのでしょうか?
今はローカルで動作テストしないのが主流ですか? 素人の俺にはそんな荒業怖くてできんが・・・
Apache落としたが変なダイルテラオオスで意味わかねええええええ
以前からそういうヤシはいたさ。 そして今も増えつづけているのさ。
528 :
525 :2005/06/12(日) 20:26:31 ID:???
ダイル→ファイル
>>528 Apacheっていっても普通に使う限り、
設定するのに必要なフィルはhttpd.confだけだ。
ローカルでテストする初心者なんかまだいたのか。 プロならいきなりレン鯖でテストしないとなw
>>530 それ、殆どの場合、レン鯖で規約違反。
ちゃんと、ローカル環境とかでテストしてからアップしろと書かれてるはず。
>>530 うちの場合は、
データセンターに鯖は置いてあって、リモートでログインしている。
テストサーバと本番サーバを立てていて、
テストサーバへアップして動作確認している。
そもそもローカルじゃテストできない部分もあるしね。
ところで、プロでレン鯖使うのはどんな案件?
533 :
カポコン :2005/06/12(日) 22:27:10 ID:???
おっ 俺の場合は、1Pサーバーのテスト後、2Pサーバーで再テスト。 最後は、クラス鯖で各枝ごとに動作検証汁。 ハードウェア、回線エラーとかでパフォーマンス落としている 部分があればそういう部分も修復・交換しているって・・・ 全 然 、 p h p と 関 係 ね ー な
>>533 >全 然 、 p h p と 関 係 ね ー な
確かに関係ない話になってしまった。
申し訳ない。
535 :
nobodyさん :2005/06/12(日) 23:08:38 ID:F9hjAojE
まあ、いきなり公開サーバーでテストなんてDQNなことはやらないけど 最終的に借りてるサーバーいくつかで意図通りに動くかテストするわ
echo " <CENTER>テスト</CENTER>"; 表示されんのだが・・・
>>536 1. phpinfo(); - phpが動いているかどうか調べる
2. echo 'hello world'; - お約束。アルファベットのみなので文字化け等の問題を除去できる
3. echo 'てすと'; - 次へのステップ
4. echo '<center>てすと</center>'; << いまここ
つー感じで徐々に試してみたりしませんか?
538 :
536 :2005/06/12(日) 23:36:47 ID:???
>>537 サンクス
大丈夫だったんだが
<HTML>
<BODY>
<?php
//名前かメールアドレスが未記入の時
if ($name == "" || email == "" || $password1 == !! || $password2 == ""){
echo " <CENTER>入力漏れがあります。</CENTER>";
//パスワードと確認用パスワードが一致しないとき
}elseif($password1 != $password){
echo " <CENTER>パスワードが正しくありません。</CENTER>";
//名前に使えない文字が入っている時
}elseif($a == 6){
echo " <CENTER>名前に使えない文字が入っています。</CENTER>";
//パスワードが4文字未満のとき
}elseif($a == 5){
echo " <CENTER>パスワードが短すぎます。</CENTER>";
//全ての条件に当てはまらない(実行)
}else{
}
?>
</BODY>
</HTML>
だと何も表示されなくなるのよ(´・ω・`)
539 :
538 :2005/06/12(日) 23:39:42 ID:???
すまん、解決した・・・ ""が!!になってたよ(´・ω・`) エラーが表示されなくなって不便になったなぁ
>>539 >エラーが表示されなくなって不便になったなぁ
それ、設定の問題。
>>540 詳細キボン
(strpos($name,".")||(strpos($name,",")||(strpos($name,"[")||(strpos($name,"]")||(strpos($name,"(")||(strpos($name,")")||(strpos($name,"<")||(strpos($name,">")
↑省略するにはどうしたらいいだろう
strpos($name,".,[]()<>")
ってやてもできんかた
あの、すみません POSTで変数を得たいのですが 複数ほしい場合に $_POST['$a','$mail']; な感じでできますか?
>>541 php.iniかini_setで error_reportingをE_ALLにする。
どの文字も必ず含まれているなら min(strpos($name,"."),strpos($name,",")....)
そうじゃない場合は、オイラなら単純にループさせて最小の値をとるか、
正規表現で発見できるまでの文字列を抜き出してそれの長さを調べるかな。
>>542 詳しく
>>543 php.iniがない・・・
どこにあるんだ?
545 :
523 :2005/06/13(月) 00:34:13 ID:???
くだ質じゃないよなぁと思っていたのですが、あっち行ってきます(´Д⊂
久しぶりにカポコン見るな。なんかネタ振れや。またくそみそにしてやるからw
質問です。
アップローダーについて質問した
>>434-436 .
>>437 です。
お蔭様でなんとか動くようになりました。
そこでブラウザから送られていたファイル名を
日付+ファイルの拡張子
と言う名前で保存したいのですが
アップロードされたファイルの拡張子の抜き方で
行き詰まってしまいました。
$_FILES['upfile']['type'];
では「image/gif」と言う感じになるのですが
この文字列からimage部分を消し去り「/」を「.」に
置き換える位しか思いつきません。
他に良い方法があれば教えてください。
apache の mime.types みたいに mime タイプと拡張子の変換テーブルを 用意しとけば? あとはローカルのファイル名からもらうとか。
550 :
nobodyさん :2005/06/13(月) 01:49:31 ID:ZAxEnpfu
フォームからポストされた内容をcgiで受けてメールを飛ばすと同時にcsvに書き出すというスクリプトはよく見かけますが、phpで同じ事を出来るスクリプトというのをずっと探してるんですがどうしても見当たりません。 それらしきものを、自分で書いてみたんですが、一日に数十件の送信のある商用サイトなのでファイル保護に関しては全く自信がないので、そういった、ファイルロックや、保護の機能があるスクリプトがよいのですが。 #じゃあ、cgiでやればいいじゃんと言われたらそれまでですが、倉にphpで!と言い切られてしまいますた。
>>548 いろいろ答えてもらったんだから、何が原因だったか書くべきじゃ。
単なるポカミスだろうけど。
MIME型が送られてこない場合や拡張子の無いファイルをうpされた場合はどうする?
必ず拡張子はついていると言う前提なら、
preg_replace('/^.*?\.([^\.]+)$/','$1',$filename);
で、どぉ。
倉(´・ω・) カワイソス 次の犠牲倉を出さないためにも、スクリプトを探すつー後ろ向きな事をしてないで、 ファイルロックや保護の機能を書く方法を探すべきでは?
っていうか。
>>548 phpで書かれたUpLoaderスクリプトを探した方が早いんじゃね。
>>550 カウンタスクリプトのファイルロックでも参照すれば。
スレ違いだな。
>>552 同意
$_SERVER["UNIQUE_ID"] というのは、どういう値でしょうか?
555 :
492 :2005/06/13(月) 07:28:22 ID:1UN/nKO7
>>548 image/pjpeg
というのもあるからその方法は使えない
日本語名のファイルを登録させないようにしたいのですが 制御する方法が分かりません。ググっても見つかりません・・。 ご存じないでしょうか?もしくは不可能なのでしょうか?
正規表現使って弾けばいいんじゃないだろうか
$exp = strrchr($_FILES["hoge"]["name"], "."); $hogeName = date("Ymd"). $exp; なんかこんなカンジでいけたはず
>>557 日本語を使っているファイル名をはじくのではなく、
英数字以外を使っているファイル名をはじけばいいのでは?
561 :
557 :2005/06/13(月) 15:36:19 ID:???
>>560 中国語やハングルは許可したいのです
すいません
フォームのデータ送るとき POST使えないのは仕様? とりあえずGETで送信して$_GETで拾ってるんだが
563 :
562 :2005/06/13(月) 16:24:20 ID:???
ああ、すまん、自己解決 $action = $_POST["action"]; $name = $_POST["name"]; $password1 = $_POST["password1"]; $password2 = $_POST["password2"]; $class = $_POST["class"]; これを一行に省略したりできる?
564 :
557 :2005/06/13(月) 16:25:04 ID:???
565 :
562 :2005/06/13(月) 16:26:26 ID:???
extractで自己解決しました
566 :
nobodyさん :2005/06/13(月) 16:36:29 ID:DISdzlt3
うはwwwww trimって全角の空白削除されないのかwwwwww
567 :
562 :2005/06/13(月) 16:36:56 ID:???
>>565 誰かしらんがサンクス!
そんな便利な機能があったとは
>>565 >>563 のような変数の初期化を面倒くさがる奴の
書いたスクリプトでは全般的に変数の初期化が甘いと思われ。
そんなスクリプトでextractなんて使っちゃ駄目。
php.iniってどこにあるんですか?
>>569 findして見つかったところ。そのファイルが有効かどうかは
お前さんの使っているPHPに依存する
571 :
569 :2005/06/13(月) 17:23:42 ID:???
findしてなかったんだが
>>569 そのPHPがどうやってインストール(configure)されたかによる。
>1に「質問する際には環境も明記。」とあるのも読んでくれよ
PHPって鯖上で動くんだよな・・・ インスコしないといけないのか?
>>571 うーん、じゃあ無いんじゃないか。別に無くてもPHPは動くし、
必要な場合にはdistやrecommendedを参考に作ることになってるわけだから。
PHP5.0.4インスコした。 探したがiniないぽ
環境を書けと言ってるだろうが!この本7野郎が!(/-o-)/ ┫
xp
うなwwwwiniハケンしたwwwwwwww error_reportingたくさんあったが全てE_ALLになってた(´・ω・`)
Windows系にPHPを入れた場合、 php.iniは自分で適切な場所に”作る”必要がある。
php.ini作成シマスタ! display_errorsをとりゃえずOnにしてみたが・・・
>>573 MS officeってwindows上で動くんだよな・・・
インスコしないといけないのか?
583 :
nobodyさん :2005/06/13(月) 18:02:44 ID:l4UuiYUQ
質問させてください、winXP+PHP4.1を使っています。 perlでやるところの $text{head_sp_$text{kt}} こういう書き方を PHPで同じように $text[head_sp_$text[kt]] こうしてみたのですが、エラーがでてしまいます。 {$text[head_sp_$text[kt]]} や $text[head_sp_{$text[kt]}] や $text[{head_sp_$text[kt]}] こんなこともやったのですが全て Parse error: parse error, unexpected T_VARIABLE, expecting ']' in 〜〜 と言うエラーがでてしまいます。 アドバイスいただけると幸いです。よろしくお願いします。
>>583 <?
$text[kt]="hoge";
$text[head_sp_hoge]="good";
print $text["head_sp_".$text[kt]];
?>
good と出ますた
もしかして自宅鯖じゃないと php.iniの設定は反映されないのか?
586 :
583 :2005/06/13(月) 18:38:21 ID:???
>>584 レスありがとうございます。
$text["head_sp_".$text[kt]]としてみましたが、
"parse error, unexpected T_ENCAPSED_AND_WHITESPACE"
このようなエラーが出てしまいダメでした。
でふと思ったのですが、私はこのような使い方をしているのですが
これに問題があるのでしょうか?
<?php
print<<<HTML
</td></tr></table>
<hr size=1 width=780>
<table width=780>
<tr>
<td class=title3>ピックアップ情報</td>
</tr>
<tr>
<td>
$text["head_sp_".$text[kt]]
HTML;
?>
print<<<HTML
この間に
$text["head_sp_".$text[kt]]
を入れて正常に動かしたいのです。
HTML;
私の把握不足で情報の小出しになってしまってすいません。
もう一度お力添えをお願いします。
587 :
555 :2005/06/13(月) 18:40:37 ID:1UN/nKO7
誰か相手してくれよぉ
>>586 {$text["head_sp_".$text['kt']]}
{ } を使って変数部分を明示的にする。
>>586 <?
$text[kt]="hoge";
$text[head_sp_hoge]="good";
print<<<HTML
・
・
・
${text["head_sp_".$text[kt]]}
HTML;
?>
素直に一度変数に入れたほうが、きれいになるのでは。
591 :
590 :2005/06/13(月) 19:00:58 ID:???
ああ、重複orz
592 :
548 :2005/06/13(月) 19:01:36 ID:???
>>549 まだ勉強して間もないので難しい事は出来ないです。申し訳ないです。
>>551 そうでした。結果報告が抜けてましたね。。。
掲示板に投稿後色々と教えてもらいましたが、結果全て旨くいかず、
自分の環境が悪いのかな、と半ば決め付けその日は不貞寝しました。
その翌日、不思議な事に正常に動いていたので何が原因だったのかは
スクリプトには特に変更点は無いので、良くわかりません。。。
やっぱり環境かな?っと言う事で納得しています。
>>553 それが無難なのは解りますが、ヒントから勉強できれば少しは自分の物に
出来るかなっと、生意気言ってみました。
>>559 「strrchr」がネックでしたね。とても参考になりました。
私が100%望む動作をしてくれました。
皆さん改めて有難うございました。
593 :
nobodyさん :2005/06/13(月) 19:11:55 ID:QMcSO9eW
URLへジャンプし、その際のターゲット属性を指定できる関数ってありますか?
>>593 ブラウザの挙動としては、
targetが指定されたウィンドウ(該当が無ければ新しいウィンドウをオープン) ”から” ジャンプ先のURLが鯖にリクエストされます。
要は、リクエストの前にターゲットが決まってないといけない。
595 :
nobodyさん :2005/06/13(月) 19:45:51 ID:QMcSO9eW
<iframe src="xxx.html" name="hoge"> 上記のようにフレームを作り、PHPでtargetを"hoge"、 つまり上記のフレームにしてフレーム内だけが更新できればと考えているのですが、 説明不足ですみませんでした。 Javascriptでも hoge.location.href="yyy.html"; として試してみたのですが、 挙動がありませんでした。
>>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>
597 :
nobodyさん :2005/06/13(月) 21:00:39 ID:AKgu0aiw
$_SERVER['HTTP_USER_AGENT']が定義されないのはなぜなんでしょうか。 print_r($_SERVER)で見ると、ひと通りはいっているようですが、HTTP_USER_AGENTだけがありません。 googleで環境変数を診断してくれるサイトで確認すると、きちんとUSER-AGENTが取れてます。 サーバーはOpenBSD3.2 apache1.3.27 PHP4.3.8/4.3.11 クライアントはWinXP & IE6で確認しました。
598 :
nobodyさん :2005/06/13(月) 21:08:33 ID:QMcSO9eW
>>596 そうですか。ありがとうございました。
外部のページを読み込んで更新を何秒ごとかに行いたかったのですが、
どうやらPHPはページの操作という概念自体が違うようでしたね。
JSで頑張ってみることにします。
>>597 ノートン先生がごるぁしているとか。
Apacheのログにユーザーエージェントがはいっていないなら、PHPの問題ではないと思われ。
webサーバーの再起動ってなんだ? 要するにPC再起動ということか?
>>602 Apache再起動。
出来ない環境ならini_setすれば?
質問する前にマヌアル読もうな。
605 :
600 :2005/06/13(月) 22:40:17 ID:???
鯖はレンタルさばくぃhじゅ、l;、
>>604 IIS?なんでもいいよ。Webサーバの再起動ね。
で、
>>606 のようにレン鯖で再起動出来ないならini_setしろって事ね。
レンタル鯖でPHPエラー発生したがエラーが表示されない。 エラーを表示させるためにPHP.iniを書き換えた ってことだな?
>>608 そそ
レンタル鯖だとどうしようもないよね
みんな!大変だ!Smartyスレが落ちた!!
PHPの開発ツールで お勧めなものを 教えて神さま。
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
615 :
P :2005/06/14(火) 10:47:27 ID:bHEGAoWT
PHPでセッションを利用したログインページを作っています。 ユーザがログアウトを選択すると、ログアウトページにリダイレクトされ、 このページ内でセッションを破棄するようにしているのですが、 IEやネスケではログアウトページに飛んだ時点で自動的にちゃんと破棄できるのに、 OPERAで試したところ、ログアウトページが表示されてからさらにブラウザの更新ボタンや 自動更新設定でいちいち再読み込みさせないと、ちゃんと破棄されないようです。 自動的かつ強制的にこのページを再読み込みをさせる良い方法はないでしょうか? headerで自ページにリダイレクトしなおすようにするとか、考えていますが・・・ ちなみにMetaタグのRefreshも試してみましたが、再読み込みが繰り返し行われることになり視覚的にいまひとつの結果でした。。。 どうかお知恵をお貸しください。よろしくお願いします。
616 :
nobodyさん :2005/06/14(火) 11:50:23 ID:kWRonEc7
今回PHPのバージョンを4.2から4.3にあげたら 今まで作動してたPHPプログラムが大量にエラーが でるようになりました Notice: Undefined index: name1 in C:\Program Files\Apache Group\Apache2\htdocs\e-rescue\common.php on line 106 Notice: Undefined index: name2 in C:\Program Files\Apache Group\Apache2\htdocs\e-rescue\common.php on line 106 Notice: Undefined index: kana1 in C:\Program Files\Apache Group\Apache2\htdocs\e-rescue\common.php on line 106 こういう感じでぞくぞくでます バージョンを4.2.2にさげると正常にうごきエラーが全く表示されません 結局バージョンをあげるのをあきらめんたんですが・・・ ちなみに4.2.2でつくったプログラムを実鯖のほうにあげるとエラーがでません ここのPHPは4.3です。 なぜエラーがでるのかおしえてくださいお願い致します。
>>616 php.iniの設定が違うだけ
バージョンは関係ない
error reporting参照
>>613 お前のバグだろ
スクリプト晒さないとわからんよ
619 :
nobodyさん :2005/06/14(火) 12:35:35 ID:kWRonEc7
iniの設定は本によって違うからわかりません 具体的にどの変がまずいの?
622 :
nobodyさん :2005/06/14(火) 13:36:48 ID:kWRonEc7
Fatal error: Call to undefined function: mb_convert_encoding() in C:\Program Files\Apache Group\Apache2\htdocs\keizi\common.php on line 27 さきほどのは解決しました こんどはこれがでます・・・わけ分からん これもphp.iniのどっかを修正したら直るんですか? バージョンさげるとでなくてあげるとでます
>>622 4.3でmb系の関数がインストールされてないんだろ。
624 :
nobodyさん :2005/06/14(火) 14:19:14 ID:kWRonEc7
古いバージョンの拡張モジュールをすべてコピーしたら 解決しました 新しいバージョンってインストールするだけなら拡張モジュールは インストールされないの? 昨日狩ってきた本にはPHP.iniの設定には全く触れてなかっただけど 本によっては設定したりしなかったりわけわからん
>>624 解決したのはいいが、ヒントをいただいた人にお礼は?
>>616 のエラーは本に書いていない為→本が悪い
>>622 はPHPインストーラが悪い。
なかなか幸せな人だな。もともとこのスレは、
「エラーが出なくなったから解決しました」というスレじゃない。
「エラー発生の要因が理解できました」というスレだと思う。
「わけわからん」と何度も出てくるのは、お前のの努力が無い為だ。
「のの」...orz
>>555 コマンドラインから標準入力に食わせたら、ちゃんと動いたぞ。
HTTP_Requestを直に使うよりラッパーのHTTP_Clientを使ったほうが楽かも。 ちなみにHTTP_Clientの同一インスタンスで続けてリクエストを送ると リファラとして前のURLを送るようになってる。
php.iniはUNIX版でも標準ではインストールされないよ。 RPMとかのパッケージは知らないけど。
630 :
nobodyさん :2005/06/14(火) 22:11:03 ID:xUEq8aOa
PHPであるディレクトリの下のディレクトリをサブディレクトリも含めて 全部再帰的になめるようなスクリプトのサンプルってないですか?
631 :
nobodyさん :2005/06/14(火) 22:13:22 ID:SqdfIv7m
>>625 お礼をいうのは忘れてました
>>616 ありがとうございました
これからも皆様、ご指導ご鞭撻のほうよろしくお願い致します。
エラーが表示されないのですがなぜでしょうか・・・? PHP4のWinXPです。 land.toという鯖を使っています。
>>629 php.iniは2パターンのモデルがあるから(PHP5だけたっけ?)
インストールされてないからってどっかから拾ってきたり、
一から書いたりするもんじゃないよね。
まぁphpinfoでどこにini置くべきかもわかるし、大した問題じゃないだろ。
>>632 だからよ〜、ini触れない(Webサーバの再起動が出来ない)場合は
ini_setしろってさんざん上に書かれてたろ?
使い方わからねーならマニュアル読め。
上の方でiniの書き換えが出来たって言ってた奴がいたが、
普通書き換え出来ないだろ。どんなレン鯖だよそりゃ。
なんかのタイミングでWebサーバの再起動かかったら、
スペース借りてる全員に影響出るじゃねーか。
>>632 ini_get_all()を使ってエラー(表示)関係の設定がどうなっているか調べてみれば?
設定の内容については、マニュアルの エラー処理およびログ記録関数 を参照。
よくみつけてきたなw
638 :
632 :2005/06/15(水) 09:04:41 ID:OSAX0u8g
つまりini_setして実行すればいいのか?
>>638 error_reportingがどうなってる?
640 :
638 :2005/06/15(水) 09:28:39 ID:OSAX0u8g
>>639 うはw display_errorしかみてなかった
今学校でマックなので帰ったら見てみます...
>>640 可能なら、phpinfo()を実行して、エラー関係がどんな設定になっているかみてみ。
それから、error_reporting(0)でないのを確認して。
Mojavi本家落ちてるな
>>597 自己解決しました。
PukiWikiっていうPHPのWikiで、とあるSkinでブラウザごとにCSSを切り替える
ところがうまく動作しなくて困っていたのですが、処理がSkinに渡るずっと前の
ライブラリinit.phpあたりでunsetされてました。
>>599 というわけでした。すいません。
645 :
nobodyさん :2005/06/15(水) 16:37:10 ID:ItJyvgZj
<FORM ACTION="<?php echo( $_SERVER[ "PHP_SELF" ] ) ?>" METHOD="POST">プルダウン <SELECT NAME="KEYWORD"><OPTION VALUE="甲子園口" <?php echo( ( $_REQUEST[ "KEYWORD" ] == "甲子園口" ) ? "selected" : "" ); ?>>甲子園口</SELECT><INPUT TYPE="RADIO" NAME="VALUE_RADIO" VALUE="マンション" <?php echo( ( $_REQUEST[ "VALUE_RADIO" ] == "マンション" ) ? "checked" : "" ); ?>>マンション<INPUT TYPE="RADIO" NAME="VALUE_RADIO1" VALUE="マンション" <?php echo( ( $_REQUEST[ "VALUE_RADIO1" ] == "マンション" ) ? "checked" : "" ); ?>>マンション<?php $AddressData = LoadcsvFile( "./data/m_addr.csv", "EUC_JP", "SJIS" ); if ( $AddressData == false ) { echo( "データはありません。" ); } else { ?><TABLE BORDER="1"> <?php for ( $i = 0; $i < sizeof( $AddressData ); $i++ ) { $line = explode( ",", $AddressData[ $i ] ); $match = true; if ( $_REQUEST[ "SUBMIT" ] != "" ) { if ( ( strstr( $line[ 0 ], $_REQUEST[ "KEYWORD" ] ) != false ) && ( strstr( $line[ 1 ], $_REQUEST[ "VALUE_RADIO" ] ) != false )&& ( strstr( $line[ 2 ], $_REQUEST[ "VALUE_RADIO1" ] ) != false )) { $match = true;} else {$match = false;}} if ( $match == true ) {?><TR> <TD BGCOLOR="#FFFFCC"><?php echo( $i + 1 ) ?></TD> <TD><?php echo( $line[ 0 ] ) ?></TD> <TD><?php echo( $line[ 1 ] ) ?></TD> <TD><?php echo( $line[ 2 ] ) ?></TD> <?php}}?></TABLE><?php}?> <INPUT TYPE="SUBMIT" NAME="SUBMIT" VALUE="検索"> csvの初歩の検索プログラムをつくっているのですが 条件を三つにしたら機能しません。 二つなら正常に検索するのですが 条件を三つつなげることはできないのでしょうか
>>645 ソースは汚いし説明は良く分からんわで、質問を正確に理解できてるか自信ないけど、
比較の時のcsvの格納順序($line[])と各条件の対応がおかしいだけじゃないの?
647 :
638 :2005/06/15(水) 17:07:05 ID:???
error_reportingが2047になっていました・・・ ん^・・・
648 :
638 :2005/06/15(水) 17:25:00 ID:???
あれ?2047って全てのエラー表示するんじゃ・・・
649 :
638 :2005/06/15(水) 18:09:49 ID:???
string ini_set ( display_errors , "on"); で実行してみたが何もかわらん・・・ 何がおかしいか教えてくれよたのむから(´・ω・`)
>>649 なー、land.toのサポートフォーラムで聞いた方がはやくねーか?
>>649 やっぱあったぞ。
tp://www.land.to/supportbb/viewtopic.php?t=129&highlight=php+error
ini_setではなく.htaccessで制御するみたいだ。
ん? land.toというのは貸鯖屋のOSはWinXPなの?
>>632 エラー表示とは関係ないんだけど、なにか違和感を感じる。
>>652 632じゃないけど……
FreeBSDだって書いてあるよ。
多分自分のPCのことじゃないか?
654 :
638 :2005/06/15(水) 18:24:19 ID:???
うはwwwland.toじゃなかった 090webserverだたwwwwwwww Linuxですた(´・ω・`)
>>649 マニュアルって知ってる?
マニュアル知ってると便利だよ。
PHPの本家サイト知ってる?
そこからドキュメントに辿れるから調べてみたらどう?
あ、マニュアルって書くからわからなかった?
documentationって単語でリンク張ってあったよ。
頑張ってね。
サンクス、やっとエラーできたよ(´;ω;`) 教えてくれたひとマジ感謝してるよ .htaccessにphp_flag display_errors onと書き込んだ
657 :
nobodyさん :2005/06/15(水) 18:55:22 ID:SDEIoMgZ
僕はデザイナとして応募したのですが なぜかPHPをやってみないかといわれPHPをやるはめになりました Cは少しできると面接のときにいったら、Cができれば、PHP なんて屁でもないといいました ほんとにCが少しできればPHPは楽勝でしょうか? ぱっとみ全く別物のようなきがするのですが・・・
>>657 Cが理解出来る能力があるなら、PHPは確かに
屁でもないだろうね。
マニュアル読めば、ある程度はすぐ理解出来ると思うよ。
関数リファレンスにはサンプルもだいたい書いてあるしね。
ちなみに俺は今VC++勉強しようと思ってるけど、全然わからん。
手続き型の言語を1つでもかじっていれば、さほど習得は難しくないよね。 むしろ、PHPという言語自体より、webprogをやる上での知識の取得の方が大変かと。 httpの仕組みやら、メールの仕組みやら、データベースの仕組みやら etc.
興味の問題もあるだろうね。
661 :
nobodyさん :2005/06/15(水) 21:20:13 ID:YLKUB4y/
PHP5にビルトインされてる、PHP SOAPって高負荷時に(CPU100%など)エラーが出る。。 例外もキャッチできないし、エラーログにも残せない。。 enable_memory = 512Mに設定中。 topコマンドで見るところ、メモリはそんなに使い切ってない感じ。 だれか対処法わかります?
662 :
661 :2005/06/15(水) 21:22:45 ID:YLKUB4y/
正確にはエラーでなくて、レスポンスが返ってこない。
現在DBに既に存在しているテーブルから逆算(?)して、 そのテーブルと同じ構造の(空の)テーブルを生成するためのSQL文を 作ることはphpスクリプトで出来ますでしょうか?? そういうスクリプトを作ろうと思って、 いきなり「現在のテーブル構造の照会」をどのようにやるかでつまづきました。
仕事での顧客管理をデータベース化すべくPHP+MySQL本を購入して勉強中なのですが、 ひとまず掲示板の作り方を通じてごく基本的なPHPとMySQLの使い方はなんとかつかめたのですが、 通常PHPを利用したウェブサイトを作成するときにどのような開発環境を用意すべきなのでしょうか? いままでHP作成にはDreamweaverMXを利用していたのですが、 大まかな部分を普通に作ってからコード表示にしてPHPを記入、というやり方でいいのでしょうか? たとえば検索結果のテーブルを表示するページを作る場合、 まず中身が空っぽのテーブルを作ってもろもろのレイアウトを決めた後で、 <TR>〜</TR>を切り取ってそこに結果表示するPHPを記述する、 といったようなやり方になるのでしょうか? PHPエディタとかEclipse+PHPプラグインとか開発環境はいろいろあるようなのですが、 これらは結局HTMLのデザイン的な部分についての機能は見当たらないので、 そこらへんの基本的なノウハウをお教えください。 よろしくおながいします。
追加で質問です。 入門用の本を読んでいたときに、サンプルのコードの中に「 _ 」という記号が使われているのですが、 どういう意味を持つのかわかりません。 たとえば、 $body .= "<IMG src='image/hp.gif' width='88' _ height='20' border='0' hspace='5'>"; といったカンジです。 途中で改行するときに入れる必要があるのでしょうか?
666 :
nobodyさん :2005/06/15(水) 23:27:03 ID:YLKUB4y/
テーブルの内容をダンプすればいいと思う
>>665 その入門書のはじめの方に注釈があるはず。
「実際には繋がって(改行せず)ますよ」ってこと。
そのまま写すと大抵エラーになるよ。
>>663 それを答えるのに必要な情報を提示しない理由は?
670 :
664 :2005/06/15(水) 23:52:34 ID:???
即レスどうもありがとうございます。
>>667 つまり本で記述するときに行がつながっていることをあらわすために
便宜的に使われている、ということでしょうか?
実際に入力する際には無視することにします。
>>669 分離が可能なのですか・・・。
目からうろこが・・・。
いろいろ調べてみることにします。
PHP5のSoapClientをWSDL使ってインスタンスにし、 メソッドの引数が構造体である場合どのように構造体を実現すれば良いのでしょう?
673 :
nobodyさん :2005/06/16(木) 00:39:10 ID:3ZI3JzMn
仲間内で使うサイトをphpで作っています。
別サイトにある画像貼付けBBSに、
http://www.hoge.com/home/home/bbscgi/data/HOGEIMG_XXXXXX.jpg のようなファイル名で画像がうpされます。
HOGEIMG_は固定の文字列
XXXXXXは0パディングの数字(時間などではなく000001の次は000002という具合)
ただし、この数字は投稿と同じ番号が付くので、画像のアップのない投稿があった場合、画像は欠番になります。
なんとかphpで、最新10件の画像URLを自動的に取得することはできない物でしょうか?
いまのとこ手動でforループで画像URLを生成してimgタグで埋め込んでます。
当然、欠番が出るとそこは「画像が見つからないアイコン」が醜く出てしまうし
これから投稿されるであろう画像URLも実際に投稿されるまでは「画像が見つからないアイコン」になっています。
forの$iの値は頃合いをみて書き換えないといつまでも同じ画像が表示されてしまうという状態。
条件の$i<=N
のNを今の番号より10くらい多めに設定ということを毎日やってます。
なんか、うまい方法があれば、アドバイスをお願いします。
rpmのphp(レッドハット製?)のspecと php-4.3.11.tar.gzに入っているsepcとだいぶ違います。 (レッドハットの方は複数のパッケージが作られる。) しかもrpmの更新が遅い気がします。 皆さんはtarから コンパイルしてインストールしているのでしょうか
>>673 ファイルの更新日時を取得すれば解決。
しかしそもそものデータの作り方自体に欠陥がある。
>>673 そういうトリッキーな事をするより、正しいデータが取得できるBBSのページを解析した方がいいんでないの?
出力されているhtmlをよーくみれば、各投稿で生成される構造が見えてくるよ。
>>674 各ディストリビュータ(redhatとか)が オイラの利用者にはこういう設定でいいや と決めたspecなので、
オリジナルとは変わる可能性があります。
その設定に不満がある人やrpm化されるまでの時間差が耐えられない人は、
自分でコンパイルすることになるでしょう。
678 :
673 :2005/06/16(木) 01:26:24 ID:3ZI3JzMn
>>675 YYYYMMDDHHMMSS.jpegみたいな感じだったとしても、今度は、あり得る画像URLを生成してそれの存在を確認するとしたらえらいことになりそうな気が。
※画像を貼るBBSは別の鯖なんです。
>>676 画像を貼るBBSが吐き出すhtmlで、なんとなく目星はついてきました。
やはり、丸ごとそのページのソースを取得してそれをごにょごにょ、で画像ファイル名を抜き出し、配列に入れてforで<img src〜>って感じですかね?
>>674 RHL9以前は保守終了してるんだけど。
>>674 RHELのrpmのSPECを参考に、最新のPHPのtarballを利用した
パッケージ作って、それを使ってる。patchは古いものの多く
(既に今のバージョンで適応済み)は削除して、一部に
他のディストリ由来のものを追加、リリース後CVSで改修された
ものの内で必要なものをpatch化して、それも充ててる。
PHPのバージョンに関して古い互換性を考慮しながらやる必要が
自分の場合はないので、結構適当にパッケージ化してる(台数はそこそこあるので)。
>>672 レスありがとうございます。
リンク先覗いてみましたがとても興味深いです。
まだまだ初心者ですが、最終的にはこのあたりのことも視野に入れて学習しようと思います。
>>668 663が情報開示しないのだから、こっちも分かる範囲で
基本的には「できる」ってこたえておけばいいんじゃね。
683 :
nobodyさん :2005/06/16(木) 12:05:55 ID:CwEuwFbG
Windowsの環境でmkdirでフォルダを作成すると読み取り専用になってしまう ようなのですが、これを0777というふうに出来ないでしょうか?。PHPで自動で 削除したフォルダをPHPで削除したいと考えているのですがパーミッションがぁ と怒られてしまいます-;。
Windowsでは無理なんじゃね?
>>683 IIS の環境だけど、普通に mkdir, rmdir できてるけどなぁ。
作成したフォルダの所有者は、WEBサーバーを実行しているユーザー名になってる?
686 :
nobodyさん :2005/06/16(木) 15:59:01 ID:JmLWFhKu
PHPからMYSQLへデータを追加したらありえないぐらい文字化けします。色々調べましたがわかりません PHP4.3.11 保存コードEUCでブラウザ表示はSJIS設定 でphp.iniを設定 MYSQL文字コード sjisで文字化け ujisに変更しても文字化けで 登録されます。解決策をお教えいただけるとありがたいです。
MYSQLの文字コードSJISなの?
Notice: Undefined offset ( ゚д゚)ハァ?ナンダソリャ
>>688 それだけ提示されてもエスパーではないので……
Notice: Undefined offset: 21 ********** 37 から Notice: Undefined offset: 1 ********** 37 までズラーっとエラーでたぽ・・・ 37行目は list($a,$b,$c,$d,$e) = explode( "\t", $count[$i]); なんだが何がおかしいぽ・・・
<?php error_reporting(E_ALL); $a[0] = 0; for ($i = 1; $i < 22; $i++) { echo $a[$i]; } ?>
$count配列に offset の値(21とか1)の要素がないんだろ 教わりたいんならマジメに書けよ
エスパー志望です。
>>688 1.配列の要素数が期待されているものと違う。
2.配列の要素の型が期待されているものと違う。
3.配列が期待されているところに配列以外を代入している。
offsetの後に表示されたのが
0なら2.か3.
0以上なら1.
いかがでしょうか。
694 :
nobodyさん :2005/06/16(木) 17:33:08 ID:JmLWFhKu
たとえば、ローカル環境がWinだとして 保存コードがSJIS ブラウザ出力がSJISでiniを 設定していたとして、ローカルではうまくいくけど 実サーバがLINUXだったときとかの場合やっぱり スクリプトを実サーバ用にあわせて改良しないと駄目なんですか?LINUXではEUCコードとかあとデータベースとかでローカル環境では正常だけUPしたら文字化けとか・・・いちいちめんどいですねぇ>< 実際の開発する人はこの辺をどういう風にしているんでしょうか?
>>694 いちいち多様な環境に合わせるような面倒くさいことはやりたくないので、
最終的に使用する環境にテストの方を合わせて作業する。
まあ余力があるならスクリプトの方を両方の違った環境に対応するように作ったら?
テスト環境がwinでもEUCに統一しておけば面倒や余計な処理が無くなる気がしますが。。
.htaccessにphp_flag display_errors onでエラー表示をONにできますが php_flag error_reporting 2047という風にerror_reportingも変えることはできないのでしょうか?
print $HTTP_USER_AGENT; で何も表示されないのはなじぇでちゅか?
>>700 phpinfo()で確認してみまちょうね〜
702 :
nobodyさん :2005/06/16(木) 19:04:27 ID:2f2I+b9c
>>695 最初はそうしてたんだけどね
MYSQLをWINで使うにはSJISで統一しないと
文字化けするんだよ・・・
これしか方法はないらしい
703 :
nobodyさん :2005/06/16(木) 19:20:58 ID:2f2I+b9c
なんか、最近求人情報でPHPプログラマ募集 の広告みなくなったな・・・ PHPはきえていくのだろうか・・・俺PHPしか使えないのに・・・ 30歳だし
704 :
nobodyさん :2005/06/16(木) 19:36:10 ID:IS4stV05
環境は、RH9.0 php4.3.5 qmail1.03の自宅サーバーです。
qmailから渡されたメールをコマンドラインで処理するスクリプトが作動せずに困っています。
アカウントの.qmailファイルには「|/(スクリプトのPATH)」と記載してあります。
テスト用スクリプトは以下のような内容です。(某板の住人さんに書いて頂きました)
#!/usr/local/bin/php
<?php
$stdin = fopen('php://stdin', 'r');
$line = fread($stdin, 1000);
mail ("
[email protected] ", "test", $line);
?>
スクリプトのパーミッションは755で、ファイルオーナーはrootになっています。
maillogには「delivery 1: deferral: Could_not_open_input_file:__./ 」と出ています。
qmailが悪いのかphp-cli.iniが悪いのか、その他の原因があるのか想像も付きません。
どなたかお気づきの点がありましたらご教授お願い致します。
PHPだけ出来てもなぁ…
>>704 おもしろそうなので、やってみましたけど動きましたよ。
(Solaris10、PHP5.0.4、qmail1.03)
普通に sh ./スクリプト で実行してみて、キーボードから適当に文字を
入力して、
[email protected] 宛に届きます?
>>702 Windowsの「コマンドプロンプト」が対応してないだけ<文字化け
709 :
704 :2005/06/16(木) 21:10:42 ID:IS4stV05
>707さん 早速のレスありがとうございます。 Linux歴2ヶ月で、2ヶ月間でようやくウェブ公開まで漕ぎつけた所なのですが、 残念ながら勉強不足のため、「普通に sh ./スクリプト で実行」の意味が 理解できません。( ´・_・`) sh /(スクリプトのパス) とやってもsyntaxエラーがでてしまいました。 具体的にどのようなコマンドを打てばいいのでしょう?
PHP4で、再帰的にディレクトリを作成するにはどうしたらいいでしょう。 PHP5なら mkdir("foo/bar/baz", 0777, true) みたいに第3引数にtrueを指定すればよいみたいですが。 どうぞよろしくおねがいします。
712 :
707 :2005/06/16(木) 22:20:46 ID:???
>>709 スラッシュの前のピリオドが抜けてるみたいですが。。。
間違えにくいように、確認手順を変更すると共に、具体例を書きますね。
スクリプト名やディレクトリ名は読み替えてくださいまし。
テスト用スクリプトのファイル名 hoge.php
上記スクリプトが存在するディレクトリ /tmp
この状態でLinuxのコマンドプロンプトから以下を入力する。
"test" の後ろの縦棒はSHIFT キーと \ を押した文字です。
echo "test" | /tmp/hoge.php [Enter]
これで、
[email protected] 宛にメールが届けばスクリプトそのものは
問題ないと思います。。。という意図が先のカキコでした。
>>710 function __mkdir($path) {
if (is_dir($path)) return;
__mkdir(dirname($path));
mkdir($path);
}
__mkdir('/path/path/path/');
>>710 >>713 さんのように一階層毎に作成するか、UNIX環境なら以下でもOK
system('/bin/mkdir -p foo/bar/baz');
すみませんが、質問させてください。
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);
?>
>>713 これって、__mkdir('path/path/path') のように先頭の / がない状態で
呼び出されると無限ループしそうな希ガス
if ($path == "" || is_dir($path)) return;
のほうがいいんぢゃね?
最近、PHPでWebプログラムを始めたのですが、(おそらくPHPに限らず)無限ループをCGI上で起こした場合の挙動について知りたいのですが、一般的にCGI(PHP)実行のタイムアウト時間などが設定されていて外部から実行が強制的に終了されることなどがあるのでしょうか? また、無限ループ、もしくは限りなくランタイム時間が長いCGIを実行中にユーザがブラウザの中止ボタンを押す、もしくはブラウザを終了させた場合は実行中のCGIがその場で終了されると思っていいのでしょうか? レンタルサーバ(FreeBSD)でWEBを構築しているのですが、共有サーバなのでもしもを考えて、実験するにも気が引けています。 やってはいけないのは分かっていますが、それ以上の情報がないので疑問に思っています。
PHPとMySQLを学習中なのですが、 MySQLのコマンドラインからSQL文を入力するときは文末に「;」が必要ですが、 PHP中でSQL文を発行するときには文末に「;」を全くつけていません。 入門本でもそこに関する記述が見当たらないのですが、 必要ないのでしょうか?
719 :
nobodyさん :2005/06/16(木) 23:28:57 ID:i9vZ9WMb
教えてください。 ApacheとPHP5で掲示板を作っているのですが、「標準出力」に書き出せばブラウザに表示されると思ったところ 例1:print('aaa');→確かにブラウザに表示される 例2:readfile(FileName);→確かにブラウザに表示される 例3:$FH=fopen('php://stdout','w'); fwrite($FH,'aaa');→ブラウザ真っ白 flush($FH);しても同じ 自分としては例1例2と同様にブラウザに送られると思ったのですが… なにか使い方間違っているのでしょうか。
>>717 仕組みはあるよ。その環境でそういったことをしてるのかは知らんが。
PHP限定でいえば、max_execution_timeとか。
CGIはプロセス監視して怪しいのは殺すとか。
ただサーバモジュールで動いてるphpやmod_perl/rubyとか、
リソースの細かい制限はちと難しいね。
>>718 PHPからMySQLにクエリを発行する場合、
1クエリ関数で1クエリが完結していないと駄目という
制限があるので、自ずとセパレータの;の出番がなくなる。
使うのは精精クエリにコメントを含める時ぐらいだろうか。
724 :
723 :2005/06/17(金) 00:09:16 ID:???
725 :
715 :2005/06/17(金) 00:12:35 ID:???
>>720 すいません、問題はpopenした$handleからfgetsで
文字列が取得できないことです。
・パスは間違っていないと思います。
以下のような、構成です。
htdocs/
chasen.php ・・・問題のPHPファイル
chasen.exe ・・・茶筅バイナリ
libchasen.dll ・・・茶筅DLL
libiconv-2.dll ・・・iconvDLL
dic/ ・・・辞書ディレクトリ
・''括りに問題が無いか、確認してみます。
・SJISでmb_convert_encodingしているので大丈夫だと思います。
>>719 fwrite()の出力先は標準出力ではない。
727 :
nobodyさん :2005/06/17(金) 02:12:27 ID:5rfnraoS
質問をさせていただければと思います cronで、こまんどらいんのPHP(4.2.?か4.3.?・・・あいまいですみません。) をたたいた場合、 PHPコードの中で、cronを実行したユーザ名を取得できますか? それが、できればベストなんですが、 あるいは、もしできないとしたら、 cron で、シェルスクリプトを実行した場合、 シェルスクリプトの中で、cronを実行したユーザ名を取得できますか? もしできれば、シェルスクリプトの中でphpファイルを叩くとき、 引数にそやつを入れられるので、なんとかなるのですが・・・ よろしくお願い申し上げます。
>>727 相応の関数があるかもしれんけど、思いつきで、
$user=`/path/to/whoami`;
729 :
727 :2005/06/17(金) 02:36:56 ID:???
>>728 あ、そっか。なるほど。どもです。
ところで、
$user=`/path/to/whoami`; ってperlの文法じゃなかったでしたっけ?(汗
$user = system("/path/to/whoami"); ・・・かな?
あーでも、PHPで#でコメントアウトできるってこないだしったばかりだからなー・・・
かんちがいしてるかも
両方試してみ。
>>713 ,714
どうもありがとう。再帰使う方法は自分でも考えたんですが、PHPならもっと直接的な方法があるかなと思って。
>>716 dirname("/") は "" じゃなくて "/" になるから、if ($path == "/" || is_dir($path)) return; にしました。
732 :
nobodyさん :2005/06/17(金) 09:08:57 ID:2OXsSqlQ
FORMでデータを受け取る場合 <input type="text" name="name">とあった場合 スクリプトのほうでうけとるには $nameと$_REQUEST["name"] と二つありますがどちらを使うのがいいんでしょうか?
>>732 マニュアル参照して欲しいことだが……。
バージョンによっても違うしな。
POST送信と決まっているなら
$_POST["name"]
の方がいいかも。
>>716 フォローありがとう。
空文字列を与えると無限ループになりますね。
dirnameは相対パスを与えると最後にカレントディレクトリ "." を
返してくれるから大丈夫でした。
>>731 Win32環境では "\" が返されるようです。
上記の無限ループと併せて以下のようにすればいけるかと。
if (is_dir(realpath($path))) return;
パス記号周りの微妙な動作に振り回されたくなければこんな感じの方がいい鴨 $pathparts = explode('/', 'path/path/path'); $path = ''; foreach ($pathparts as $temppath) { $path .= $temppath . '/'; if (is_dir($path) == false) mkdir($path); }
736 :
704 :2005/06/17(金) 11:27:35 ID:sgjY/fbg
>>707 さん
非常に解りやすい解説ありがとうございました。
コマンドを実行した結果は、Could not open input file というエラーでした。
ファイルのパーミッションは755でオーナーはroot。実行したのもrootです。
うーむ、何が悪いのだろう??? php本体が正常に働いていないのかな?
とDSO版のPHPは稼動しており、phpで作成したページをapacheサーバーで公開して
作動しているのは確認しております。
737 :
707 :2005/06/17(金) 12:26:33 ID:???
>>736 こんな方法でメールを横取りできると判って、おもしろいな、とやってみただけなので
気にせんでくだされ。
Could not open input file ってことは標準入力がオープンできないんでしょうね。
$stdin = fopen('php://stdin', 'r');
$line = fread($stdin, 1000);
の辺りのスペルミスかな。。。
で、ちょっとググッてみましたけど、標準入力をわざわざオープンしなくても STDIN という
ハンドルでオープン済みなんですね。こんな感じでよさげです。
#!/usr/local/bin/php
<?php
//$stdin = fopen('php://stdin', 'r'); //いらない
$line = fread(STDIN, 1000);
mail ("
[email protected] ", "test", $line);
?>
これでダメなら、小生では判らないです。。。>識者光臨キボンヌ
質問させてください。 PHP4.3.9+apache2+CentOS3.4を使っています。 携帯で表示させるため、SJISにて入力フォームを作ってPOSTで受け取ろうとすると $_POST[添え字] = 値 において、値の部分は正常に受け取れるのですが添え字の部分が 一部文字化けしてしまいます。 あああ あいう くるま などは問題ないのですが ゲーム さーば など、"ー"を含むものは"\"となってしまいます。 また、ーーーとすると\ーーとなります。 EUCに変換してみたり、UTF-8にしてみたりもしましたが元のpostデータが おかしいのでどうにもなりません。 このような場合どのようにすればいいのでしょうか?
>>738 根本的ではないのだが、添え字(つまり、inputどのname属性だよね)に
日本語使わなければいいのでは?
携帯ならVodafoneとかさらに制限があったような。
>>738 ちゃんとURLエンコードして投げるクライアントのみ使用する。
PHP側で$_POSTへの展開が上手く動作しないのなら、自分でパースする。
しかし展開が上手いってたとしても文字コードが異なれば、
変換は自分でする必要が多分あるだろう。
んなことの手間かけるよりも、
>>740 が一番良い解決法ではないか?
743 :
nobodyさん :2005/06/17(金) 22:21:22 ID:90esTsrU
リストボックスを二つ用意して例えば一つは沿線名 もう一つは駅名でさデータベースから沿線名をよみこんでそのひとつを 選択して検索ボタンを押したときその沿線にそった駅名がよみこまれる処理は できたんだけど、リストボックスの沿線名を選んだときに検索ボタンとか押さずに 選んだ瞬間に駅名が読み込まれるっていうスクリプトはできないの? やっぱりフォームだからなんらかのボタンをおさなければ実行しないんですか? リストを選んだときに隣りのリストボックスで駅名がかわっていくHPを みたんでどうやってつくるのかと・・・・わかる方がいればおしえてください
>>743 それはWeb制作板のJavaScript関連スレなどで聞いてみな。
PHPでWebアプリ作成する際、最も時間を取られるところは CSSだったりJavascriptだったりするのは俺だけか? PHP部分自体はDBからデータ取ったり入れたりするくらい なもんだからたいして時間かからないしな。
大規模でなければそうかもしれない
精神的有害だとぅー
>>743 javascript セレクト 連動
でぐぐればすぐだよ。
751 :
nobodyさん :2005/06/18(土) 13:40:12 ID:zGMUVtmv
PHPプログラマにとつて javascriptは必須? できなkればはずいですか?
>>751 ときく時点でDQN。
PHPはサーバーサイドでしょ。
それに対して、Javascriptはクライアントサイド。
それぞれにできることが違うわけ。
PHPプログラマがPHPだけやればいいって意味ならいらないでしょ。
Webアプリを開発するプログラマなら、
必要に応じて使い分けるのでは?
必須とまでは言えないけれども、 phpの長所・短所を把握した上で 必要に応じて必要な言語を学習して補完する能力は必要。 phpで書くか、javascriptで書くかは 使っているサーバと想定するユーザの環境を考えて どちらに振り分けるのが良いかという問題であることが多い。
HTML,CSSくらいしか出来ない全くのド素人が始めるにあたっていい参考書はありますか? ○○を作ってみよう! みたいな感じで、作例に対する解説が多めに載っている初歩的なものが良いです。
とりあえず、C言語の入門書でも買え
いや、学研の電子ブロックで電子回路の仕組みから勉強したほうが。
>>757 おお、分かりやすそうですね。
熟読してみます。ありがとう!
児卑淫行化
760 :
nobodyさん :2005/06/18(土) 20:59:10 ID:zGMUVtmv
PHPをこのままずっとやっていていいのだろうか・・・ 32歳 PHPしかできないWEBプログラマです・・ お前ら将来のこと考えてる?
>>760 ここに職業プログラマは、ほとんどいないだろ。
他に職があれば、将来を考えるまでもなく。
なんつーか、PHPしか出来ないって言ってるレベルでは、PHPすらホントは出来てない。そういう気がする。
763 :
nobodyさん :2005/06/18(土) 22:12:49 ID:RVi3eUVA
外部から内容を見ることのできないデータ格納ファイルとして data.php みたいに、拡張子をphpとしちゃうとどうなんでしょう。中身見えちゃいますか?
>>763 データファイルの中身次第だろうけど、白紙のページが表示される。
たまたま、データファイルの先頭が <? なんかで始まるデータなら
PHP のエラーメッセージが表示されるかもしれんが。
ただ、その類のファイルは、URLでは参照できないディレクトリに
保存するのが普通。
>>763 なんでデータファイルの拡張子をPHPにしたいわけ?
中身を見せない為でしょうね
perl等のcgiの場合は、データファイルの拡張子をcgiにしておくことで shebang(一行目のアレ)無し+HTTPヘッダ出力無しでエラーになるから それからの連想じゃないかねぇ。
俺はテキストデータにする場合は、データファイルは.cgiにしてある。 最近は小規模でもめっきりDBに逃げてるけど。楽チンフォーー
てか見せたくないファイルはApacheの設定で403にするだろ普通
htaccessが置けないところもあるからじゃない?
772 :
763 :2005/06/19(日) 01:02:40 ID:???
そのファイルへ毎回<?を頭につけてやってしまえば、 なーもしないでサクッと導入できるんだけど、 これでいいんかな、とおもて質問したわけでございます。 結局のところ問題無い?ある? 問題あったとして、こちらに責任は被さる?個人情報とかあったとして。
oioi
>>772 漏れたら責任以前に信用なくしてさよならだな。
かってにCookieが設定されてしまいます。 pma_lang pma_charset pma_collation_connection pma_theme たぶん、phpMyAdmin関係だと思うんですけど、 どうやって消すんでしょうか。
有効期限とかパスとか調べて setcookie("pma_lang", "", その他適切な引数); っていうふうに空文字セットすれば消せるんじゃん? 別に消さなくてもいい気がするけど。
phpmyadminだとしたら、cvsのrevision2.70では setcookie('pma_lang', $lang, time() + 60*60*24*30,〜 ってなってるから、30日保持されて消えるようになっている。 パスの指定もきっちりしてあるから無意味にcookieを送出しなさそうだし、消す必要ないんじゃないの?
778 :
nobodyさん :2005/06/19(日) 15:25:27 ID:TrIxMHAD
質問です。 classのfunctionの中で、同じ事を2回するのでさらにfunctionでまとめてしまいたいんですが うまくいきません。以下みたいな感じです <?php class C { function f() { function nikaisuru($v) { echo $v; } nikaisuru(1); nikaisuru(2); } } $c = new C(); $c->f(); ?> Apache/2.0.54 (Win32) PHP/5.0.4でエラーメッセージは Fatal error: Non-static method C::nikaisuru() cannot be called statically です。 class定義の外ではf()の書き方でもうまく行きました。 また、nikaisuru()をf()から外に出してclass Cのfunctionとし、f()の中で$this->nikaisuru() とすればうまく行きました。しかし、出来ればnikaisuru()はf()の中に入れてしまった方が スッキリするんですが。どのようにすれば良いでしょうか。よろしくお願いします。
それは出来ない。 俺的には呼び出す方が自然だしスッキリする。
functionの中にfunctionいれれるのなんかJavaScriptくらいだろ。 $this->nikaisuru()でよろしく。
782 :
778 :2005/06/19(日) 17:20:34 ID:TrIxMHAD
privateメンバ関数を定義し、$this->nikaisuru() とする事にしました。 ありがとうございました。
>>783 マルチウザイ。
すれ違い。というか板違い。
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のコンソールで問題なく動くことは確認しました。 何が原因なのでしょうか?
>>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リソースではありません。
788 :
786 :2005/06/20(月) 00:17:09 ID:???
レスありがとうございます。
>>787 英文の内容は、「正しくないよ」くらいのことを言ってるのかな?とは分かったのですが、
何が正しくないのか分かりません。
コンソールでは通るのに、他に何か問題があるのでしょうか?
よろしくお願いします。
>>788 mysql_num_fields関数に渡した引数が正しくない。
なぜ正しくないのかとかそういうことはソース晒してくれなきゃわからない。
くだ質レベルなわけだが。
790 :
786 :2005/06/20(月) 00:31:08 ID:???
レスありがとうございます。
>>789 mysql_num_fieldsに渡した引数ですが、ソースのほかの部分については全く変わりはありません。
該当部分のみ抜き出すと
$rst = mysql_query($sql, $con);
$fldmax = mysql_num_fields($rst);
こんな感じです。
ソースには
>>786 の2つの文を両方記述してあり、片方ずつコメントアウトしてやると、
1ではうまくいくのに2ではうまくいかない、という状況です。
なんでだろう・・・。
>>790 >4をよく読め。
まぁ、おそらくタイポだろ。
792 :
786 :2005/06/20(月) 00:47:47 ID:???
・・・dが一個抜けてるorz。 お騒がせしました。
793 :
nobodyさん :2005/06/20(月) 02:24:17 ID:S3u+Ua7D
SQLインジェクションというのが流行っているので 入力された文字列をごにょごにょしたいのですが 一般的に 最低限これだけはやっとけ というのを 指南してほしいな♥
♥ なんかに釣られないぞ
最低限、使用するDBのマニュアルを読んどけ♥
php.iniのsession.cache_limiter=privateにして キャッシュの許可をしたいので、.htaccessに書き足したのですが サーバエラーになります。 そのままsession.cache_limiter=privateを記述するだけでは 駄目なのでしょうか?書き方があれば、教えていただければと思います。
797 :
796 :2005/06/20(月) 03:29:45 ID:???
自己解決しました。。下記のようにすれば大丈夫でした。 php_flag session.cache_limiter public
>>785 ども。
今月号のウェブデザイニングかなんかでRSSをPHPでごにょごにょして
自サイトに表示させよう!ってコラムを発見したので
やってみまーす。
800 :
nobodyさん :2005/06/20(月) 08:57:25 ID:BzVXX3sp
PHPでメールフォームをつくったんですが 受信してみると、変なメールアドレスから 送られてきます。送信した人のメールアドレスで 送られるようにするにはどうしたらいいんでしょうか?
>>800 mailtoスキームで送信者のメーラをキックさせる。
802 :
nobodyさん :2005/06/20(月) 09:12:26 ID:BzVXX3sp
>>801 それは、mb_send_mailをつかわないやりかたですか?
mb_send_mailを使った場合無理なのでしょうか?
「送信した人」つー言い方がまずいかと。
メールフォームの送信ボタンを押した人(=訪問者)のメールアドレスつーことだと
>>801 に。
マニュアルのmailのページでも少し触れてあるけど、
特定のメールアドレスを設定したい場合にはenvelope-fromを指定します。
そうしないとweb鯖のユーザのメールアドレス(これはこれで送信した人のメールアドレスか、、)が使われます。
804 :
nobodyさん :2005/06/20(月) 09:50:30 ID:BzVXX3sp
>>803 そうです、訪問者のメールアドレスから送信されたみたいな
感じでうけとりたいです。
mb_send_mailでは無理でしょうか?
>>804 mb_send_mail($to,$subject,$message,$from);
で、$fromにアドレスぶちこめばいいんじゃないの?
塚、あんたはどうやってうまくいかなかったのかソースさらせば?
806 :
nobodyさん :2005/06/20(月) 18:10:19 ID:mdvzeW1K
質問させて下さい。 HTMLでフレーム4分割したページがあります。 始めはそのうちの1フレームにログイン用のHTML(又はPHP)が表示されています。 そこでログインIDとPASSを入力し、submitボタンを押した時に 他の3フレームにそれぞれ違うPHPファイルを読み込みたいんです。 一つのフレームのリンクをクリックし、他の一つのフレームにPHPファイル を読み込むような良くあることは出来るのですが、 (リンクにPHPファイルのパスとターゲットを指定すれば済むので) 上記に書いたことはどうやってやるのか全く分かりません。 それぞれのターゲット(フレーム)に読み込むPHPファイルは固定です。 ログイン情報を取得して表示する内容をID毎に変えるだけです。 どなたか分かる方がいらっしゃればご教授お願い致します。
808 :
nobodyさん :2005/06/20(月) 19:35:17 ID:mdvzeW1K
>>807 返答ありがとうございます。
それはどういった意味ででしょうか?
HTMLの記述で何とかなるということでしょうか。
フレームにはtarget nameを設定してあります。
include()でPHPを読み込むにもheader()で飛ぶにも、
ターゲットの指定の仕方が分かりません。
809 :
nobodyさん :2005/06/20(月) 19:38:06 ID:RcQFSBZs
フォームの検索ボタンを二つ入れる場合 上で検索して、その結果をつかってまた検索するといったような 処理をしたい場合 フォームを二つにわけるんですか?それとも一つのフォームのなかに ボタンを二つつくるの?
>>808 Webブラウザ(クライアント側)に依存する話題というこっちゃろ。
FlashとかJavaScriptとかその辺のとこいって訊け。
>>809 どんなのか想像できないけど、お好きなように。
812 :
806 :2005/06/20(月) 21:13:52 ID:mdvzeW1K
>>808 返答ありがとうございます。
内部(LAN内)で使用するため他の環境(クライアント)を意識する必要はありません。
PHPでやりたかったのでここで質問させて頂きました。
分からない場合、もしくはPHPでは方法がない場合は返答されなくて結構です。
>>812 最後の一文が余計だ。ここはお前のHPじゃないんだよ?
質問の答えだが、ログインフレームで飛ばすtargetをtopにして、
フレームを呼ぶだけでいいんじゃないの?
>>812 自分はよほどの常識人だとでも思っているんだろうなぁ・・・
815 :
:2005/06/20(月) 21:48:41 ID:F0wN879H
>>812 >>593 あたりからのレスにもあるけど、PHP(というかWebサーバ)にとっては
送られてくるhttpリクエストにどう答えるかつーのが仕事でフレームやら別ウィンドウやらは対象外なんだよね。
そういう事はhttpリクエストの前、つまりリクエストをするブラウザ側で解決しておかなきゃいけない。
特に今回のようなログイン認証のような物の場合は、サイト構成を考える時点から気にしなきゃいけなかった。
つっても、選択肢はあんまりないんだけどね。
1. frameに固執する
a.
>>813 のいうように、_top自体から描き直す。各frameでのidの同期はsessionとかを使う。
b. JavaScriptを使って各frameを順次リクエストする。idの同期は上に同じ。
2. frameをやめて一枚のページにする
まぁ、htmlのお話でPHPはあんまり関係なかったと。
PHP_INI_SYSTEM な設定ディレクティブについて教えてください。 VirtualHost ごとに safe_mode を設定したいのですが、 どうも効いていないようなのです。 VirtualHost ごとの PHP_INI_SYSTEM な設定というのは できないものなのでしょうか?
819 :
799 :2005/06/21(火) 00:01:43 ID:???
なんとレッツPHPにて、公開されてました。。。 すんません。 −RSSブロガー−■ 概要 特定サイトのRSSを表示します ブログの右ブロックとかに置くとか。 シンプル。件数指定可能
>>817 サーバモジュール版を使ってる限り無理な気がする。
httpd.conf内の<VirtualHost>ディレクティブ毎にphp_flagでOn/Offしたら
"出来ちゃったり" するかも知れないが。
821 :
820 :2005/06/21(火) 00:43:20 ID:???
822 :
820 :2005/06/21(火) 01:07:43 ID:???
|php_admin_value で設定された設定オプションの値は、
|.htaccess や VirtualHost ディレクティブ内から上書きできません。
これはこういうことか、
・php.iniの値はphp_admin_*で上書き可能。
・但しグローバルで設定したphp_admin_*の値は
VirtualHostディレクティブ内からは上書き不可。
・つまりグローバルで設定していなければ、VirtualHost
ディレクティブ内でphp_admin_*の値は個別に設定できる。
試して結果出してくれ
>>817
突然だけど、マルチポストをまるぽと呼んでみないかい?
まるぺ(教)みたいだ
825 :
nobodyさん :2005/06/21(火) 13:04:34 ID:YilT+fOH
僕はPHPが理解できましぇん>< 駄目です。そんな俺を一人前にしてくれ 頼む・・・はげ板在住おろかなPHPプログラマより・・・お前らへ 最後のお願いです。
まず何かつくってみよう。一行掲示板でもいい。 そしてどんどん規模が大きくて複雑なものに挑戦していこう。 はげ2号より。
とりあえず、暫く無視してみよう
始めに作るといえばやっぱ Hello World か phpinfo() だろ。
PHPでHello Worldやってもなぁ・・・
<?php #Hello world を出力する ?> Hello world
<html><head><title>PHPでHello World!</title></head><body> <p>Hello<?php echo ' '; ?> World!</p> </body></html>
<?php // phpによる至極簡単なHello World!表示の例 $a='eJyzySjJzbGzyUhNTLGzKcksyUm1C/AI'. 'aDrqkZqTk68Qnl+Uk6Joow+RsNGHKEvK'. 'T6m0symwQ1VTAJSHyOiDzQQAtVYfZw=='; echo gzuncompress(base64_decode($a)); ?>
<?php $aho = "Hello World!"; echo <<<HOGE <html><head><title>$aho</title></head><body> <p>$aho</p></body></html> HOGE; ?>
奇妙なHello Wordl特集というサイトが作れそうだな。
つーか理解できないのに何故PHPプログラマなんだ・・・
自称ならなんでもあり σ(゚∀゚ ∬オレ自称神
>>825 は、別にPHPのスキルを一人前にしてくれとは言っていない。
あれだろセクースしたいんじゃねのか?
セクースしたら一人前なのか、そうなのか? 童貞は半人前なのか、そうなのか?
だったら俺は0.75人前だ
844 :
nobodyさん :2005/06/21(火) 19:36:43 ID:LzmmEaFG
<?php $id=printf("hello world",\n); ?> <html><head></head> <body>$id</body> </html> おまえらちゃんと答えてやろうぜ。
え!? <?=$id?>
php -r "echo 'Hello World!';" で良いじゃん。
>>847 ここは○投げスレか?
現在の目から見れば、そのプログラムの書き方は宜しくないよとの警告。
もっとも原因は古いPHPのバグ/挙動によるもので、そのソースが書かれた
当時に把握しとけというのは恐らく酷というもの。
俺の回答としては「古いソースを参考するのではなく、そのまま使うのは止めれ」
PHP4.2.xなんかで動かさないからという人は、マニュアルでも読んで自力で対処してください。
そもそもエラーメッセージにも書いてあるし。
>>848 全くそのとおりです。でも、改造してるという後ろめたさからどうも質問しにくくて・・・
>>849 よくわかりました。ですがワタシにはとてもスクリプトを組むことができません。
本来ならここでドキュメントあさりにいくところですが、今は少し時間がなくて、
力をお借りしようと思った次第です。
ご親切にありがとうございました。
#敬語ってムズカシイですね。
古いソースを恥ずかしげも無く晒し続ける某が悪い
れっつPHP昨晩から繋がらないね
856 :
nobodyさん :2005/06/22(水) 17:20:22 ID:36ejXiBF
仕事でPHPにいきずまってます 上司からは進捗をやたらきかれるし フォーム制作だけで3週間かかっていますが 文字化けが解消しません・・・・ 頼む・・・はげ板自称プログラマの俺が、ほんとにほんとに 最後のおねがいです...どうかどうか俺を一人前に・・・・ そして、願わくば俺の額に髪を・・・
>>856 環境もわからんのにどうしろと。
サーバーの種類、設定
PHPのバージョン、設定
とかぐらいかけよ。
あとは、何をいれたらどう化けるのかとかさ。
859 :
nobodyさん :2005/06/22(水) 18:26:16 ID:BW+9vfGf
すいません。--enable-memory-limit を外して PHP をコンパイルしてしまった場合は ファイルアップロード関数は使えないのでしょうか? いろいろ実験してみたのですが、全く動作しません。 だれか教えて!
>>859 enable-memory-limitは、メモリの制限が「できるようにする」オプション。
つけなかった場合、メモリの制限ができない(ある意味怖い状態)だけ。
ファイルのアップロード(って行為しか示してなくて、実現する方法は一様じゃないんだけど...)
できないのは別の理由。
861 :
nobodyさん :2005/06/22(水) 19:31:46 ID:SgJBDR+R
配布されているメールフォームスクリプトで 本文が複数行入力された際に 確認画面及びメールが正しく改行されるものを教えて頂けないでしょうか 確認画面では<br>をつけて、メールでは消すというのが 自分では上手くできませんでした
nl2brで調べる
863 :
nobodyさん :2005/06/22(水) 20:09:05 ID:kA0IpK2m
掲示板などのコンテンツを、テンプレートを使用して、 HTMLやテキスト形式、csvなど、色々な形式で出力したいと考えています。 それで、タグのサニタイズや改行の変換は その出力時に行いたいのですが、その場合、フォームデータを 保存するときに、どのような形式にすればいいのかが いまいち分かりません。 いまのところ、本文内の改行はCRに変換して、レコード区切りLFのtsvで いこうかと思ってるんですが、変換処理がやたら多くなってしまう気が。 一般的にはどうするものなんでしょうか。
規模にもよるけどデータベースを使うよ
PHPでは文字コードEUC-JP、改行コードLFで保存しておくのが主流。 でも標準入出力以外では改行コードはあまり気にすることはない。 SHIFT-JISでは漢字をクォートでくくった時などに1byte文字の誤解釈が発生する場合がある。 最近じゃxmlがらみでunicodeがメジャーになりつつあるけどEUC-JPでもなんとかなる。 入力チェック,改行変換などはファイル保存前に行うのが鉄則。 手順が増えてエラーを返したりすることがあるかもしれないし。 データベースを使ったときのことを仮定したら答えは自ずと出ると思いますけど。 あとは↓あたりの命令を覚えておいて タグを無効化 htmlspecialcharsもしくはstrip_tags クォートなどを無効化 addslashesもしくはstripslashes 好きな文字コードに変換 mb_convert_encoding csvの読み込み fgetcsv
866 :
863 :2005/06/22(水) 21:29:52 ID:???
>864 >865 ありがとうございます。 やっぱりファイル保存前に改行はbrに変換しといたほうがいいんですかね。 テキストで表示したいときなんかに、いろいろ変換していると戻すのが めんどくさい、ような気もするけど、保存前に処理してしまえば 確かにエラーの危険は少なくなりそうだし。 レン鯖考慮すると躊躇してしまうけど、やっぱりデータベースかな……
869 :
nobodyさん :2005/06/22(水) 23:57:53 ID:ol7QAXcn
↓みたいなのはそれぞれ別のファイルにしたほうがいいんですか? class classA { ... } class classB extends classA { ... } class classC extends classA { ... }
仕様上の制限(や強制)は無いから好きにすればイイヨイイヨ 別ファイルにした時はrequire_onceを忘れずに。
871 :
nobodyさん :2005/06/23(木) 00:05:23 ID:ol7QAXcn
thx。1クラス1ファイルってのはjavaだったのか
1クラス(継承クラス含む)1ファイルにした方がautoloadし易かった。
>>871 別に 1 クラス 1 ファイルとは限らないよ。
じゃあ気にせずにやります
875 :
nobodyさん :2005/06/23(木) 02:41:39 ID:Ycsi6J8Z
C言語(WinNT)と php で、共有メモリを介して通信って可能でしょうか。
877 :
875 :2005/06/23(木) 03:49:09 ID:Ycsi6J8Z
>>876 レスありがとう。
ここまでは調べました。
■phpの共有メモリのアクセス関数
int shmop_open ( int key, string flags, int mode, int size )
■win32の共有メモリのアクセス関数
HANDLE CreateFileMapping(
HANDLE hFile, // handle to file to map
LPSECURITY_ATTRIBUTES lpFileMappingAttributes,
// optional security attributes
DWORD flProtect, // protection for mapping object
DWORD dwMaximumSizeHigh, // high-order 32 bits of object size
DWORD dwMaximumSizeLow, // low-order 32 bits of object size
LPCTSTR lpName // name of file-mapping object
);
phpは「共有メモリへの key が int」
win32は「共有メモリへの key が lpName(文字列)」
でアクセスすると書いてある。これでは互換性が無いですよね。
win32 側は、別の関数を使うのでしょうか。
勘違いしていたらツッコミお願いします。
>>877 つうか
phpの共有メモリのアクセス関数が提供するのは
UnixライクなOSで実装されてる共有メモリへのアクセスで
win32の共有メモリのアクセス関数(で示してるのが良く判らんが) は
Windows独自の実装の共有メモリへのアクセスではないのか。
後者は前者に対してもアクセス出来るような作りの関数なのか?
ネームドパイプ(Unix Socket)でも使った方が良いんじゃ...
879 :
877 :2005/06/23(木) 06:41:46 ID:Ycsi6J8Z
>>878 なるほど。同じ「共有メモリ」と呼んでいても、
両者は別の規格、ってことみたいですね。
パフォーマンスのよさげな、共有メモリから当たってみたんですが、
ご指摘のネームドパイプでやってみます。
こんな明け方に、レスありがとうございました。
880 :
nobodyさん :2005/06/23(木) 07:46:13 ID:4sGGPAIm
お前らそんな高レベルな話 はいかんぞ
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); この辺ぐぐってみてはいかがでしょう? しかしそろそろスレ違いだな。
#include <2c.h>
int main() { printf("ぬるぽ"); return 0; }
int main( void ){ puts("ガッ"); return 0; }
宿題投げていい?
. ィ .._ .......、._ _ /:/l! またまたご冗談を :~""''.>゙' "~ ,、、''‐'、| PHPを満足に扱えない人なんていませんよ。 ゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':, ましてや宿題ごときで躓くなんて本7以下ですよ ``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ ,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ " .!-'",/ `'-‐'') /\ `/ でノ-〈 .-''~ >'゙:: ‐'"゙./ ヽ.,' ~ / //::::: ', / ,:'゙
期待してないけど宿題投げますw ある数字を渡すと各桁の数字を上から順番に 配列に入れて返す関数って可能ですか?
,.ィ ''==ァ-‐‐,'゙<l _,, マタ マタァ〜 `、:/::r'゙゙'_ェ'゙゙i、._ /ラノ preg_split('//',(string)$param,-1,PREG_SPLIT_NO_EMPTY); ,=キヅ `'ラ/ヾ/ (シフ 負符号、小数値の時はシラネ ,ケ:: ',. / ,:'゙
>>887 PHP5なら
$array_num = str_split($str_num, 1);
890 :
カポコン :2005/06/25(土) 09:20:43 ID:???
レベルが高くなるとレベルを落とそうとする輩が出てくる。 まあ、これが2chの実装なわけだが。 っんでもサーバーが落ちる原因の30%以上はメモリ関連だから 875-879は実に有意義な話をしていると思うんだけどな。
PECLにwin32apiてのがあるけど、これでWindowsの共有メモリにアクセスできないかな? winで開発、unixで運用ならラッパー関数/クラスでも書いて。 eAccelerator使うほうが楽チン?
892 :
nobodyさん :2005/06/25(土) 13:42:21 ID:6Ztw8aQ7
>>891 php_w32api.dll 経由で、すべてのwin32api を呼べるみたい。ウヒョ。
↓こんなの見つけました。
http://php.digipedia.pl/php/manual/pl/ref.w32api.php <?php
if (! dl ( "php_w32api.dll" )) {
echo "Unable to load php_w32api.dll" ;
exit;
}
$api = new win32 ;
$api -> registerfunction ( "bool QueryPerformanceCounter (float &lpPerformanceCount) From kernel32.dll" );
$api -> registerfunction ( "bool QueryPerformanceFrequency (float &lpPerformanceFrequency) From kernel32.dll" );
$api -> QueryPerformanceCounter ( $a );
$api -> QueryPerformanceFrequency ( $b );
$c = $a / $b ;
$days = floor ( $c / 86400 );
echo gmstrftime ( "System uptime is $days Days, %H Hr, %M Min, %S Sec<br>" , $c );
?>
便利だけど・・遅くならないといいね。
このスレで仕事依頼とかしていいんでしょうか?(´Д`;)
>>895 報酬はお支払いする予定でした。
大きなモノではなく、ちょっとした日記系のphpを自分のwebで使いたかったので、
個人に依頼して安くしてもらえないかと思ったんですが…(´∀`;)
(無料配布されているphpが思い通りのが見つからず…)
とりあえず誘導ありがとございますた。
PHPがセーフモードで動いているサーバーの場合、PHP同士の不正なアクセスは避けられると思うんですが CGIから見られる事ってあるでしょうか? CGIがsuExecで動作している限り、パーミッションが606等になっていても、他のユーザーのファイルは 見られる危険性は無いんでしょうか? 要は、セーフモードで動いていてもCGIからだと見られてしまうのかな?と言う疑問です。
送信ボタンを押した後に、スレ違いと言う事に気づきました。 ApacheスレかCGIスレで聞くべきだったかも…。
899 :
nobodyさん :2005/06/26(日) 02:01:40 ID:ZljWfVvh
2chのsubject.txtをデータベースに格納したいのですが
どうすればいいのかさっぱりわかりません。
マニュアルを読んでfile()で配列に入れ、EUCにエンコードしたところで詰まってしまいました。
dbase_add_record()がそれっぽい挙動をしてくれそうなんですがエラー出る(ノД`)
Call to undefined function: dbase_add_record() 〜略
$lines=file('
http://pc8.2ch.net/php/subject.txt ');
foreach ($lines as $line_num => $line) {
$line=mb_convert_encoding($line,"EUC-JP","SJIS");
dbase_add_record (subtxt,$line);
}
MySQL 4.0.21
PHP Version 4.3.10
902 :
899 :2005/06/26(日) 02:23:36 ID:???
゚Д゚)・・・ もう寝るヽ(`Д´)ノ ウワァァァン
1 -> Januaryに変換するには、(実際には年月の日付) $strmonth = array('1'=>'January'..... こんな配列を作って変換するか、timeに直してdate関数で変換するしかないですか?
どうもです
906 :
899 :2005/06/26(日) 12:24:56 ID:???
うまくできたです。理想の動きをしてくれますた。
もうちょっとコンパクトにできないかなあ?
$lines=file('
http://pc8.2ch.net/php/subject.txt ');
foreach ($lines as $line_num => $line) {
$line=mb_convert_encoding($line,"EUC-JP","SJIS");
list($num,$title)=explode(".dat<>",$line);
$title=str_replace ("'","\'",$title);
for($i=0;$i<count($title);$i++){
$sql="insert into subtxt (dat,title)values('$num','$title')";
$resultInsertrev=$db->query($sql);
if((DB::isError($resultInsertrev))){echo $resultInsertrev->getMessage();echo ('えらーでたよ');exit;}
}}
>>906 突っ込みどころ満載
自鯖でやってるんなら別にいいけど。
>>907 いいじゃん
そうやって人は成長するんだ
ソースなんか動けば良いんだよ メンテナンス性が必要ならメンテ時に改善すればいい
910 :
nobodyさん :2005/06/27(月) 11:52:56 ID:9CZKqT26
PHPでSOAPを利用するとき、引数がオブジェクトのメソッドをcallする場合、下のコードのように書いてます。
$client = new SoapClient("
http://www.hoge.jp/soap.asmx?wsdl ");
$param["A"] = "100";
$param["B"] = "200";
$param["C"] = "300";
$obj = SetType($param, "object");
$result = $client->Setup($obj);
ですがこれを実行するとSetupメソッドの行で、
Fatal error: Uncaught SoapFault exception: [soap:Server] サーバーは要求を処理できませんでした。 --> オブジェクト参照がオブジェクト インスタンスに設定されていません。
というエラーになってしまいます。
PHPにおいて、SOAPメソッドにオブジェクト渡す時って何か特殊な渡し方があるんでしょうか?
912 :
899 :2005/06/27(月) 16:36:54 ID:???
(ノД`)グッスン
>>909 OOP の考え方を否定するようなことを言うなよ。
>>913 OOPじゃなくても、こんな考え方はダメでしょ。
別にいいと思うけどなぁ・・・
>>915 >>914 は1つの意見に過ぎないわけだから、
自分の好きなようにやればいい。
ただ、漏れの会社では動けばいいとかメンテナンスはどうでもいいとか言ってると
たぶん痛い奴だと思われるけど。
動きゃいいモンもあれば、それじゃいかんモンもある どっちかしかないと思ってる奴は痛い奴
918 :
nobodyさん :2005/06/28(火) 19:36:21 ID:aMUPyCvg
locationヘッダで大量のパラメータをつけてわたしてたら 途中でおくれなくなったよ 大量のパラメータを渡すときって、他にどんな方法があるんだ 教えてくれ。 ちなみに、30個ほどパラメータをつけてわたしたい
>>918 getメソッドのサイズ制限はそう簡単には越えないもんなんだが。。。
同じ鯖 -> セッション
他鯖 -> location(=getメソッド)をやめて、postでリクエスト。
921 :
nobodyさん :2005/06/29(水) 01:33:51 ID:Ry+/Z3jn
preg_replaceで置換してるんだけど、2番目の引数で関数を呼ぶようにしてる。 preg_replace("/hoge/e", 'convert(\'\1\')', $string); これをmb_ereg_replaceに置き換えたいんだけど、どうやったら2番目の引数に関数を 呼び出すように指定できるの?
php-4.3.10-3.2 Source RPMをおとしてインスコしました。 そしたら、SOURCE/にphp-4.2.2-lib64.patch 他.. がインスコされました。 src.rpm は php-4.3.10なのになんで古いパッチが インスコされるんでしょうか。
>>923 1.バグが直っていない
2.パッケージ化するにあたって追加修正したい機能がある
3.同じパッチが使える
1-3 2-3どちらかの条件を満たしているため
つーかPHPに限った話じゃない。
問題のキリわけしろや
redhat 9 を使っていて新しいphpのrpmがないので srpmをゲットしてspecみたらパッチがたくさんありました。 その1つ1つのパッチが必要なのかわからないんです。 phpはconfigure , make までパッチがなくても できました。
>>925 その程度の実力じゃやめたほうがいい
どうしてもやりたいなら英語嫁。
>>926 さんどうもです。
英語読みます。
どこのサイトにpatch情報はありますか。
必要のないpatchが残ってたりするけどな。 古すぎて大幅にソースの位置が変わってて追従しきれてないのとか。 手動で当ててみ。
929 :
nobodyさん :2005/06/30(木) 22:28:13 ID:KTukUE2K
2chとヾトリップ作成する方法教えてください
2chとおなじトリップ作成する方法教えてください
931 :
nobodyさん :2005/06/30(木) 23:06:16 ID:KTukUE2K
ChatWorldに入るのに Proxy制限かかってるよ・・・ まだ使えるプロキシおせーて
932 :
nobodyさん :2005/06/30(木) 23:06:34 ID:KTukUE2K
誤爆
>>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);
}
>>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);
}
つーかほとんど同じか・・・
936 :
nobodyさん :2005/07/01(金) 21:45:24 ID:X7OPKe0n
バイトで時給800円でアルバイト情報の検索システムをつくらされた 一応MYSQLをつかってつくったけど、アルバイトでPHPをつかった開発の バイトの時給って800円が相場なのか? 現在27歳で800円は死ぬほどつらいのだが・・・ 一応検索システムぐらいなら作れます PHP5はできません。smatryもつかったことないです。 PHP5を今勉強中です。てことは800円が相場か バイトでやってるやつはどれぐらいもらってんだ
937 :
nobodyさん :2005/07/01(金) 21:52:26 ID:Bm6k1Fi4
>>936 工数も書かないで時間単価だけ書かれてもな・・・
っていうかスレ違いだろ
スレ違いは確かだが、工数と時間単価は関係ないと思われ。
939 :
nobodyさん :2005/07/01(金) 22:01:45 ID:AiDoVk1X
>>936 時給800円で受けたんだろ。
だったら、それがお前の評価レベルだ。
少なくと、ウチでは絶対に時給でなんか雇用しない。
能力の低い奴、仕事の遅い奴にも一定金額を払う度量はない。
納期ありきのグロス発注。
941 :
nobodyさん :2005/07/01(金) 23:22:05 ID:ASdymSQW
セッション処理の途中でセッション名を変えた場合、 ・別々のセッションとして保存される ・最後に設定したセッション名で保存される ・session_start前に設定していたセッション名で保存される のどれになるのでしょうか?
>>936 昔、php&mysqlのフルタイムバイトで時給800円だった。
直属上司に1日2時間仕事して
後の6時間は遊んでいて良いよとウインクされた。
会社の給与システム上、やむを得ない時給だったらしい。
遊んでいて良いと言われてもすることがないから、
いくつかサイトをつくってみた。
今はその収入で食っている。
usortで呼び出す関数について 基本はsortと同じように数順、アルファベット順にするが、 「hoge.mp3」を「hoge.htm」より前に置きたい (例えば aa.mp3 bb.mp3 bb.htm cc.htm dd.mp3 dd.htm というふうに) どういう関数にすればいいですか
>>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);
?>
>>944 期待する動作が得られました、丁寧にありがとう
946 :
nobodyさん :2005/07/02(土) 10:02:27 ID:ap8RH0Hy
質問させてください PHP4.3.1を使っています。 perlの正規表現で while(<IN>){ if(/^a:link{.*color:(.*); }/i){$a_link=$1;} } このような処理をphpにて行いたいと思い while (!feof($fp)) { $line = fgets($fp, 1024); if(preg_match("/^a:link{.*color:(.*); }/i", $line)){$a_link=$1;} } このようにしたのですが Parse error: parse error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in〜〜〜 と出てしまいます。 preg_matchにてグループ化した値を参照する方法を調べたのですが みあたりませんでした。 どうかアドバイスお願いします。
949 :
946 :2005/07/02(土) 12:04:04 ID:???
特定のサイトから任意のページを取得して そのページのHTML全部変数にブチ込むにはどうすればいいでしょうか?
つ [ ファイル関数 ソケット関数 ]
$hensuu = file_get_contents( '
http:// 〜' );
>>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") );
?>
hoge($str); function hoge(&$str){ $str = 1; } hoge(&$str); function hoge($str){ $str = 1; } この二つは両方とも同じ意味になるでしょうか? エラーレポートALLにして後者の方をやったら、関数を呼ぶときに参照渡しするなと怒られてしまったので。。
あのさ、下の方のhogeで hoge($str); ってやったら意味ないじゃん。
>>957 すっません、参照渡しする場合は、受け取る方が必ず&付けないといけないってことですか?
てっきり、どっちかに付ければいいもんだと思ってました。
>>958 PHPでは下の方法は非推奨だからうえのほう使っとけ
>>958 呼び出し側に参照にすることを期待する(または選択させる)ような関数を書くな。
危なっかしい。
関数定義で参照変数にしたヤツを変更してしまうのは 後になって自分でも原因がわからなくなるバグを作るようなもんだ。やめとけー
質問です。 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 これ以外で何か足りないところがあるんでしょうか?
963 :
nobodyさん :2005/07/04(月) 15:10:31 ID:Yvg1h5R+
すみません。 これ↓、どこか間違ってますか? エラーは出ませんけど、何も表示されません。 どうしてでしょうか? <?php $flag=0; $a=$_POST[indata]; $b=$file("name.dat"); for($c=0;$c<=count($b)-1;$c++) { if($b[$c]==$a) { echo "入力済みの店舗か、no",$c,"と同名の店舗です。"; $flag=1; } } if($flag=0) { $file=fopen("shop.dat","a"); fwrite($file,$_POST[indata]."\r\n"); echo"追加しました。"; } ?>
>>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);
>>962 何が足りないって、貴方の環境やソースの詳細
fsockopen('ssl://www.example.com', 443)
って感じで、ちゃんと開いてるのか?
969 :
nobodyさん :2005/07/04(月) 22:59:41 ID:HGadz7bj
>>964 ありがとう
くだらないミスばかりだ。
雑な俺にはむいてないのか・・・・・・・OTZ
970 :
963 :2005/07/04(月) 23:26:27 ID:HGadz7bj
これでいいですか? <?php ini_set("display_errors", true); error_reporting(E_ALL); $flag=0; $a=$_POST["indata"]; $b=file("shop.dat"); for($pl=0;$pl<=count($b)-1;$pl++) { if($b[$pl]==$a) { echo "入力済みの店舗か、No",$c,"と同名の店舗です。"; $flag=1; } } if($flag==0) { $file=fopen("shop.dat","a"); fwrite($file,$_POST["indata"]."\r\n"); echo"追加しました。"; $file=fclose("shop.dat"); } ?>
971 :
963 :2005/07/04(月) 23:26:39 ID:HGadz7bj
なぜか for($pl=0;$pl<=count($b)-1;$pl++) { if($b[$pl]==$a) { echo "入力済みの店舗か、No",$c,"と同名の店舗です。"; $flag=1; } } の部分が機能しないのですが・・・・・
for文の直後に echo "[".$b[$pl]."]"; てな感じで出力してみれば分かると思うけど、 file()で読み込んだ場合には、それぞれの最後に改行文字がついてるのよ。(マニュアルにも記載あり) 一方 $a の方は付いてないはず。 おかしいな、と思ったらecho(or print)してみるのが鉄則。 つ [ rtrim関数 ]
>>971 ところどころにecho使って変数の値をつど表示させてみる。
これ、基本。
974 :
nobodyさん :2005/07/05(火) 00:01:58 ID:/sVdkK+7
可変長引数を受け取る関数から、 別の可変長引数関数に、 引数をすべて渡すいい方法はないでしょうか? 一応、配列にぶちこんでから渡す方法を考えたのですが ぶちこみ処理が冗長な気もします。
975 :
963 :2005/07/05(火) 00:43:33 ID:TcsYh7kq
ありがとうございます。 えちょで確認したところ ↓の部分が動いて内容なんですが、なんか間違ってますか? テンパッてるせいか、もうワケ分かりません・・・・OTZ if($shop[$lp]==$a) { echo"ok"; echo"入力済みの店舗か、No",$c,"と同名の店舗です。"; $flag=1; }
ほどほどに
「えちょ」ってなんだ「えちょ」って。
978 :
nobodyさん :2005/07/05(火) 02:25:43 ID:ZCak048z
マジレスごめん イーチョだよイーチョ! エチョってよむやつは英語の勉強しなおしてこい!
>>975 しょうがねーなー
>>972 が改行文字のあるなしって書いてるだろ
if($shop[$lp]==$a)
↓
if(trim($shop[$lp])==$a)
980 :
nobodyさん :2005/07/05(火) 16:32:23 ID:KhOBjuCN
>>977 ごめんごめん。
いつもの癖で、関西弁が出てしまいましたw
>>979 ありがとうございます。
できました。
へーちょ
982 :
サル :2005/07/05(火) 16:40:59 ID:rDJ/Mrei
質問です ----これを2.htmlとします------------- <P>□項目A<BR> □項目B<BR> □項目C<BR> □項目D<BR> □項目E<BR> □項目F<BR> □項目G<BR> □項目H</P> そうすると↓で表示出来ないのですが、何が間違ってますか? <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <HR> <? include("2.html"); ?> <HR> <? include("2.html"); ?> <HR> <? include("2.html"); ?> <HR> </BODY> </HTML>
表示できない、だけでは何とも
984 :
サル :2005/07/05(火) 16:50:22 ID:rDJ/Mrei
どういう風にすれば宜しいでしょうか?
985 :
nobodyさん :2005/07/05(火) 17:29:52 ID:KhOBjuCN
度々すみません。 ↓のif文が実行されないんですが何ででしょうか? <?php ini_set("display_errors", true); error_reporting(E_ALL); $category=$_POST["category"]; $shop=file("shop.dat"); //検索 for($lp=0;$lp<=count($shop)-1;$lp++) { if(trim($shop[$lp])==$category) { echo "ココが表示されない"; } } ?>
>>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 "ココが表示されない";
}
}
987 :
nobodyさん :2005/07/05(火) 18:26:04 ID:KhOBjuCN
>>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);
?>
989 :
nobodyさん :2005/07/05(火) 18:58:48 ID:KhOBjuCN
>>986 やってみましたが、思ったとおりの正しい値でした。
原因はわからないままです。
どうしたもんでしょう・・・・・OTZ
>>989 差し支えない範囲で、shop.datの最初から数行を晒してみ
991 :
:2005/07/05(火) 19:36:36 ID:hzs6UPOn
宣伝乙。 そこで答えるぐらいならここで答えるよ。
質問があるっす!
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";
}
?>
>>993 ここも作ってもらうスレじゃないんだが。。。
まずはログインの時にどういうデータ(get,post,cookie etc.)を送っていて、
どういうデータ(idやらsessionやら)が送り返されてきてるのか調べてみる事から始めてみては?
ieHTTPHeadersやproxomitronやパケットキャプチャーあたりのツールを使って地道にガンガレ
XREAはバーボン
996 :
963 :2005/07/05(火) 23:17:25 ID:TcsYh7kq
>>990 お得意さんリストのような物なので、一行目から差し支えてします。
親切に教えてくれたのに、申し上げにくいのですが駄目です。すんません。
if(trim($shop[$lp])==$category)
{
echo "ココが表示されない";
}
↑この記述は、正しいですかね?
あとvar_dump($〜);で出てきたstring(14)ってどんな意味ですか?
>>996 見せられない情報なら、適当なデータを書き込んだ仮の shop.dat ファイルを
用意して、そのテスト結果をさらしな。
string(14) はそのデータの長さ。
てか、var_dump の表示結果が string(14) "xxxx....." と表示されているはずだが
14ってのは xxxx... の長さだってことを気がつかないのか?
改めてスレを追ったけど、おまえさん、プログラム書くセンスないと思うよ。
>>996 お客さんリスト?
shop.datの1行にはどんな文字列が入っているんだ?
そのままでなくてもいいから、伏字とか類似文字列とかにして晒せ。
それから、form画面のname=categoryの内容もな。
formのname=categoryのValue値は、
shop.datの1行と絶対に同じなんだろうな?
999 :
nobodyさん :2005/07/06(水) 00:11:00 ID:Z5eAEHZk
>>14 ってのは xxxx... の長さだってことを気がつかないのか?
全然気づかなかった。
別に長さに比例してるわけでもなかったし・・・・
漢字だったからかな?
>>998 ありがとうございます。
php勉強し始めて、2週間なもので。
今は、手元に無いので、明日出勤してから出来るだけ詳しく書かせていただきます。
皆さん、おながいしますね。
クレ厨でごめんなさい。
1000だ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。