3 :
nobodyさん:04/10/05 17:46:25 ID:d6yyUuwZ
http://www.dream-seed.com/server/php.html このとおり、やってもALERT!ってでできます。php4.3.9、an httpd
cgiってほうとモジュール版両方やりました。どっちもできませ
forceなんとか=0って何回もやったけど無理でした。
windows xpですが、だれかわかる人いたら助けてください
Security Alert! The PHP CGI cannot be accessed directly.
This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.
For more information as to why this behaviour exists, see the manual page for CGI security.
For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.
とでてきます
4 :
nobodyさん:04/10/05 18:02:32 ID:d6yyUuwZ
しまいにはphp実行しようとしたときだけこのページはありません
の表示がでるようになりました・・
>>3 英語を読むのがタルいので日本語訳も併記してくれまいか。
6 :
nobodyさん:04/10/05 18:21:52 ID:xTnP4bvw
セキュリティー警告。PHPCGIはディレクトリーにアクセスできない。
PHPCGIバイナリは、force-cgi-redirectと一緒にコンパイルすることが可能になった。
この方法は(ry
>>3 「コンパイルからやり直せ」「わからなきゃマニュアル読め」だって。
mojaviとかフレームワーク使ったほうがいいんですか?
自分でMVC作るのとどちらが簡単?
開発内容、開発体制、開発人員による。
おい!おまいらインデントにタブ使うよね?
PEARって使ってないね
>>11 当然だろ。あの程度のクラス定義、自分でやったほうが勝手が良い。
13 :
カポコン:04/10/06 01:12:01 ID:???
ぐぐる でPHPのページを探したいなら
filetype:php
を付け加えるとよい。
>>11 タブだとタブをサポートしていない機種でなんたらかんたらとか書いてあったな
そんなのあるか知らないけど
タブは
Windows 標準エディタ『メモ帳』でも
UNIX 標準エディタ『vi』でも
MacOS 9 までの標準エディタ『Simple Text』でも扱える。
MacOS X は UNIX ベースだから vi が使えるので扱える。
というか扱えないエディタなんて使い物にならない
てか、タブ以外でインデントってスペースキーを連打するのか?
非常にアフォっぽいんだがw
多くのエディタでスペースでも自動インデントしてくれます
>>15 糞古いOSとか独自OSとかタブという概念がないのがあるらしい
そんなのに配慮しなくていいのにな
20 :
nobodyさん:04/10/06 06:42:54 ID:9EyLJckG
21 :
20:04/10/06 06:55:25 ID:???
display_errors = On
で解決しました。スミマセン。
どうもphp.iniを見るとセキュリティーのために
エラー表示をしないことが推奨されているような感じですね。
このパッケージの独自ポリシーなのか、PHP5がすべてそうなのかは
わかりませんが…
PEAR::DB って、PHP5 だとデフォルトでインストールされなくなったのね。。。
まあ、pear install DB すればいいだけなんですが、この辺の話はどっかに書いてあるんでしょうか。
>>21 ユーザへの通知以外は大抵のサーバソフトウェアはそうだろ。
実用環境ではログに吐くのが当然だと思うが。
>>22 しらね。PEARはPHP4の機能をフルに使ってるから、
PHP5になって動かなくなったライブラリは結構あるんだよね。
こういうことしてるやつとか $this =& $hoge 。
そのうち5番対応のもでるんじゃないの?と無責任な期待。
PEAR::DBは依存関係があるから難しいんだろうな。
新しいのが出る予感がしないでもない。しかしPECLの方はあんまり気合入ってこんね。
26 :
nobodyさん:04/10/06 11:59:01 ID:hWw/MMQH
>>16 オートインデントがあるし、TABをスペース等に展開する機能もある。
インデントする時はTABで打ってても、保存時にはスペースに展開。
スペース連打してる人はさすがにいないと思うよ。
>>14 TABが使えるかどうかではなくて、
TABの幅が環境や設定によっては4だったり8だったりするのが問題なので、
スペースに展開してインデント幅を固定するのが目的。
PEARだと、/* vim: set expandtab tabstop=4 shiftwidth=4: */
というコメントが多くのファイルに記述されてるけど、
vi系のエディタだとTABをスペースに展開、TAB幅4 という設定を
ファイルを読み込んだ時に自動で設定してくれるはずだよ。
27 :
3:04/10/06 12:28:34 ID:GombbQA8
読みましたが、cgi.force_redirect = 1とすると3に書きましたエラーがでて
cgi.force_redirect = 0にしますとページが見つかりませんってでてきます(汗
ここでエラーがでてくれないと本当にありがたいです。
28 :
3:04/10/06 12:46:47 ID:GombbQA8
できました(TT)。みなさん本当にありがとうございました。
an httpdんほうで、実行プログラムの追加のとこでPATH_TRANSLATEDを使うにチェック
入れたら動作しました。10時間くらいインストールにかかってしまいました(;;)
情けないw&&申し訳ない
29 :
3:04/10/06 12:51:45 ID:GombbQA8
LETS PHPってとこのISAPというやり方のほうでゎ強制終了するし、よくわからない
そこにチェック入ってなかったんですよ〜(汗。そこのインストールガイド読んでしまったこと
が不運だった
Apacheにすれば10分で動いたのにな。
indexだけphpを使い、簡単なメッセージを書いて更新したいのですが
そういうソースは配布されていないのでしょうか?
具体的には簡単なメッセージを更新して、新しい物が上にくる形です。
34 :
22:04/10/06 13:10:34 ID:???
>>24, 25
ってことは、pear install で何事もなく追加できても
実はPHP5での動作は保証されていないと。。。。
35 :
3:04/10/06 13:15:15 ID:GombbQA8
>>30 それゎいえてますwけど、正直どこにエラーがあるか全くゎからなくて
php側にばっかり原因があるとおもってましたしw、ver4.3.9ゎ新しくなって
an httpdには対応してないのかなぁとか、自分のPCにウィルス入ったことあるから
そのせいかなぁとか、サーバー新しく入れても
必ずしもうまくいく保証がなかったので、とにかく暗中模索の状態だったんですよぅw
あのエラーの英語の意味もはっきりとゎわからなくて・・;;
何度もcgi.force_redirect = 0,1きりかえて考えてたんですw
>>31-32 なんだよ、結局手引きに書いてあるのをまともに読んでないだけの池沼か。
マニュアル読めない奴は何やってもダメ。害になるだけだから二度と来るなよ。
>>33 スクリプト探しはスレ違い。
どう実装していいかという質問なら、具体的にきちんと説明すること。
まともな日本語も書けない人ゎプログラムも書けないのでゎ?
すみません、ネコミミモードはどこで解除すればいいんですか?
スレ違いっつか板違いね。Web製作板のCGI探しスレ。
あんま単純なものは誰でもかけるから公開してないかもね。
ふつうの更新情報表示用のなら腐るほどころがってるけど。
>>36 のみならずエラーメッセージを読む気も、ゎからないことを検索して調べる気もないようです。
>あんま単純なもの
単純だからわざわざ公開する人がいないっていうより
手書きでやってもたいして労力変わらないからじゃない。
>>33だけだとどんなものを必要としているのかさっぱり分からんけど。
ゎ << キモイ
43 :
nobodyさん:04/10/06 14:34:26 ID:L3DRi3rh
44 :
33:04/10/06 17:09:09 ID:???
>>41 ブログの一方方向のようなものを頭に描いています。
相手からのコメント等は必要ないので、こちらからの日記的な物を書いていくことで
古い記事は下になりカレンダーのように前の記事を閲覧することが出来るという感じです。
今までhtmlで1つ1つ加えていったのですが古い記事を
DB的な扱いで見る事が出来ず、しかも手動でずらしていくので大変でした。
>>44 そういうのを探しているのか、作りたいのかをはっきりしようよ。
作りたいなら、作ってみて分からないところをココで質問すればいいし
探してるならスレ違い
46 :
33:04/10/06 17:21:24 ID:???
>>45 作ってみたいです。でも何からやればいいか分からないし、
45さんの態度が酷く気に入らないのでこのスレから出て行ってもらえませんか?
47 :
33:04/10/06 17:23:43 ID:???
>>45 スミマセンでした。
>>41でどんなものかと書かれていたので
レスしただけです。実際探しているのでスレ違いのようですね。
向こうで質問しなおします。どうも、ありがとうございました。
作って公開してやってもいいが
>>33の態度が気に入らない
49 :
33:04/10/06 17:59:34 ID:???
騙られたんだろ。
まあ作ってもらうより探した方が早いんじゃない?
昔ながらの日記・掲示板兼用スクリプトとか。
51 :
33:04/10/06 18:03:51 ID:???
>>50 そうだったんですか。いろいろ探してみます。
お世話になりました。
>>49 この流れ見たら
>>46があなたじゃないのはわかるから、安心汁。
Web制作板のCGI探しスレに、いまは依頼者叩き・回答者叩きの両方が
棲みついてて荒んでるから気をつけてね。
PHP4とPHP5ってそんなに互換性ないの?
「と」ってなんだよ。下位互換と上位互換じゃ全然違う話じゃないか。
どこを読んだらそう思えるのか・・・
>>54の人は・・・
AとBに互換性がある/ない、というのは普通の日本語なわけだが。
誰も互換性が低いなんて書いてないと思うが、、
PHP4とPHP5がよく似た別の言語みたいに言うのは止めてくれw
しかもなんでいまさらその質問
下位互換確保されまくり。いっそ全部整理しなおせよといいたいくらい
>PHP4とPHP5ってそんなに互換性ないの?
けど最近5で書くのになれつつあるのか、4ではどうだっけとなることがある
エラーと例外をスタティックにしようと思ってパブリックなプロパティを作ってたら、lintした時すげー怒られたりとか
こればかりは自分がやらにゃどうにもならんのですけどね
>>58 AはBに互換性があるけど、BはAに互換性がないってことが言いたいんでそ。phpで言うと、
4のソースは結構5で動くけど、5のソースは4じゃ動かないよってことだと思われ
おい、ちょっと待て。それは当たり前だ!!
>>54-55 PHP4とPHP5は互換性がないの?
⇒ YesかつNo
PHP4はPHP5と互換性がないの?
⇒ No
PHP5はPHP4と互換性がないの?
⇒ Yes
これでいい?
程度問題だけど、4のソースは大抵そのまま動いちゃう。
>>59 > いっそ全部整理しなおせよといいたいくらい
正直OOP周り、Zendエンジンのレストアと中の人のことだから、派手な印象はなかったねえ。
中途半端感ただよう4系に比べれば設計は楽できるようになったと思う。
なんかココ頭の悪い親に学校の勉強を教えてもらってる感じするなあ
>>60 手続き型で書いてる分には4も5も気にする必要はないな。どっちでも大抵動く。
PHPは突然変異的には変わらんのだが、いつもちょっとずつ変更来るんだよなあ。
メジャーバージョンうんぬんよりも枯れてないことのほうが遥かに手がかかる点だと思うのだが。
>>61 質問者なんてどうでもいいって態度だよなw
マニュアルのイミグレ読めば一発で分かるネタを持ってくる質問者も救えなんがw
>>61 藻前みたいな甘えたちゃんは去れってこった。
65 :
63:04/10/06 23:14:18 ID:???
移入してどうする。移住するんだろ、俺orz. . .
初心者的な質問になってしまってすいませんが教えてください。
$result =& $db->query($sql);
$result = $db->query($sql);
上の二つはどう違うんですか?
=& ってよく見るんですが、どういった働きなんでしょうか?
だれか教えてー
69 :
カポコン:04/10/07 03:06:16 ID:???
リファレンスっていうかCでいうポインタな
まーUMLで継承を汎化っていうのと同じようなもんか
70 :
カポコン:04/10/07 03:24:05 ID:???
ポインタ解説
変数にはポインタ型というものがあります。例えば $a = 255;
と宣言した場合、変数はメモリ上では アドレス:値 の順で保持される。
これに$a =& $b とした場合、$bは$aのアドレスを直接値に持つ変数に
なりますこれをポインタという。図と式で示すとこんな感じ。
変数 = 値 //変数名 アドレス:値
$a = 255; //$a 23400:0xff
$a =& $b //$b 23401:23400
$c =& $b //$c 23402:23401
$bはポインタ型で、$aの'アドレス'を保持しています。
$cもポインタ型で、$bの'アドレス'を保持しています。
ちなみに$cの事をポインタのポインタという言い方をします。
メモリにおける変数の構造が、アドレス:値である以上、
アドレスからその変数を探すのが手っ取り早いのです。
故にポインタ型や参照型を設置して、代入の頻度が高い変数のポインタ変数
を予め用意しておくとCPUが探しやすいんだけど
今はコンパイラやPHPの高バージョンでは、参照渡しって排除の方向だから
余り意識しなくても問題無いだろ、C覚える輩はともかく。
ただ、その分オブジェクト指向は強くなりすぎて参照型までついたらもうPHPは・・・w
前、HPの更新してるか調べて、更新してたら取り込んで
自分のtxtに書き込むのはできるか、質問したものです。
勉強しまくって、ようやく取り込んでtxtに書き込みまで出来た。
後は文字列関数使ってなんとかなる見込みたった。
つうかさ、PHPマニュアル見難くて分かりにくすぎ。
色々探したら、もっと分かりやすい所あって
そこ参照してたら、すぐ出来た。
アホな質問をしたなと思ったけど、同時にマニュアルの糞さに腹が立った
72 :
nobodyさん:04/10/07 03:43:15 ID:tqokV3dz
PEARのMail使ってメール送信のスクリプト作ってみたんですが
なぜかHotmailに送ると迷惑メールフォルダ行き。
factoryはsmtpを指定
同じサーバからsendmailコマンドで送信するとふつーに送れる
ヘッダが悪いのかな〜と思い見てるけどよく分らず。
Message-Idとかがないのが問題なのかな・・・
誰か分る人います?
もっとも分かりやすく情報量豊富なマニュアルを持ってる言語だと言うのに。
自分の脳の糞さに腹を立てた方がいい。
おいおいPHPからマニュアル取ったら何も残らんぞ
前にも言ったけど、あのマニュアル無駄が多すぎ。
例えば、名前の知らない料理を出されて
これをそっくりそのまま作ってくださいと言われて
料理本100冊渡された感じ
何冊目にその料理があるのか、分からずに闇雲にページめくってる感覚に似てる
だんだん流れ読めてきたから、なんとなくあのマニュアルのよさが分かりつつあるけど
それでも無駄が多く感じる。
例えば各関数で使用頻度ベスト10くらいのをあげて
○○ ・・・××するタメのもの
とかにすれば見やすいのに、、、と思った。
>>72 > Message-Idとか
シラネ。RFCではつけることになってるからつけて見たら? ついでに他のも色々と。解決したらレポ希望。
>>75 そういうのはチュートリアルね。PHPオフィシャルのは個別の関数リファレンスと言語リファレンスですよ。
最初は、たとえば配列なんかは何にでも使えるのでコンテクストがないと何に使うのかわからねーよって
なりがちなんだよね。71のようにチュートリアル形式で目的別に集められた情報を探すってやりかたはアタリ。
ついでに言うと、関数リファレンスには「イントロダクション」のとこにXXするためのもってズバリ書いてあるよ。
関数の梗概文も基本的に動詞形式になってて、何が出来るのか把握しやすいようになってる。#phpに限らず
使用頻度で分けるのは面白そうだね。人や仕事内容次第だからどうやってレーティングするのか漏れには思
いつかんが、便利そうなので作ってみれ。
どっかにHotmailのスパムフィルターの情報まとまってなかったっけ
文字処理でなんとかしたければ文字列処理関数みればいいし、ファイルを開きたければディレクトリ関数を
みればいいってだけ。チュートリアルが欲しくなったら、主要な関数のとこに一つの関数についてじゃなくて、
その項の関数を色々使った一連の流れを示すサンプルがあることがあるのでそれを探して見るといいよ。
fopenをみてファイルの開き方が分かったら、次は下の方にある関連項目を見てみる。すると、fread()とか
fwrite()なんていうのが見つかるというわけ。例えばだけど
>>71のようなことがやりたいなら、
http://www.php.net/fread をみればネットワークに繋いでデータを取り出すまでが書いてあるし、fosockopen()へのリンクも一応ある。
ユーザーの投稿記事も参考になる。
ネットワークに繋ぎたい、ファイルを読みたい、更新状況を知りたい、データを保存したい、みたいにやりたいことを
明確にしておくとマニュアルはかなり引きすくなる。ほんで
>>76が言うように、慣れてくると引けるようになってくると
いうのは、どんな手続きをやるのかってのがもうイメージできてるので、それにあった項目を引くだけになってるっ
てことなんだろうね。
手続きがどういう処理単位で書かかれるか分からないころは、まず何を探せばいいのかはっきりしない。だから、
やりたいことにあわせてマニュアルを引くんじゃなくて、まずマニュアルを引いてみてどんな手続きで実現するのか
ってことからやらなきゃいけない。不要な情報も大量に入ってくる。最初はファイルあつかうのにファイルポインタを
ラップしたものを使用するんだなんて想像もつかないしね。
こういうのって誰もがとおる道だと思う。
>>78 その通りだと思う
ただ、勉強で初めから分厚い本を選ぶ人はいないのと同じで
基本・中級レベルのをさらっと書いてあるのが好み
1行に効果
2〜5行で用例を載せたのが、頻度順で出てあるのがベスト
それだと、1項目につき5行で済むし。
すみません。
PEAR MDB_Common::limitQuery()
が動きません。
mixed &limitQuery (string $query, array [$types], integer $from, integer $count)
第2引数の arrayは何を入れるんでつか?
PHP5バギーだと思ってたけど
入れてみたらphpMyAdminが問題なく動いてるし
おいらももう全面的に5に旅立ちます
>>80 動かんって言われてもしらんがな。
$typesとあるようにカラムの型。textとかtimestampとか。
エラー処理に使うだけだろうからSelectなんかとは関係ない。
NULLでいいよ。
>>83さん
NULLで動きまつた。
ありがとう。
まだ寝ないんですか?
関数がずらずら並んでるだけのどれだけ見たって処理手順は思いつかないし学べないよ
読むべきもの・個所を誤るととんでもない時間の無駄になる
>>86 そう言えばマニュアルレベルばっかで設計に関する質問は出ないな。
答えられる地震はないがw
DB名とエラーメッセージさえ書けない池沼までいるのに夢のまた夢
せっかく豪華なマニュアルあるってのに
上手く使えない俺はプチリファレンスPHP4買って勉強した。
>>85みたいな謗りは免れないけど4.3以降対応なんで重宝したよ。
リファレンスマニュル、チュートリアル、クックブック
それぞれ分けて考えたほうがいいよ
皆が言ってる「よくできたマニュアル」はリファレンス。
初学者がよく欲しがるのはチュートリアル。
上で文句言ってる人が欲しがってるのはクックブック。
質問。
phpって文字列を数値に変換した場合0になるんじゃなかったっけ?
家の環境(4.3.4)で 'aaa' > 0 は folse になるけど、
レンタルサーバー(4.2.2)では true が返ってくる。
バージョンによって違うの?
違う
質問です。よろしくお願いします。
$title='メールタイトル';
$content='メール本文';
以上2つの文字コードはEUC-JPです。
これをメール送信したいのです。
はじめそのままmail($e-mail, $title, $content);で送信したのですが、完全に文字化けしていました。
そこで、
$title = mb_convert_encoding($title, "SJIS", "EUC-JP");
$content = mb_convert_encoding($content, "SJIS", "EUC-JP");
として再度行いました。
すると、$contentの方はうまく表示されるのですが、$titleは相変わらず文字化けしたままです。
2つとも文字化けせずにメール送信できる方法がお分かりの方、どうかご教授いただけないでしょうか。
よろしくお願いします。
>>44 まさしく同じようなモノを昨日PHPで作ったばっかりだなぁ・・・
がんばれば2日で出来るからがんばって。
>>93 そんなキミには、mb_send_mail
素人が下手にmail()でメールを送るとinfoseek.jp宛てとかに送った場合
文字化けするから素直にmb_send_mail使うといいよ。
質問です
ereg()で使う正規表現で躓いています
検索したい文字列は\OW\で
$aaa = file ("./xxx.txt");
foreach($aaa as $bbb){
if(ereg("\\OW\\", $bbb)){
echo $bbb ;
echo "<br>";
}
}
上記の様に書いて実行したら
Warning: バックスラッシュの後 in /home/site〜
のようなワーニングが出ていました。
\は文字列として扱うのに\\と書くまではgoogleに教えてもらえたんですが
解決法を教えて下さい
\\\\OW\\\\
ちょと質問
ヒアドキュメントの中で式を評価させる
ことってできますか?
関数を呼び出したいんですが
101 :
98:04/10/07 15:10:50 ID:???
>>99 ありがとうございました。
望んだ表現ができました!
もしよろしかったら\が2つでなく4つ必要な理由を教えていただけますか?
103 :
nobodyさん:04/10/07 15:13:15 ID:hyBgkm6M
>>101 phpのparserが\をエスケープに使うから
>>100 > ヒアドキュメントは、2重引用符を使用しませんが、
> 2重引用符で括られた 文字列と全く同様に動作します。
105 :
nobodyさん:04/10/07 19:12:49 ID:Q6Hyz1ya
PHPからSQL Serverに接続したいのですが、接続がうまくいかず困っています。
SQL Server(データベース)自体は自家サーバー上に設置してあり、このデータベースに
レンタルサーバー上にあるPHPページから接続してデータを処理したいのですが、
そもそもこれは可能でしょうか?
PHPマニュアルのサンプルコードを参考に
$conn=odbc_connect("DRIVER=SQL Server;SERVER=".$ser.";UID=".$user.";PWD=".$pass.";
DATABASE=".$db.";Address=".$ser.",1433","","");
という感じで接続を試みているのですが、
「S1090 文字列またはバッファの長さが無効です」というODBCエラーが出ます。
このエラーの意味するところがまた良くわからず閉口してます。
ちなみに自家サーバー上に実際に接続を行うPHPページを置いた場合は接続がうまくいきました。
今までACCESSのmdbファイルにodbc_connect()で直接接続していたのですが、
今回MS SQL Server経由で接続することになったため、そのままなんとかodbc_connect()で
接続しようとしてるんですが、mssql_connect()に切り替えれば済む話なのでしょうか?
どなたかお助け下さい!
>>105 そのまんまじゃ先ず無理。
レンタルサーバ屋に設定してもらう必要があるが、
そこまで顧客の要望を受け入れるクラスのサービスを借りてるの?
107 :
nobodyさん:04/10/07 19:34:54 ID:Q6Hyz1ya
>>106 書き込みありがとうございます。
レンタルサーバー会社にその辺の問い合わせをしてみます。
ちなみに通常、サーバー会社にはどういうことを設定してもらう必要があるんでしょうか??
SQL Serverをインストールしてもらう、とかでしょうか???
>>107 ?Windowsのサーバなの、借りてるのは。
サーバ屋にも、借りてるサービスの内容にもよる。
細かく設定について依頼をしないと駄目な場合と、
借りてるサーバで動いてるPHPから自宅のMS SQL-Serverに
ODBCで繋げたいから、そっち側の基本的な設定やってくれで済む場合もある。
インターネットを経由したリモートのDBMSから情報を引き出すって、
結構高度というかそれなりに必要があってやることだけど
PHPの動いてるWebサーバとDBMS間の通信のセキュリティとか考慮してる?
ただ今借りてるところでMS SQL-Serverが使えないって理由だけなら
使えるようにセットになったWindowsサーバのサービスを借り直した方が良いよ。
109 :
108:04/10/07 20:10:19 ID:???
回線の太さや契約条件、その他諸所の条件に合うのなら、
簡単なのは自宅の方にWebサーバを立ててしまうことだ。
外のコンテンツから必要に応じて取り込んでもいいし、
全部自宅から出力してもよい。
110 :
nobodyさん:04/10/07 20:34:52 ID:Q6Hyz1ya
>>107 >>108 レスありがとうございました!
セキュリティに関しても気にはなっていたのですが、
108さんのおっしゃるように自家サーバーにデータベースに接続するページだけを
置いてレンタルサーバー上の他のページからリンクするようにすれば、
WEBサーバーとDBMS間の通信のセキュリティはとりあえず大丈夫!
ということでしょうか?
いろいろ聞いてすみません。はっきり言ってド素人なもので。。。
111 :
nobodyさん:04/10/07 20:36:04 ID:Q6Hyz1ya
↑
108、109さん宛の間違いでした。
ド素人なら素直にDB使えるサーバに移るべし。
113 :
nobodyさん:04/10/07 20:59:45 ID:kpmAjhNu
>>105 問題は自宅側だろ?
自宅のMS SQL-ServerはちゃんとODBCの外部接続はできるように
してあるんだろうな?
>>110 単純に繋ぐとそれもダダもれなんで、自己認証でもいいからHTTPSで喋る
ようにするとか工夫しないと充分とは言えないと思う。
最もセキュリティは扱う情報のレベルの応じて考えるものなんで、
そんなことは不要かもしれないし、そもそもWebサーバから
読めるようにしてはいけないのかも知れない。
ド素人だったら全部込みでセキュリティ関係の設定も
考慮されてるサービス選ぶのが最適解だと思うよ。
共有サーバなんて危なくて使えネェぐらいと言えるぐらいの
知識を付けた賢い客になるべきで、賢い技術者になる必要はない。
116 :
nobodyさん:04/10/07 21:45:38 ID:eGrZpUzk
PHPで文字列を括る場合「"」と「'」どちらで統一するのがいいですかね?
やっぱC言語風に「"」ですか?
>>116 ケースバイケース、どうしても「統一」したいなら半島へ逝け。
>>115 >そんなことは不要かもしれないし、そもそもWebサーバから
>読めるようにしてはいけないのかも知れない。
そんなんじゃ、Webアプリの価値なんてなくなるよ。
必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。
まあ、セキュリティのみに関して言えば、共用サーバという時点で
論外だけどな。
>>116 もしその違いがわからないとしたら致命的。
プログラマすら名乗れない。
>>118 いや、Webアプリの価値は開発から運用まで巷のツールなどが利用できること。
そこで言いたいのは、VPNとかの採用を考慮すべきで情報の内容ではないのかってこと。
122 :
nobodyさん:04/10/07 23:09:19 ID:YIBUt39D
>>118 >必要なら、Webサーバ-DBサーバ間を暗号化すればいいじゃない。
話が高次元になったところですみませんが、この暗号化は実際にはどうすればできますか?
PHPの関数でcryptみたいなものを使うのでしょうか?
サーバーを適切なところに変えるのが一番安全なのかもしれませんが、
理由あって変えないで済むならなんとか方法を探したいと思っており。。。
123 :
98:04/10/07 23:40:46 ID:???
>>104 レスありがとうございました
【php パーサ バックスラッシュ エスケープ】でぐぐったら
http://php.s3.to/man/ref.info.html がかかりました。
DB側でなくphp側でエスケープ処理がかかってたんですね。
で、
phpinfoのmagic_quotes_gpc,magic_quotes_runtime,magic_quotes_sybase
はLocal、Masterとも全部Offになっていましたが
それでもエスケープしてしまうものでしょうか?
マニュアルはOnの時にエスケープ処理が入るとありましたが
他にも関係する設定箇所があるのでしょうか?
>>124 マニュアルくらい読めよ
オレは「統一」なんて大それた事はできないけどな。
126 :
98:04/10/07 23:50:15 ID:???
>>124 シングルだと変数が展開されなかった気がします。
128 :
118:04/10/08 00:03:08 ID:???
>>120 >105がどういう内容のアプリを作ってるのか知らんから適当に言うが、
VPNは外部公開せずに拠点間をネットワークで繋ぐエクストラネットだろ?
今回はそういう話じゃないと思うんだがな。
VPNの導入だってめんどくさいし。freeのでなけりゃコストもかかるし。
>>122 phpの関数レベルじゃできないと思うよ。
OpenSSL、OpenSSHのSSHポートフォワーディングでいけるが、
共用サーバなので、root権限を使った設定は無理だろうな・・・。
ということで、どこまでのセキュリティを確保したいかで、
変わってくるけど、その共有サーバでは無理かもよ?
マニュアル嫁=日本語がふじゅうな人
本当に理解してないから、すぐ言えないんだよね
感覚でしか覚えてないから。
>>124 >>126が正解だけど、使い分けに関しては慣れだね。
俺の場合は連想配列のキーや文字列リテラルは「'」で
シーケルは「"」で括るのが個人的に見やすいと思ってそうしている。
もちろん、改行・インデント・コメントの三大マナーをきっちりやった上でね。
PHP初心者スレ誰か立ててくれ、
>>129みたいなウザキモ甘ったれ粘着厨
でも相手してやれるような。
マニュアル読めなんて極めて親切な回答じゃん。
マニュアルも読めないほど日本語不自由な人は別としても。
のびた「宿題教えて」
パパ「百科事典嫁」
↑ドラえもんでのネタ
>>131 痛いところを突かれたからって、いちいちレスするな。見苦しい。
熟練者ならどんな些細な質問にも初心者が一番理解しやすい方法で回答できる。
一気にネタ臭くなった
さらに、君が些細な質問にすら簡潔な回答ができないとすると、
それは君が実装方法を丸暗記しているだけで概念も含めた総論として
その解決方法を理解できていないからではないかね?
各種MLを拝見していると常に感じることだが、
この世界には
>>136で挙げたような「なんちゃって習得者」がいかに多いことか。
いいかげんPGはコーディングできる技能を"特別な技能"だとする思い上がりを捨てるべきだ。
138 :
nobodyさん:04/10/08 01:20:10 ID:h9hTVebP
つーかさ、トリップつけてくんない?
自分でいうのも何だが、PG・SEなんてものは事務員に毛が生えた程度の職業だと思う。
少なくとも俺は自分のことを"エンジニア"とは称さない。
まあ理系の就職相談の指導者が生徒に将来なるなとまず言う職業は
SEだからね。
>137
それは同意だが、マニュアル嫁はとても良い回答だと思うよ。
俺は家電のマニュアルもちゃんと読む。、
142 :
nobodyさん:04/10/08 03:12:11 ID:Gf9YwG4z
phpのコーディングをしてるときは「完璧なインデント!」と思うが、
いざ出力されたhtmlを見るとげんなりする。
みなさんどうしてますか?
意味わかんね
HTMLのインデント?
出力されたhtmlのソースのインデント。
145 :
142:04/10/08 03:22:43 ID:???
↑142です
インデントするようにコーディングすればいいじゃん。
147 :
142:04/10/08 03:26:59 ID:???
…それだとphpのコーディング時に読みづらくないですか?
>>142 出力されるhtml(と解釈されるテキスト)には、
インデントはおろか改行すら入れないようにしている。
どうせデバッグの時しか見ない、転送量の削減等の理由で
よく動的に生成されるページでコメントとか入っているのがあるが
あれはデザイナ向けか?
そもそも、どういう書き方してるんだよ。
151 :
142:04/10/08 03:38:21 ID:???
!!
デバッグ終わったら整形してうpすりゃいいってことか。
何もそのまま使うことはないのか…おれの馬鹿
日本語の検索で詰ってる
調べてみたらmb_を使えばいいと出てるが、
設定しなきゃいけないらしい
指示通り設定したら、こんどは何か足りないと注意された。
分かりにくすぎだろ〜これ・・・・
いや、く全国100万人のPHPデベロッパーは
ちゃんと設定できてるよ
さすがに馬鹿のたまり場になったのでスレを分けよう。
質問スレが隔離効果を狙って立てられているのは知っているつもりだが、
ごく普通のPHPの疑問を解決するスレが欲しいユーザはきっと漏れだけじゃないはず。
そこで問題になるのがスレタイなのだが。
聞いてばっかりになりがちな「質問スレ」というのは止めにして、
お互い問題を提出して有益な情報を出し合えるようなものにしたいところ。
言葉にするとしゃらくさいものに思えるかもしれないが、そういうものが必要だ。
しかしCommonGatewayInterfaceスレのように廃墟になるのはごめんだし、
PHPト学会スレじゃなんのことかさっぱりだ。何かハッとするようなブレイクスルーを
持っている人はいないかい。
もうちょっと暖かく見守ってくれ
回答者がスレのレベルを決めてどうするんだ
最終的には難しい質問しか書けなくなって、誰も答えられない
自慢大会みたいなスレにならない?
---------------
まぁ初心者スレがないから、ココに書いてるのもあるけど。
> 最終的には難しい質問しか書けなくなって、誰も答えられない
> 自慢大会みたいなスレにならない
初心者スレと別れていたころがあるが、そうはならなかった。
なぜ今後そうなると考えているのか理由もかいてくれないと何とも判断のしようがない。
このスレッドはあっていいんだ。"と'の違いや=&、&$が何か、「設定ができない」とだけ
書いてあって救いようの無いレスを打ち合うスレがあるのは否定しない。
けれども最低限マニュアルを読み、テストをする姿勢を要求するスレッドがあっても
いいんじゃないだろうか。その上で自己解決困難な問題について議論してみたら、
有意義な結果が得られることにならないだろうか。別にソースハックを当然のように
要求するスレッドを作りたいわけではない。
読んでくれなかったようだが、「ごく普通のPHPの疑問を解決するスレ」が一本あって
いいんじゃなかろうか、という程度の話だ。大げさに考えることは無い。
PHP質問スレ自体は今後ますます必要になるだろうな。
調べずに聞いてもいい・簡単なことを聞くのは恥じゃない
となったあたりから、うんざりする質問が増えてきて
スキルのある人は出て行ってしまった感がある。
汎用的なスレや板ほど、何でも書けるせいかダメになりやすい。
あまり伸びず情報もさして出てこないような個別スレのほうが
まともなまま生き残る。どっかで分けなきゃいけない気もするね。
以前、スレを初質とその他に分けたけど
質問者どころか回答者も使い分けれないって事で
また合体したじゃん。
放置とかスルーとかできるほど民度が高くないから
分けても無駄無駄。
>>126 変数以外にも、エスケープシーケンスも展開されない。
>>124 使い分けに関しては、変数などの展開が必要ならば「"」不要なら「'」
文字列リテラルに「$"\」などの記号を多く含む場合は「'」程度かな。
必然的に
>>130に近い使い分けになると思う。
>>142 テンプレートを使ってるよ。
>>155 初心者スレもあったけど、初心者スレとPHP質問スレを
分けて使ってくれないんで無駄つーことで合体したんじゃなかったっけ
マニュアル読まない
>>1読まないエラー読まないってな人は初心者スレを作ってあげても
住み分けてくれない罠
>>126 変数以外にも、エスケープシーケンスも展開されない。
どういうことよ
'\''がパースされないって認識?
設定変えてApache再始動したら、mb対応した。
またバカなこと書いたと反省した(・∀・)
164 :
157:04/10/08 04:39:41 ID:???
質問スレもう一個立てるってのは分けることになら
んでそ。そういうことじゃなくてさ。「質問」のためのス
レッドじゃ上手くいかないから別用途でってことね。
レベル分け無理ってのは同意。
>>162 エスケープシーケンスつーとあれだけど、'\n'とかね。'/\n/'はPHPが賢いので有効。
166 :
98:04/10/08 09:28:37 ID:???
棲み分けに関して
何回かこの板で質問させてもらった98ですが、
スクリプト改造スレみたいに【希望するレスの形】別なんてどうでしょう?
自分がつまずきレベルを考えたら3種類あって
【1、マニュアルの該当しそうな所が予想つく→マニュアル読む】
【2、マニュアルのどこに該当するのか見当つかない→キーワードでぐぐる】
【3、なにでぐぐっていいのかすらわからない】
くらいに大別できるかなと思うので3番目は論外にせよ
ヒントをくれるスレ、マニュアルのどこそこに該当するからそこ嫁、なんて
2番目の状態でぐぐっても何もなかった時に質問できるスレがあったらいいなぁ
なんて思います
長文スマソ
167 :
nobodyさん:04/10/08 09:31:09 ID:wO90jo1V
$log = fopen(log.dat,"r+");
set_file_buffer($log, 0);
flock($log, LOCK_EX);
$kiroku = file(log.dat);
処理
rewind($log);
ftruncate($log, 0);
fputs($log, 処理の結果);
flock($log, LOCK_UN);
fclose($log);
排他ロックはこれでOK?
>>167 flock() に失敗したときの処理はどうなってるの?
169 :
167:04/10/08 10:09:33 ID:???
170 :
167:04/10/08 10:27:11 ID:???
if (!flock($log, LOCK_EX)){ echo"ロックに失敗しました"; }
凄く遅レスだけど、動的ページでhtmlにコメント入れてあるのは
自動巡回&切り出しソフトとかで切り出すのに重宝するよね。
>>167,170
if (!flock($log, LOCK_EX)){ echo"ロックに失敗しました"; }
else {処理;}
とかいう突っ込みをしてみる。
safe modeがオンのときに画像アップロード等の
phpアプリを実行することはできますか?
試してどうだったんだ。
馬鹿がいる。
176 :
159:04/10/08 18:11:51 ID:???
>>162 '/''のエスケープは有効だったね。
>>152 は、(マニュアル通り) *特殊文字の*エスケープシーケンスに訂正します。
>>165 フォローthx u
177 :
nobodyさん:04/10/08 19:08:16 ID:EsMqKh23
日付を使って条件判断したいのですが
以下のようにやってもうまくいきません。
例えば10月の分は全部syori2に行き11月の分はsyori1になります。
どっか間違っていますでしょうか?
if(date("Y/m/j")<date("Y/m/j",mktime(0,0,0,$month,$day,$year))){
syori1
}else{
syori2
}
>>177 これならへたれな俺でも回答できる
UNIXタイムスタンプで比較すれ
えっ?それは・・・
>>163 mb関数はバグがあるからちゃんと返却値を確認しつつ使う必要があるよ。
例えば、mb_convert_kana()などは、全角スペース→半角スペースの変換ができないから
preg_replace()なんかで受ける必要があったりとか。
>>177 なぜ数値として比較したいのに「/」を入れて文字列にしてるのかと小一時間(w
182 :
179:04/10/08 21:24:55 ID:???
ごめん、質問をよく読まないで書いた。
よく読んだら
【10月の分は全部syori2に行き11月の分はsyori1になります。】
これが望んでいる動作なのか望まないのに
そのように動作しているのかすらわからなかったorz
プログラミングではなくスクリプトそのものをフリーで探しているのですが、
その場合の質問もこちらでいいのでしょうか?
ギャラリー系のPHPスクリプトでPHP4.0.6/DB無し/ImageMagik・NetPBT(?)無しのサーバーで
ブラウザからUpload出来、自動リサイズ可能で各画像/アルバムのDiscriptionの編集が効くようなスクリプトはご存じないでしょうか?
注文が多くてスミマセン。
184 :
183:04/10/08 22:42:32 ID:Us1p5CHj
連続カキコすみません。
ageるのを忘れていました。
>>182 危うく同じ過ちを犯すとこだったよ <-- if ($month == 10) と書こうとしてた
>>177 とりあえず、"Y/m/j"の場合は、桁数が可変なのでこれを固定長にする。
その前に日付フォーマット文字の(j)は"分"なんだけど、比較したいのは"日"(d) なんじゃないかな?
186 :
185:04/10/08 22:55:59 ID:???
>>185 自己レス
> 日付フォーマット文字の(j)は"分"
ごめん、勘違いしてた.
> j ... 日。先頭にゼロをつけない。1 から 31
> d ... 日。二桁の数字(先頭にゼロがつく場合も)01 から 31
>>183 Web製作板のほうにCGI探しスレがあるんでそっちで。こっちは自分で作る板。
向こうアホが張り付いて荒らしてるんで心して行った方がいいよ。
よぉ、ネタが途切れてるみたいなんで振っとくよ。
PHPではポインタの中身は見れないんだよな〜。
見たいなー見たいなー、見れる方法あればきぼんなんだな〜。
<?php
$a = 0xff;
$b =& $a;
echo(printf("%p",$b));
?>
とかじゃー、出ないし・・・orz。
まだ参照をポインタだと勘違いしてるのか。
期待してるんだからもっと勉強しろよ。
ポインタアドレスをPHPで使う必要が皆無なので出来ません
もうちっと勉強できたらバカボンを名乗るのを認めてやろうぜ
PEARで使えるものって何かあります?
素人は引っ込んでろ
自分で作りたくなくて、便利でオススメなモノだ
板違い
200 :
199:04/10/09 03:52:38 ID:???
誤爆った
php4のクラスって5でもほとんどそのまま使えるんだね。
4のスタイルで書いた方が面倒くさくなくていいかも。
デリファレンスしたり@accessに気をつかったりスタティックなプロパティはメソッド
にもたせないといけなかったりオブジェクトは必ず変数にしまう必要があったり等々で
4のオブジェクトはめんどい。んでE_STRICTでとんでもないことに。
もちろん自分で使う分にはいいんだけど。
203 :
nobodyさん:04/10/09 06:26:47 ID:Iitzl1Oa
redhat9
apache2.0.52
php5.0.2をインストールしてapacheを再起動すると下記のようなエラーがでますが、
何のバージョンをあげればいいのでしょうか?
mod_php.cで20020628のファイルなんて見あたらないのですが・・・
-----------------------
# /usr/sbin/httpd -k restart
>httpd: module "/home2/Download/php-5.0.2/sapi/apache2handler/mod_php5.c" is not compatible with this version of Apache (found 200
>20628, need 20020903).
>Please contact the vendor for the correct version.
204 :
nobodyさん:04/10/09 12:32:31 ID:KzxQhnSE
質問です。
function hoge($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k) {
処理;
}
みたいな引数が多い自作関数てやめたほうがいいですか?
なんかごちゃごちゃして分かりにくいきがするのですが。
皆さんは自作関数の引数はどれくらい持たせるのでしょうか?
206 :
nobodyさん:04/10/09 12:38:46 ID:JKfj4SS6
処理によりけり。
てか、何故にそんなに引数いるねん。
多分どっか無駄があると思うで。
207 :
204:04/10/09 12:44:30 ID:???
>>205 >>206 204の例はちょっと極端でした・・・
今までは引数が2,3こくらいしか扱ったことが無くて、
今回いきなり引数が6つくらいあるのです。
だからあまり多い引数の関数に慣れていないというか。
引数6つって普通でしょうか?
hogeってなんなんだろうか?
なんだかすごい響きが間抜けな気がするんだが。ホゲ!
Huge Over Gigantic Expletive
>>207 6つ全部が本当に必要なパラメータなら引数にとるしかない。
しかし引数が多い場合は大抵、関数の設計に問題がある。
関数の行数が長すぎたり、ひとつの関数のなかで複数の目的を
果たそうとしていたり、引数のフラグ値によって処理を切り替え
たりしていたら、危険信号。
少し古い本だが、「CODE COMPLETE」には引数はおおむね7個
以下に抑えるべきだと書いてある。
>>204 連想配列やデフォ値の設定をうまく使ったほうがいいんじゃないかい?
function rect($options)
{
.....
}
$options = array(
'color'=>'blue',
'width'=>60,
'height'=>100,
);
rect($options);
213 :
nobodyさん:04/10/09 14:39:11 ID:80FyrwRs
php で webアプリを作る時、ディレクトリ構成どうしてますか?
いつも最初悩むんです。
設定ファイルをどこに置くとか、設定ファイルやライブラリへのパスは相対パスにするか
絶対パスにするかとか include_path にいれちゃうとか。
smartyのテンプレートをどこに置くとか、compile_dir をどこにするとか。
レンタルサーバーで 全部public_htmlの中にいれなくてはいけなかったりとか
いろいろ環境によって違うので悩みます。
漏れはこうしてるぜ!ってのあったら教えてください。
214 :
203:04/10/09 14:57:11 ID:Iitzl1Oa
誰かわかりませんか?
215 :
nobodyさん:04/10/09 15:04:30 ID:WliLpyVq
>>215 >>188 >>213 PHPでなくてもいいからフレームワーク弄ってみたら。
ドキュメントルート下に全てを置くような制約があるなら、
もう全て諦めて適当においても良いくらいの状況。
P H P
hogeって「なになに」とか「ほにゃらら」という意味だと思ってた…
hoge&fuga文化も知らない輩でも使ってるPHPって・・・・。
PHPの「参照」って、ポインタと思って間違いない?
レクチャーしてほしいんだが・・・
>>203 INSTALLに書いてある通りにインストールしろ
225 :
213:04/10/09 18:36:46 ID:???
>>223 要するに、Cのポインタは ポインタ側にその構造(intなのかcharなのか等)を保持しているけど
PHPの参照(リファレンス)はその情報すらもヒープかそれに相当する部分にあり
参照に使う変数はもとの変数やオブジェクトのエイリアスとしてしか機能しない
ということね
ファイルにポツポツと出力するとき
いちいちfopenして書いたりするのと
system("echo $hoge >> file"); とか書いちゃうのと
どっちがダサい?
>>226 > Cのポインタは ポインタ側にその構造(intなのかcharなのか等)を保持している
してねーよ。Cのポインタはただのアドレス値。
型はコンパイラが知ってるだけ。
> 参照に使う変数はもとの変数やオブジェクトのエイリアス
シンボルテーブルのエイリアスって書いてあるから
変数の別名を作れるだけでヒープ上のオブジェクトの参照は作れないだろ。
>>228 >型はコンパイラが知ってるだけ
わかってるよ。便宜上そう書いただけ。
インクリメント等の挙動はポインタ側で決定されるでしょ。
荒れる前に言っとくと、
PHPスレだから、Cのコンパイラの実装方法なんてどうでもいいよ。
ポインタ型がインクリメントを適切に扱えればCを使う人にはそれ以上気にする必要が無い。
同様にPHPを使う人は、PHPにポインタが無いことと
ポインタ型の概念を持ち込むことは無意味だということを知っていさえすれば良い。
>>231 オレも実装の方法はどうでもいいと思ってるよ
>219
hoge&fuga文化って何ですか?
検索してもサンプルの山に埋もれて出典が発見できませんでした
つーかこんなくだんない知識でアンデンティティ保とうとすんなよ
>234
ありがとうございました。
まさかとは思っていましたが「ほげ〜」のほげだったとは…
hoge、fuga、foo、bar
foo fightersだよ
239 :
にゃんこ:04/10/10 02:34:10 ID:DhJ+i6pZ
こんにちは。
ちょっと探しもの中です。
テキストカウンターで昨日・今日・合計が表示されるやつで
ちょっとやそっとじゃ、飛ばないカウンターを探しています。
バックアップ機能がついてると、さらに嬉しいのですが・・・
残念ながら、
ttp://php.s3.to/ さんの昨日今日カウンターは、すぐに飛びました。。。。 (ToT)
アクセス多くても、あんまり飛ばないよ!っていうのを知ってる方、
ぜひ教えてください。宜しくお願い致します。
>>239 過去にもあったなそれ。
数スレ前に飛ばないようにする改造点が上がっている。
243 :
nobodyさん:04/10/10 08:00:23 ID:6dJYwntE
以前作ったファイルの条件分岐(while)の部分を修正したいんですが、
無限数を表現する記号かなんかってありますか?
$hoge=200;
if($a==$b){
$hoge=∞; ←ココ(無限大マーク)
}
while($hoge > 100){
//処理
}
みたいな感じで書きたいんです。
それがあれば簡単に修正できるんですが…。
ちなみに単純に、
while($hoge > 100 || $a==$b)
って書き方したら「あるいは$a==$b」の部分は無視されて、
最初の「$hoge > 100 」の部分がfalseになった時点でループが終了してしまいました。
while文ってそーゆーもんなんですね…。
244 :
nobodyさん:04/10/10 08:00:46 ID:iO0fDOFW
あるオブジェクト(A)の返り値としてオブジェクト(B)を作ったとします。
この(B)って、自分で破棄しなくていいんでしょうか?
メモリーリークの原因になったりはしませんよね?
245 :
243:04/10/10 08:05:55 ID:6dJYwntE
あ、全然別のところをいじることで今解決しました。
すいません。
>>244 PHPではオブジェクトの破棄は必要なし。
放っておけば良いです。
248 :
nobodyさん:04/10/10 19:04:14 ID:TR7Uhe7O
Apache/1.3.28 (Unix) PHP/4.3.5
PHP Accelerator v1.3.3r2
MEMORY:160MB
上記の環境で使用しているのですが、apacheのログに時々次のようなメッセージが記録されます。
[warn-phpa] No mempool 2 memory (pid xxxx)
[notice-phpa] shm cache temporarily disabled (pid xxxx)
'phpa_cache_admin -mv'を実行すると'cache disabled'と表示されるため、
毎回手動でキャッシュを有効にしているのですが、他に解決方法はあるでしょうか。
>>243 while文は関係ない
||演算子は OR 論理演算子
A || B
という式があった場合
Aが真である限り、Bは評価(実行)されない
>>249 ん?評価されないのか!
これはまた一つ勉強になった!ありがとう。
ってことは
真 || func()
とかやってもfunc()は実行もされないと解釈していいのかな?
試そうともしてないし、一つも勉強になってないですね。
Cから勉強しなおせ。短絡論理演算子とビット論理演算子の違いも分からんのは辛いな
253 :
249:04/10/10 21:47:04 ID:???
>>250 A || B は AまたはB が真である場合に真となる
左辺値から順に評価を行い、結果が真であった時点で
論理演算の結果を真として、その右辺値以降の評価は行わない
(問1)
$a = 0;
if ($a == 0 || ++$a == 1) ++$a;
echo $a;
(問2)
$a = 0;
while ($a < 4 || $a % 2 == 0) ++$a;
echo $a;
練習問題でもやって覚えんさい
適当な問題ですまんけど
てか
>>250は or die() を使ったことがないんだろうか…
255 :
250:04/10/10 22:19:55 ID:???
あぁ、or die()も A or BでAが偽の時点でBが評価されるという意味か、、、
ってかそんなことも考えずに使ってました orz
>>253,254
分かりやすい解説&ヒントありがたいです。
256 :
248:04/10/10 23:15:25 ID:???
見事にスルーですね
デナオシテキマス
>>248 てか、それだけだとPHPの問題かどうかすらも分からんです。
OSのヴァージョンから洗いなおしたほうが良いのではないっすかね?
メッセージからしてアロケートエラーの類ではないかと思えますし。
PEARのhtmlテンプレートでどれが一番いいですか?
なんなんだコイツら
261 :
:04/10/11 04:42:47 ID:CqR/mj9n
OSがWINDOWS XP HOMEで自宅サーバ上でアパッチを使って画像投稿CGIを実行したのですが、画像が表示されません。
ローカルフォルダのイメージフォルダに画像は保存されている
のですが、 x印になります。
どの画像掲示板スクリプトを使っても、そういう症状になります。
ちなみに、PNG画像カウンタなどは正常に数字画像が表示されます。
CGIスクリプトのイメージの設定は以下のようにしました。
$ImgUrl = "
http://localhost/cgi-bin/clip/img/";
それと、直接画像にアクセスしようと以下のURLを入力したの
ですが、Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
と出ます。
http://localhost/cgi-bin/clip/img/4.png 使用ソフトは、Apache/2.0.52 PHP/4.3.9 ActivePerl-5.8.4.810
です。
httpd.confかphp.iniが問題だと思うのですが、アパッチかPerlの設定のどこを直せばよろしいでしょうか?
教えてください。
>>261 その画像404だったぞ?URLあってる?
263 :
:04/10/11 05:16:21 ID:CqR/mj9n
>>262 自宅のパソコンのローカルホストのURLです。
インターネット用のURLではありませんで、何の汎用性もありません。
おお天然じゃ。ありがたやありがたや
269 :
nobodyさん:04/10/11 06:45:52 ID:CqR/mj9n
>>264 ありがとうございます。
リンク先の3番目の方法を試しましたがうまくいきません。
<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
AddHandler image/gif .gif
AddHandler image/jpeg .jpeg .jpg .jpe
AddHandler image/png .png
</Directory>
どうしてでしょうか?
271 :
269:04/10/11 07:29:54 ID:CqR/mj9n
272 :
269:04/10/11 07:58:55 ID:CqR/mj9n
274 :
273:04/10/11 08:31:45 ID:???
こうなってる
<dd>
<p><img src="
http://localhost/cgi-bin/clip/img/soon.gif"><p>
<font color="">test</font><br><br clear=all>
<dt><hr>[<b>2</b>] <font color="#008040"><b>テスト</b></font> 投稿者:<b>ななし</b> 投稿日:2004/10/11(Mon) 04:41 [<a href="./clip.cgi?res=2">返信</a>] <br><br>
<dd>
Apache 使ったこともないなら黙ってろ
276 :
273:04/10/11 08:46:51 ID:???
>>275 すまん。
一応使ったことはあるんだけど・・・。
277 :
45:04/10/11 08:47:01 ID:???
>>277 ソース見たら変換されていないわけだが。
逆に変換されるとしたら串通さないと自分のPCからは画像は見えないはず。
あ、下のほうはドメインサーバが判断してくれるのか。
280 :
273:04/10/11 08:51:28 ID:???
>>277 おれが言ってるソースはPHPのソースじゃなくて
PHPが吐いてるHTMLのソースなんだけど・・・
281 :
45:04/10/11 09:06:51 ID:???
すみません。
PHPがCGIでサーバにインストールされているときは
モジュールの時と同様にPEARがつかえますか?
283 :
45:04/10/11 09:13:29 ID:???
>>282 マイコンピュータの環境変数をいじると使えるらしいよ。
つーかそもそも500で見れないんだから>264の話だと思うんだがなぁ。
とりあえず directry 指定は最後にスラッシュ入れた方がいいとして、
リスタートしてないとかそういう話じゃないよな?
287 :
45:04/10/11 09:24:33 ID:???
>>284 絶対パス以前に、普通に画像に直リンしても見れないんです。
ローカル、ネット上を問わず。
画像自体は決して見れない設定になってませんし、アパッチと
パールの設定の問題だと思うのですが。
>>285 リスタートはちゃんとしてます。
>>287 画像をそのフォルダにcgi通さずに置いてもみれないの?
だとしたらapacheの問題。もしくは両方悪い場合もあるかもだけど。
もしそれで見えるならcgiの問題
289 :
288:04/10/11 09:56:22 ID:???
>>282 dl('php_win32std');
win_message_box('試せよ。エラーが出たなら書けよ。使えないと思うなら理由を書けよ。');
┌───────────────┐
| PHP. |
├───────────────┤
|試せよエラーが出たなら書けよ ..|
|使えないと思うなら理由を書けよ ..|
|分かったらOKを押してもいいぞ .|
| ┌───┐ |
| | OK.. | |
| └───┘ |
| |
└───────────────┘
|| ̄ Λ_Λ
||_(Д`; ) 「キビスィ・・・」
\⊂´ )
( ┳'
なに言ってんねん!
完全に板違いだなw
余所でやってくれ
PHPのgrepって処理用の関数を作って
その関数名を文字列で渡さないといけないんだね。
ぶっちゃけ屑だな。
( ´,_ゝ`) ヘェーヘェー
>>298 grepに渡す関数でスコープ内の変数参照したいとか?
それだったらcreate_functionで無名関数作れるけど。
初歩的で行き詰まりました。
echo "<table><tr>";
if($dh = opendir($dir)){
while(($file = readdir($dh)) !== false){
$link = $dir.$file;
$size = @getimagesize($link);
if(eregi("\.(gif|jpe?g|png|bmp)$",$link)) echo "<td><img src=$link width=".$size[0]." height=".$size[1]."></td>";
}
closedir($dh);
}
echo "</tr></table>";
これだと $link をすべて一行で表示してしまうので
10個単位(もしくは $link 全数が割り切れる数)で行を追加したい。
けどできない・・・
count() で除算しても何故か一つのセルで一行になってしまうのです。
やり方が悪いのか、思惑通りにならないよ〜〜〜
(´・ω・`)ヘルプミ
303 :
nobodyさん:04/10/12 00:01:47 ID:4ikvnffT
WindowsでPHPを使う場合なんでActivePerlみたいに
手軽にできないのかね?インストールした後にPath設定したり
PHPファイルの関連付けとかしたり、すげぇ面倒なんですけど。
304 :
nobodyさん:04/10/12 00:12:49 ID:koXfXZjL
>301
$count=0;
echo "<table><tr>";
if($dh = opendir($dir)){
while(($file = readdir($dh)) !== false){
$link = $dir.$file;
$size = @getimagesize($link);
if(eregi("\.(gif|jpe?g|png|bmp)$",$link)) echo "<td><img src=$link width=".$size[0]." height=".$size[1]."></td>";
$count++;
if($count%10 == 0) echo"</tr><tr>";
}
closedir($dh);
}
echo "</tr></table>";
>>303 手軽にインストールできる物もあるけどな。
あんたが知らないだけで。
>>303 窓鯖だけどそんなことやったことないんですけど
>>305 もう少し徹底して頂きたく
>>303 PHPDEVとか色んなのが一括してWindowsインストールできるやつあるやん。
310 :
nobodyさん:04/10/12 03:07:39 ID:bZlbaUCT
php.iniは、output_buffering = 4096
[mbstring]
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.detect_order = auto
mbstring.substitute_character = none
なのですが、
<form method="post" action="
https://www.example.com/admin/example.php">
<input type="text" name="categorytitle" value="Outlook トピックス" />
(中略)</form>
をsubmitすると、
/admin/example.php
の中で、
$categorytitle = addslashes(getParam('categorytitle'));
print $categorytitle;
exit;
//-------------------------------------
function getParam( $name )
{
$val = $_GET[$name];
if( $val == "" ){
$val = $_POST[$name];
}
return( $val );
}
の結果が、
「Outlook gsbNX」と表示されてしまいます。(本来は「Outlook トピックス」と表示されるはず)
こんな文字化けの仕方は初めてみたので、どこが悪いのかちょっと検討がつきません。
どなたか解決方法ご存じのかた、教えて頂ければ幸いです
311 :
310:04/10/12 03:09:03 ID:???
すいません、言い忘れましたが、PHP5.0.2です。
313 :
310:04/10/12 04:26:44 ID:???
>>312 えと、apacheの設定ですか。
普通に、
LoadModule php5_module libexec/libphp5.so
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
と書いてますが・・・ごめんなさい、回答、はずしてます?
314 :
301:04/10/12 05:47:58 ID:???
315 :
301:04/10/12 06:48:29 ID:???
if($file % 10 == 1) echo"<tr>";
if($file % 10 == 0) echo"</tr>";
これで解決しますた!
316 :
nobodyさん:04/10/12 11:28:18 ID:scXqgxmN
おいお前らちょっと教えてください。
任意の秒数($sec)を時間、分、秒に換算したいのだけど
これをスッキリとコーディングするにはどうするの?
今は下のように書いています。
<?php
$hour = floor($sec/3600);
$amari_hour = $sec%3600;
$min = floor($amari_hour/60);
$amari_min = $amari_hour%60;
echo $hour."時間".$min."分".$amari_min."秒";
?>
こんな計算に4行もつかうのは嫌です。
誰か何とかして。
ちょっと質問。
当方、仕事ではASP.NET使ってるんだが、PHPでも同じ動作をするように
色々試してるんだが、正直ちょっと・・・
例えば、SQLを発行してTABLEに検索結果を一覧表示した場合、
業務系だとテーブルの列名の部分などをクリックしてソートさせたいなどの需要がある。
ASP.NETだとグリッドコントロールですぐに出来るがPHPだとこの部分は自前で実装しないといけない。
自前で実装するには、その列が昇順降順のどれでソートされてるのか保持しておき
クリックされた列でSQLを発行してソートの方法を変えれば良いので、実装自体に問題は無い。(面倒だけど)
そこで問題というかこだわりなんだが、ASP.NETではグリッドでソートを変更した場合は、
別途DBなどに接続は行われれず、ADO.NETの仕組みで取得済みのデータで勝手にソートしてくれる。
対してPHPだとソートさせるだけで再度SQLを発行してDBに接続しなければならずに、
レスポンス等の面から見てもちょっと不満を感じる。
俺のPHP技術が未熟なのは認めるが、PHPでもASP.NETと同じような挙動のプログラムは書けるのだろうか?
また、どのようにして実装すればよいのだろうか?
>>316 その$secにはどういう値が入るの?
time()を入れれるなら、そのようにすりゃdate()関数で楽に処理できるが、
仕様的に無理なのか?
>>317 例えばMySQLならmysql_pconnect()なんてのがあるが、そういう意味ではない?
321 :
316:04/10/12 11:49:17 ID:???
>>318 UNIXtimeは入らないんです(´・ω・`)
10〜100000秒くらいの任意の秒が入るんです。
>>316 時間だけ普通に計算して、後は date() に任せるとか?
本当に正しいか調べてないけど。
echo floor($sec/3600) . "時間" . date(" i分 s秒", $sec);
324 :
316:04/10/12 12:12:58 ID:???
>>323 うわ、いい感じです。
少し調べてみて、良ければ使ってみたいと思います。
ありがとうございました。
>>317 a. クライアント側でdata binding < XML/XSLT, DOM ...etc
b. 自前で実装する場合、ソートの可能性があるクエリーの結果のキャッシュを追加。
c. 使ったことないけど PEAR の Structures_DataGrid
.Net frameworkのDataGridと同じようなコンセプトのライブラリ.
さっとソース眺めてみた所、クエリの結果のキャッシュまでは現状では面倒みてくれないみたい
それどころか、DB使ってる場合はソートはDB側で済ませた方が早いからこのメソッドは使うな
とコメントに書かれている.
d. Zend Performance Suite (引用: 不要なDBアクセスを含むPHPスクリプトの実行が抑止されます。)
e.
http://jp2.php.net/dotnet
何でもかんでもDBに繋ぎに行くのはアレだよな・・・
俺が担当したシステムだと、船舶とかで使用するWebシステムで、
航行計画書やら、港についたときに備品など購入するための備品搬入の管理システム作ったけど、
何せ海の上だから船舶電話だと金掛かるし通信速度遅いし、回線切れるし・・・
だから、衛星対応の携帯で通信するシステムにしたんだけ、
やっぱりパケット量とかの問題で通信費やら実行速度遅くなるから、
ASP.NETみたいな仕組みは楽だったなぁ。
PHPでも確かに同じようなこと実装できるけど、そういうのって業務ロジックじゃないしな。
正直、そんなものにお金も時間も掛けたくない。
328 :
nobodyさん:04/10/12 16:38:42 ID:seDWSO57
330 :
nobodyさん:04/10/12 17:01:33 ID:seDWSO57
>>329 ありがとうございました。
助かりました。
↓これを実装しようと思ってるんだけど、関数の一覧ってどうやったら出せる?
(defun php-complete-function ()
"Complete the function name at the point from known PHP functions."
(interactive)
(message "php-complete-function not implemented yet")
;; how to read the list of functions from a separate file?
)
>>331 get_defined_functions()
> how to read the list of functions from a separate file?
do it yourself with get_defined_functions() ってことじゃねえの?
335 :
nobodyさん:04/10/12 20:02:40 ID:iIJDed89
携帯サイト向けに、アップロードした画像をgifとpngで90×60ぐらいに
縮小して別のフォルダに保存するスクリプトを作りました。imagegifて
やっただけなのです。しかしファイルサイズが5KB以上になってしまうものが
多く、pngでは10KBにもなるものがありました。
jpegだとクオリティを指定しながら2KB程度に収められるのですが、gifや
pngの場合、関数で簡単に色数を落としたりしてサイズをさげることは
できないのでしょうか?
>>335 とりあえず、基本情報技術者試験でも受けなはれ
>>317 糞のような思いつきなんだけどセッション変数にブチ込むのはどうだ?
とりあえずリザルトセットがどこかしらPHPから簡単に操作できるリソースに
保存されればいいんだろ?
>>316 本題からはずれるけど、おれはこっちのほうが好き。
(1)
$h=floor($sec/3600);
$m=floor(($sec-($h*3600))/60);
$s=$sec-($h*3600)-($m*60);
echo sprintf("%02d時%02d分%02d秒",$h,$m,$s);
ちなみに、
(2)dateだけ版
echo sprintf("%02d時%02d分%02d秒",date("H",$sec)-date("H",0),date("i",$sec),date("s",$sec));
(3)
>>323版変形
echo sprintf("%02d時%02d分%02d秒",floor($sec/3600),date("i",$sec),date("s",$sec));
この3つをそれぞれ1000回実行するのにかかった平均時間は
(1)0.008534
(2)0.033852
(3)0.02452
date関数がいかに遅いかよくわかった。
dateって遅いんだ…
340 :
nobodyさん:04/10/12 23:37:03 ID:4ikvnffT
変数をダブルコーテーションで括ると変数が展開されますが、
$str = "this is $foo['bar']";
このようにするとエラーになります。
どうすればよいでしょうか?
>>338 echo gmdate('H時i分s秒', $sec);
これも試してみて。
# 本来ならgmdate("H\\\x8e\\\x9ei\\\x95\\\xaas\\\x95\\\x62", $sec);
# とちゃんとエスケープして書くべきかもしれない。(これはSJIS
>>340 そのままこのように書けばよいのですよ
$str = "this is $foo[bar]";
>>340 $str = "this is {$foo['bar']}";
>>341 >>338の(2)もそうだけど、それでは24時間以上は調べられないから意味がない。
>>321では10から100000秒まで範囲という話だから、24時間以上の数値が入ることが
あり得る。
ついでに独自調査。338と同速度になるよう調整済み。
// 25.8μs
$s = $sec % 60;
$m = ($sec / 60) % 60;
$h = floor($sec / 3600);
"{$h}時{$m}分{$s}秒";
// 9.8μs
gmdate('H時i分s秒', $sec);
// 10.3μs
sprintf("%02d時%02d分%02d秒",$sec/3600,($sec/60)%60,$sec%60);
// 35.6μs(338と同実験により1割ほどこちらのほうが低速)
echo sprintf("%02d時%02d分%02d秒",date("H",$sec)-date("H",0),date("i",$sec),date("s",$sec));
一行目の、"338と同速度になるよう調整済み。"は間違い。
調整しようと思ったがミスがあったので一番下から再度計算してください。
こちらの結論としては24時間分までしか計算できないものの、
gmdate('H時i分s秒', $sec);が一番高速。
>>340 >>343の方をお勧めしとく。
取り合えず{ }でくくれば良い。
他にも $str = 'this is ' . $foo['bar'];
という書き方もあり、速度的にはこっちの方が早いというデータをどっかで見た気がする
が、分かりやすさからいって{ }でくくるのが一番かと思う。
>>331 マジレスして欲しいのか?
「スレ違い。elispスレに池」
あるいは
「a separete fileの仕様も出さずにどう答えろというのだ」
まあここに張り付いている連中にはelispなんぞ分からんっちゅうことはよく分かったろ?
資料2
// 7.9 μs 7.9 μs "this is $foo[bar]";
// 14.4μs 14.3μs "this is {$foo[bar]}";
// 8.1 μs 8.2 μs "this is {$foo['bar']}";
// 5.5 μs 5.6 μs 'this is ' . $foo['bar'];
350 :
nobodyさん:04/10/13 05:59:21 ID:I9UFXdzG
なんかスレ違いかもしれませんが許してください。
今、私2chの過去ログを保管するサイトを運営しているのですが、
スレの進行が結構速くて正直更新が大変です
それで、phpで、技術的には
この作業を全自動化することなんかはできますかね・・?
2chのスレ一覧を読み込み、そのスレだと思われるものを特定してログの取得を開始
↓
1001まで行ったらそれを鯖側に出力 同時に次スレのログの取得も開始
↓
出力されたスレへのリンクをhtmlに書き込む
こんな感じで・・・
Readだけだったら、2chは外部からの規制してませんし、いけそうな気がするんです
あ、「こういうPHPをください」っていってるわけではないので・・あくまでできるかどうかききたいんです
もしできるようでありましたら、ちょっと本買って本気でPHPの勉強しようかと思ってます
ちょっと来年あたりから現実が忙しくなるから、少しでも更新を楽にしようかと思いまして
ではよろしくおねがいします
>>350 出来るよ。
但し、php"だけ"では無理だった希ガス。
・phpだけでやる場合
→何かトリガーになるページを置いてそこにアクセスするたびにスクリプト実行
但し、タイムアウトになる可能性がある。(マニュアルにそうならない方法は書いてあるけど)
・そうでない場合
→cronが使えるならそっちの方が確実だしタイムアウトもない。
>>350 ログの取得を全自動にするつもりならPHPで作る意味はない。
Perl, Python, Rubyあたりでやるほうがいろいろな意味で楽。
それと過去ログ収集サイトはけっこうあるからどんな仕組みなのか
ひととおり見て回ったほうが吉。
やっぱりPHPでGD使うやつって馬鹿ですか?
普通FlashやSVGとの連携でやりくりしますよね?
じゃあそれ使ってろや坊主
355 :
250:04/10/13 10:40:33 ID:???
GD使ったっぽい鯖ログのグラフとかってよく見かけるから
別に馬鹿ではないんじゃない?
>>350 鯖の制約やプログラミングの経験がどんなもんかわからねーと何ともイエネ。
Subject.txtを取得して適当な単語を含むDatを選んでローカルと比較、更新されてるか初物なら取得、
デコードしてHtml化して保存、1000ならHtmlも更新、程度なら超簡単。HTTPの知識がネックか。
データ取得しっかりやると面倒だけど、最悪 $data = file('thread url'); でOK。この手軽さは泣ける。
リスト化したり人手を偽装したり検索なんかの活用も考えてスレタイの変更にも耐えて
間違ったの取得したら削除して、Html化待ちならログインしてテンプレートエンジンつかって
コメント受け付けてレスアンカー書き換えてJavascriptでポップアップしたりimu.nu置換したり
Htmlに改行つけたり〜みたいなことやりだすと糞面倒。
あとread.cgiから読み出すのは公衆道徳上よろしくないし、Htmlをパースすんのは面倒くさいと思う。
datはtransfer/contentエンコしたものしか取れないとかphp以外に2chの特殊な仕様の知識も必要に。
MacromediaFlashが立地クライアントとしてブレイクするつーのは完全にガセだったな。
カールと比べてアレだけ普及しているにもかかわらずだから救えない。ColdFusionは専用言語を除いて悪くない製品だが。
はい手を引くのが遅かった負け組みですが何か。
とりあえず松屋の牛めし食べてくるよ。
ちょうどGDの話題なんで聞きたいんですが、
GDで円グラフとか折れ線グラフって描けます?
そもそもドロー描画できるんでしょうか?
361 :
nobodyさん:04/10/13 13:42:06 ID:qHQqzIaw
パラメータがAだったら1 Bだったら2という風に変換したいんですが
if文やswitch文で一つずつ書く以外に簡単な方法ってないでしょうか?
>>360 jpgraphでも使ったほうがいいんじゃないの?
jpgraはgdだね
結構すじばってて歯ごたえあった。
366 :
:04/10/13 15:48:11 ID:???
php5のデフォではmysqlに接続できない仕様みたいですが、
接続する方法が分かりません。
教えてください。お願いします。
お前はもういいよ。飽きた
mb関数でエンコーディングの自動判別 'auto' は使わない方が安全という話をちらほら聞くのですが、
変換元のエンコーディングが不明の場合は、どのような対応をとればいいでしょうか?
変換対象は複数の項目があり、
文字長が長いものと短いものがあります。
エンコーディングは、複数の項目間では一緒です。
自分で考えた方法ですが、
mb_detect_encoding()で長い項目からエンコーディングを取得し、
全ての項目をそのエンコーディング扱いで、
mb_convert_encoding()してやろうと思うのですが。
>>366 PHPのMySQL拡張(ついでにMysqliも)を有効にする。
370 :
:04/10/13 16:51:23 ID:???
>>369 繋げられたみたいです。ありがとうございました。
調べたらPHP5でのmysql接続出来ない状況は
多いみたいでした。
372 :
nobodyさん:04/10/13 19:43:23 ID:hDof3Q9h
特定のHTMLファイルを読んで、
その一部分をちょっと可変(brタグとか入れる)して他のHTMLに出力するのって簡単??
なんか
>>350に似てるけどスレ読むわけじゃないです
自分のサイトの中のHTML読んで、同じく自分のサイトの中のHTMLに出力したいです
>>372 それはどうしてもPHPを使わなきゃダメなのか。
375 :
340:04/10/13 20:02:13 ID:???
Perlと同じなんですね。答えてくれた人ありがとう。
376 :
nobodyさん:04/10/13 20:06:23 ID:hDof3Q9h
>>373-374 まさかhtmlだけでもできるとかですか!?!?あqwせdrftgyふじこl
SSI・・・
もし、非常に基本的なことでしたら申し訳ありません。
モジュール版PHPで使っていた「virtual」関数が、CGI版PHPでは
使えないと知りました。
CGI版PHPの場合だと、別途で動作しているCGI(Perl)を、例えば
「sample.php」内で実行させることは不可能でしょうか?
それともPHPを諦めてSSIにしてしまう方がいいのでしょうか?
379 :
nobodyさん:04/10/13 21:01:43 ID:hDof3Q9h
>>377 SSIって、読み込んだ部分を弄って出力できるんですか?
380 :
nobodyさん:04/10/13 21:09:08 ID:wYSmj1/u
皆さんがオススメするPHP勉強の書籍おしえてください
ちなみにPHPは一切しりません 1からです(´・ω:;.:...
381 :
軟式PHP:04/10/13 21:11:33 ID:q2MkK+Af
PHPマニュアル
たとえばこんな処理↓があった場合、
<input type="text" name="name" value="'. $_COKKIE["hoge"] .'" />
フォームの初期値に、クッキーの値が入った状態で表示されると思うんですが
この時点でクッキーの値は、サーバー←→クライアント間を渡ってますか?
( ゚Д゚)・・・
>>383 いや意味わからんて。
クッキーもブラウザの表示もクライアント。
サーバーってのは見えないところで動くものだよ。
386 :
383:04/10/13 22:29:38 ID:???
ネスケみたいにIDやパスが始めから記入された状態になるのを
IE6でやりたかったんですが、クッキー値の表示がクライアント側だけで処理されてるなら
この時点ではSSLとか通さなくていいなー、という願望があったんですけど……
まあ、普通に渡ってますよね。すいません。
あ、レス重なっちゃった……
サーバーが、一旦クライアントのクッキーを取得してから、それごとブラウザに出力してるのか、
『ここに$COKKIE["hoge"]の値を入れろ』って命令だけをクライアントに出力してるのか聞きたかったのです。
質問がまとまってなくてすいません。
388 :
nobodyさん:04/10/13 23:15:07 ID:cB7iGFRX
PHPが動作しているのがサーバとクライアントのどちらなのかを考えれば
すごく簡単なことだけど。
ブラウザに対してPHP言語で命令したところで、ブラウザが正しく解釈して動作するとでも思う??
HTTPヘッダの勉強も合わせてオススメしておきます。
389 :
nobodyさん:04/10/14 00:03:21 ID:DAgLrERP
Tomcat上でPHPを動かすにはどのようにすればいいでしょうか?
>>383 とにかくクッキーが何であるかをまず勉強して欲しい。
まあ、君の書き込みを見てカタルシスを得ている輩もいるようだが。
(´-`).。oO(cookieなのに・・・という突っ込みは野暮だから止めておこう・・・)
>>350 【合法】【スクリプト】【PHP】【2ch】2chまとめサイト用、現在進行スレ自動リンク.zip Q0Wcfwt4o8 2,494 be17b15acfb4910cb1aab0225201f9ea
393 :
nobodyさん:04/10/14 10:07:39 ID:O0i9cJSU
<?php
$a="太郎";
$m="{$a}さん、こんにちは。";
print $m;
?>
これは、「太郎さん、こんにちは。」って表示されますよね。
この、$mの部分を別ファイルに書き出して、
m.txtとかにして、
<?php
$a="太郎";
$m=file("m.txt");
print $m[0];
?>
としても、うまくいきません。
「{$a}さん、こんにちは。」とそのまま表示されます。
これを、{$a}が変数に展開されるうまい方法はありませんか?
>>376 いいからPHPでやってみろ。
できなかったら質問しろ。
OOで書かれたソースを読んでいたら、なんか $this に代入してるコードに
でくわしました。これは途中で自分が切り替わったりするんでしょうか?
398 :
397:04/10/14 11:27:07 ID:???
読んでいたソースというのは PukiWiki です。
俺はどうも""の中に直で変数書くのが嫌だなぁ。
$a = "{$a}さん、こんにちは。";
より
$a = $a."さん、こんにちは。";
としてしまうよ。まぁ、どっちでもいいんだけど。
そうだな
>>394 evalで出来ました。トンクス!
ちょっとエスケープする文字が多いのが
めんどっちい感じだけど。例も
そうなってるから、仕方ないね。
>>399 Smartyとかのテンプレートでやってるみたいに、
メッセージの記述とロジックの部分を分離
したいんですよ。
そうすれば、m.txtを書き換えるだけで、
「春ですね、{$a}さんはどこかへ行きましたか?」
とかに変更できるでしょ?
>>401 いや別にやりたいことがわからない訳じゃないよw
データ・ロジックの分離なんて基礎中の基礎だし。
コーディングの違いということです。まぁ、本当どっちでもいいことだから気にせず。
>>401 SmartyみたいなことやりたいならSmarty使えばいいのでは?
と思ってしまう俺は負け組?
404 :
389:04/10/14 15:09:31 ID:TTA2I0is
誰かやってる人いませんか?
405 :
397:04/10/14 15:16:01 ID:???
>>404 Tomcat上でPHPを動かせると思った理由を聞いてみたい。
Smartyはめちゃめちゃロジック書けるけどね。
つーかビュー側でEvalして変数展開ってすげー無駄だ罠。
コンパイルされてて処理があるならともかくエコーしてテキストを
取り出すだけって、、、そういうのもテンプレートって言っていいのかどうか。
>>398 つーことはpukiはphp5では動かんね。やはり無茶はよくない。
>>403 こういうのはsmartyの仕事じゃないと思われ
本来、piたるphpそのものの範疇かと
程度問題ですけども
>>406 2重処理くさくもあるが、viewでやってるとは限らない罠
>>405 単体でも簡易的なhttpdの機能があるからそう思ったんじゃないの?
「上」では無理。CGIを使った連携は…出来たっけ、アレ。
PEARのMDBを利用しているのですが、
excuteMultipleで値を格納すると、値が文字化けしてしまうのですが、
queryで値を格納すると、文字化けせずに正常に実行できます。
他のスクリプトではこんな現象はなく、格納しようとしている文字列と
DBの文字コードは一致しています。
何か考えられる原因はあるでしょうか?
>>407 ご推察の通り、viewではないのです。
>>407 そもそも「こういうの」ってのは、デザインとロジックの分離の話ではないのか?
俺も401を読むに実際にやってることは全然違うんだろうな・・・と
>>412 >ちょっとエスケープする文字が多いのがめんどっちい感じだけど。
怪しいのはここら辺?
たまにPHPなんだからテンプレートいらねーよって言う人いるけど、逆は初めて見たw
わざわざ無駄なことしなくてもいいのに
>>409 executeQueryメソッドが怪しい。何がどう化けてるのか知らんが
mysql_escape_string って addslash や magic_quotes と何か違うんですか?
416 :
389:04/10/14 18:20:38 ID:TTA2I0is
>>405 CGIが動くみたいなのでそれならPHPもいけるかと
思ったのですが
418 :
nobodyさん:04/10/14 18:28:03 ID:qGGw0aZU
FreeBSD で ports を使って PHP4 をインストールしようと思うのですが、
・lang/php4, www/mod_php4, www/php4-cgi ってどう違うの?
・とりあえず lang/php4 をインスコしたんだけど、"Premature end of script" って出るんですが・・AddType は書いた気がするし、php.iniも作った気がする。
FreeBSD 5.2.1-R, Apache 2.0.49, PHP 4.3.9 っぽいです。チェックポイントなど教えて下さい。
419 :
405:04/10/14 19:11:47 ID:???
>>414 VALUESを収めた配列がおかしかったのが問題だった。
確認ミス。
>>416 「CGIが動く」ならPHPも動くでしょ。それもCGI(のSAPIのPHPなら)なんだから
tomcatが動く環境でありながら、PHPが動かない環境は多分無い。
ビルド済みのバイナリが用意されてる/されてないはあるかも知れんが。
>>397 $this 、つまりインスタンスは別のものに置き換わる。
滅多に目にしないが、一体どんな目的のコードだ?
>>421 「滅多に目にしない」ということは、たまに見るのか?
>>422 PEARパッケージのコードの話ですが、コンストラクタから別のメソッドを呼び
出すような場合に、エラー発生時はPEAR_Errorまたはそのサブクラスのインス
タンスをセットして返すという方法が、以前はよく使われていました。
その方法ではPHP5でエラーになるため、最近は使われないようになってきてい
ます。
424 :
nobodyさん:04/10/14 22:54:39 ID:QAwUm/MO
2004-10-13T02:19:16+09:00
↑のような、blogで使われる日付を複数とって
どちらが新しいか?を比べたいのですが、
1文字1文字比較する以外の方法があるでしょうか?
javaで(int)2004-10-13T02:19:16+09:00みたいな。
426 :
424:04/10/15 00:06:21 ID:r1Bc5wsz
>>425 strtotimeですね!
ちょー便利!
ありがとう。
>>414 煽りではなく、PHPのテンプレートエンジンだかを使う人って
自分の理解の浅さを理解したほうがいいですよね?
include()とか超々基本的な技法すら理解できてないから、
テンプレが有用だと思えてしまうということを気づいて欲しい。
428 :
:04/10/15 00:11:17 ID:???
>>427 私は出力コントロールを使ってスキン適用してる。
mod_layout使おうと思ったけど面倒で、
でもやっぱり分けれたほうが楽だからさ。
テンプレートエンジンは使ってないけど大まかにはわけてるよ。
プログラム部分とデザイン部分とで。
テンプレートまんせ〜
431 :
:04/10/15 01:37:47 ID:???
PHP Warning: Unknown(): (null): Unable to initialize module
Module compiled with module API=20040412, debug=0, thread-safety=1
PHP compiled with module API=20020429, debug=0, thread-safety=1
These options need to match
in Unknown on line 0
↑こんなんでましたけど、何でしょう
>>431 ん〜、見たことないエラーだけど予想してみる。
モジュールを動的に組み込んでたりする場合に出そうな予感。
というわけで、動的に組み込んだモジュールをもう一回入れ直すべし!
あと、OSくらいは書いて欲しかった。
WindowsとLinuxとかでは設定の仕方が全然違うから。
433 :
:04/10/15 02:53:17 ID:???
>>432 すみません
OSはWindows
PEARをいじってたら出ました
PHP5です
dllのバージョンコンフリクト
435 :
ポルコ:04/10/15 12:07:20 ID:FVcyWQqo
みなさまに質問です条件検索をかけて
ポストグレーSQLを用いてサーバーからデータを取り出すプログラムを
作成してるのですが検索結果が一つのページに全部出てしまうので
10件づつ表示したいのですがどうもうまくいきません
仕様OSはリナックスのレッドハットです
一応PHP部を記しておきます
<?php
$name = "syusyoku";
$use = "postgres";
$con = pg_connect( "dbname=$name user=$use");
$d1 = "kigyoudata";
$d2 = "kyuujindata";
$se = "所在県";
$se2 = "会社コード";
$cheacka = 0;
$query = "SELECT * FROM \"$d1\" where \"$se\" like '%$_POST[ken]%'";
$rs = pg_query($con,$query);
$maxrows = pg_num_rows($rs);
$maxcols = pg_num_fields($rs);
$goukei = $maxrows;
//表示♪
echo("<P align=\"center\">");
echo("$_POST[ken]");
echo("について検索しました。");
echo("</p>");
436 :
ポルコ:04/10/15 12:12:02 ID:FVcyWQqo
if($maxrows==0){
echo("<P align=\"center\">");
echo("残念ながら当データーベースには該当の企業はありませんでした。");
echo("</p>");
echo("</FORM>");
echo("</BODY>");
echo("</HTML>");
}else{
echo("<P align=\"center\">");
echo("$maxrows");
echo("社の登録を発見しました。");
echo"</p>";
for ($row = 0; $row < $maxrows; $row++) {
$rowdata = pg_fetch_row($rs, $i);
$query2 = "SELECT * FROM \"$d2\" where \"$se2\" like '%$rowdata[0]'";
$rs2 = pg_query($con,$query2);
$rowdata2 = pg_fetch_row($rs2,$i);
if($rowdata2[25]==f){
437 :
ポルコ:04/10/15 12:17:20 ID:FVcyWQqo
}else{
echo"<TABLE BORDER=\"1\" WIDTH=\"700\">\n";
echo"<tr>";
if($cheacka==0){
echo"<td width=\"20\"></td>";
echo"<td width=\"80\">";
echo"会社コード";
echo"</td>";
echo"<td width=\"145\">";
echo"会社名";
echo"</td>";
echo"<td width=\"145\">";
echo"カイシャ名";
echo"</td>";
echo"<td width=\"200\">";
echo"ホームページ";
echo"</td>";
echo"</tr>";}
echo"<td width=\"20\"><input type=radio name=kensaku value=$rowdata[0]></td>";
438 :
ポルコ:04/10/15 12:18:28 ID:FVcyWQqo
echo("<td width=\"80\">".htmlspecialchars($rowdata[0])."</td>");
echo("<td width=\"145\">".htmlspecialchars($rowdata[1])."</td>");
echo("<td width=\"145\">");
echo("$rowdata[2]");
echo("</td>");
if($rowdata[27]==NULL){
echo("<td width=\"200\">");
echo("登録されていません");
echo("</td>");
}else{
echo("<td width=\"200\">");
echo("<A href=\"$rowdata[27]\">");
echo("$rowdata[27]");
echo("</a>");
echo("</td>");}
echo("</tr>");
echo"</TABLE>";
$cheacka = $cheacka+1;}}}
439 :
ポルコ:04/10/15 12:19:53 ID:FVcyWQqo
if($cheacka==0){
if($maxrows==0){
}else{
echo("<P align=\"center\">");
echo("残念ながら今年は、求人がありませんでした。");
echo("</p>");}
echo("</FORM>");
echo("</BODY>");
echo("</HTML>");
}else{
echo"以上";
echo"$cheacka";
echo"件の求人があります。";
echo("<br><center><INPUT type=\"submit\" name=\"送信\" value=\"詳細検索\"></center></CENTER></FORM></BODY></HTML>");}
?>
長々とプログラムを貼って申し訳ありません。あと汚いソースで申し訳ないです
ご教授の方お願いいたします
おまいら
Zend Studio 3.5 日本語版リリースですよ〜!
441 :
nobodyさん:04/10/15 12:33:03 ID:iLe5NUwS
phpってhddのsmart情報拾ったりできるんでつか?
osはfedracore2なんだけど
>>435 まずさ、ポストグレーとか検索とかはどうでもいいからさ、
<?php
$list = array("いか","たこ","くらげ");
:
:
?>
海の生き物の例 <?php echo ?????? ?> <br>
<a href="????">prev</a> <a href="????">next</a>
みたいなかんじでさ、いか、たこ、くらげを
ひとつづつ表示して prev と next で進んだり戻ったり
するようなプログラムをどう書くか、考えてみなよ
「どうもうまくいきません」か・・・。
>>435 LIMITとOFFSET使え。
あとは>442の言うとおり。
446 :
ポルコ:04/10/15 13:47:20 ID:FVcyWQqo
ご親切にありがとうございました
チャレンジしてみます
phpってそのままhtmlに入れて動くんですよね?
>>447さんの物を入れて試したけど動作しない
(´・ω・`)ショボーン php初めて出しよくわからない
知識なさすぎる。
450 :
447:04/10/15 14:32:27 ID:???
>448
まずはjavascriptとphpがそれぞれどこで動作するか区別する所
から始めるのが良いのではないかと
もしかすると、phpをインストールするところから話をしないと駄目?
釣りではなければ
いや、どう考えてもHTMLも理解できていないでしょ。
いや、どう考えても何もインストールされてないHTMLファイルをメモ帳で
作って、それにPHPタグを埋め込んでウゴカネーって言ってるでしょ。
【修正】何もインストールされていないマシンで↑
454 :
447:04/10/15 15:51:16 ID:???
>>454 参照するページがよろしくないと言ってみる:)
456 :
454:04/10/15 16:21:28 ID:???
そなの?
「php インストール windows」でぐぐって、SSがたくさんある最初のページを
選んだんで、細かくは見てないんですよ
良い所があったら紹介きぼん
457 :
:04/10/15 16:41:06 ID:???
php5 使いにくくない?
php4のほうが良くない?
OOP出来ないカスがPHP5使ってんなよ。
459 :
:04/10/15 17:16:43 ID:???
460 :
456:04/10/15 17:30:54 ID:???
あー、「最新版を使え」と言ってるんじゃなくて、
「『phpのページに飛んだら、最新版が4じゃなくて5になってるから
インストールできない』と思うんだったら、さっさと諦めろ>448」
という意味のつもりだったんだが。
まだ勘違いしてる?
引きこもってないで学校行け
462 :
441:04/10/15 20:33:55 ID:DyYDEcBK
なんだよ能無しの烏合の衆だな
文句言わずに質問に答えろや。
じゃなきゃだまっとれ。
464 :
441:04/10/15 20:57:28 ID:???
>463
さっさと答えろボケナス
http://php.s3.to/net/#rss −RSSトピックス−ってのは動作するけど
−RSSブロガー−ってのが動作しないんです。
エラーが
Fatal error: Failed opening required 'XML/RSS.php' (include_path='.:/usr/share/pear') in /home/webuser/arckd/public_html/php/rssv.php on line 4
一応、XMLの文字を削除してみるも今度はline11でエラー。
こういう場合ってどうすればいいですか?
サーバーはこれ
http://box.elsia.net/
>>466 pearからrssおよび上流パッケージを拾ってきて設置、インクルードパスを置換して完成だ馬鹿野郎
468 :
441:04/10/15 22:05:10 ID:???
>465
thanks!
470 :
nobodyさん:04/10/15 22:27:16 ID:3cA5pXC+
Linux系にPHPをCLIとCGI両方入れたけど
CLIはsafe_modeをon
CGIはoffにするときはみんなどうやってる?
>>471 CLI版の PHP は -c オプションで読み込む php.ini ファイルの位置を指定できるので、
php.ini ファイルをどこかにコピーして、CLI版の PHP では -c オプションを指定して
使用するというのはどう?
473 :
472:04/10/16 11:06:21 ID:???
補足。
CGI版の PHP でも -c オプションで読み込む php.ini ファイルを指定できた。
474 :
nobodyさん:04/10/16 12:26:07 ID:OW4RwqwJ
アップロード処理するときにupfileにURLが入力された場合
その文字列をそのまま記録(サーバーにコピーしない)したいのですが
$_POSTにも$_FILESにもURLは格納されません
取り出す方法ってありますか?
>>474 ごめん、よくわからないから手順を追って説明してくれる?
>>474 アップロードの為のフォームだけでは無理だから
JavaScriptを使って隠しフィールドにリアルタイムで値をコピーする
477 :
474:04/10/16 13:49:33 ID:???
只のローカルパスはいりません
???
フォームの内容をエンターを押したときも送信するようにするには
やっぱJSしかないんでしょうか?
PHPの質問じゃあないよね?そこんとこ理解してる?
>>479 その程度のことは自分でいろいろ試してマスターせなアカンよ
486 :
nobodyさん:04/10/16 18:44:21 ID:QWFCEoci
Apache+PHP なんですが
ユーザー認証した後の画面にてある一定の時間がたつと
強制ログアウト みたいな処理を行いたいのですが
どうすればいいのでしょうか?セッションでいけます?
487 :
nobodyさん:04/10/16 18:47:49 ID:QWFCEoci
↑
>ユーザー認証した後の画面にてある一定の時間がたつと
認証後のページで何も操作が行われていなくて一定の時間がたつと
です。すみません。あと認証方法はなんでも結構です。
>>486 session.max_gc_lifetime
489 :
nobodyさん:04/10/16 20:54:21 ID:M6muWICI
phpのエクステンションの開発について説明しているサイトってマニュアルぐらいしかないですかね?
ぐぐっても適当なのがなくて。
適当なの、か。
devからけっこう辿れるけど
492 :
nobodyさん:04/10/16 21:06:49 ID:M6muWICI
>>491 あぁ、そか。
ありがと。
探してみる。
LinuxとかWindowsの環境に依存せず、
特定のフォルダの内容をリストアップして、
順番にincludeするには、どうしたらいいでしょう?
495 :
nobodyさん:04/10/16 22:00:28 ID:M6muWICI
>>493 ありがとう。
やっぱ、この雑誌を講読しようかなぁ・・・・・
目次を見る限りではよさげなんで。
496 :
nobodyさん:04/10/16 22:13:27 ID:5/6cL4VE
同じプログラムを何人もの人が利用する場合、
内部では共有されているのでしょうか?
全部別だとかなりメモリの無駄遣いになる気がするのですが、
そのあたりどうなんでしょう。
>>494 特定のフォルダの内容をリストアップして順番にincludeすればいいじゃない
正直何処が分からんのか分からん
やりたいこともはっきりせんし
>>494 マニュアルの opendir(), closedir(), readdir() を見れ
PHPのflock()なんですが、Perlでflock()したファイルに対しても有効ですか?
んなわけねーだろ
502 :
nobodyさん:04/10/17 09:27:21 ID:jarDWpEx
uniqidの説明によると、
いくつかのホスト上で同 時にIDを生成させる場合、
全く同じミリ秒のIDが生成されるのを防ぐの にprefixが有用です。
とのことですが、同一ホスト上で実行した場合は、
かならずユニークになる、ということでしょうか?
ミリ秒&スレッド(?)違いで、
2038年まで
すべて違うID(同一ホスト上では)が生成されるのでしょうか?
503 :
502:04/10/17 09:38:39 ID:???
計算してみたら
128ビット=
3.4028236692093846346337460743177e+38
種類、ということなので(もう位の呼び名もわからない)
同一ホストなら完全にユニークな、
またプレフィックス違いの他ホストで生成してもほぼ間違いない程度のユニークさ、
くらいは保証してそうですね…
504 :
:04/10/17 14:27:45 ID:???
三百四十澗二千八百二十三溝(以下略
>>500,501
PHPとPerlが同じシステムコールの FLOCK(2) を使っていれば有効
どちらかが別のことをしていたら無効
ソースを見てないからなんともいえないけど
PHPの方は ext/standard/file.cの中で C言語のflockを呼び出している。
perlの方は知らん。
perlコーディングスレの方で答えている人のように自前でロックファイル等を実装するのが良かろう。
今日はヘルシーチキンカレー
カレー(゚Д゚ )ウマー
ウンコーーーー
512 :
nobodyさん:04/10/17 23:52:00 ID:Khjpd2op
文字列を数値に変換するにはどうすればいいんですか??
何が釣れますか
intval だろうなぁきっと
515 :
nobodyさん:04/10/18 00:37:58 ID:v+mK9r/2
めっちゃありがとうございました
516 :
mitsu:04/10/18 01:04:21 ID:UsXTjS7N
mysqlとphpでデータベースを作っていますが初心者なので一つ
教えて頂たいことがあります。
検索結果から名前をクリックすると詳細ページにジャンプ
したいのですが
タグ、方法がわかりません。
やりたいことは自宅サーバーで店舗管理をしているのですが
各店舗のTOPページを開きたいのです。
例えば
http://***.com/店舗名でジャンプができるような設定を 教えて頂けますでしょうか?
>>516 設定とかタグとかじゃないので、
自分でそのような動作をするスクリプトを作成してください。
1. 検索するためのスクリプト
2. 詳細表示するためのスクリプト
質問も解答も完全にネタスレ化したなw
519 :
無名人:04/10/18 04:13:03 ID:???
Fatal Error
Error fopen(): SAFE MODE Restriction in effect. The script whose uid is 10182 is not allowed to access /virtual/アカウント名/public_html/ディレクトリ名/data/html owned by uid 1000
From /virtual/アカウント名/public_html/ディレクトリ名/common.php line 153
だれか助けてください。
なんのエラーなのかさっぱり。。
520 :
:04/10/18 04:21:47 ID:???
英語直訳すれば
*ファイルオープンエラー
SAFEMODEの為、ファイルオープンが制限されてます。
521 :
:04/10/18 04:25:29 ID:???
522 :
無名人:04/10/18 04:29:06 ID:???
こんな夜中に回答ありがとうございます。
がんばって解決したいと思います。
>>516,517
例えばPostgreSQLだとoidで関連づけるのが
多くの本に載ってるけど。MySQLだと、
どうするんだろうね?私も知りたい。
>>523 oidに頼るのもどうかと思うが。
自分で一意なID振っとけばいいじゃん
aaacafeに設置したphpスクリプトがはき出したファイルやディレクトリがnobody権限になってしまって
FTPなどで消せなくなってしまったのですが、セーフモードでも使用出来るファイル削除などのファイルマネージャースクリプトを探しています。
宜しくお願いします。
527 :
nobodyさん:04/10/18 16:04:19 ID:YHb3Wttz
Linux上から別PCのMSSQLに接続したいと思い
とりあえずiodbcとやらを入れたりしたのですがわけわからんw
何かわかりやすいサイトとかないでしょうか?
>>524 しかしさ、膨大なデータにID割り振ったら、溢れない?
例えば、毎日お客が1000人来て、一人につき10個買い物。
すると1日で10000件のデータ。1ヶ月で30万件のデータ。
1年で365万件のデータ。
これにID割り振ってても、大丈夫なんかい?
531 :
nobodyさん:04/10/18 22:41:09 ID:wrtSnmi9
PHPがなにものなのかもよく知らないアホだけど、
オフライン(デスクトップ上)でPHP動かすこと出来る?
日時、IP、乱数(高精度)等を組み合わせるとかすれば重複するこた無いだろ。
534 :
nobodyさん:04/10/18 22:43:25 ID:f8ni8jYW
a:link
{
color:#215dc6;
background-color:inherit;
text-decoration:none;
}
という文字列を
$parameter
{
$property[0]:$value[0];
$property[1]:$value[1];
...
}
という風に変数に置き換えたいんですけど
なんか良い字句解析の関数ないですかねー。
>>533 どうやって使うんだべ?
他にやること大量にあるので
1からphp勉強するのは時間の無駄なので、気軽に使いたいべ。
ありがとうずら
>>535 データベースだから、∞のIDを格納できるとでも?
>>532 そうすると、キーになるいくつもの情報を必ず
ブラウザに送っておく必要が出てくるでしょ。
キーの構成要素が増えるほど、スクリプトで
処理する部分が増えるわけだが。
これを、>516の様に、さくっと詳細表示の
データを呼び出すのは面倒にならないか?
>>539 普通、primary key は auto_increment にするんじゃないの?
で、primary key を where に指定すればその店舗だけ表示とか簡単だと思うんだが。
>>539 大抵は
>>540のやりかたかと。4バイトシリアルなら1〜振れば42億まで振れるから
1年で365万件でも1000年以上足りる計算。
これを他のフィールドと絡めてインデックス作っとくほうが下手な乱数振るより検索も速いはずだけど。
てかPHP関係無いじゃん…
>>539 > そうすると、キーになるいくつもの情報を必ず
> ブラウザに送っておく必要が出てくるでしょ。
っていうか、なんでブラウザに送る必要があるんだ?
全部サーバ側で取れるものばかり。
544 :
536:04/10/19 00:35:41 ID:???
やっと動いたべ。
ではではこれからpukiwakiをデスクトップで動かすべ。
>>544 (;´д)waki!?(´д`)ワキ…(д`;)
ブィィィィィン
普通に4byteの連番でいいよ。
何かひっかかるならUUIDでも使え。
PHPにUUID関係のライブラリあるのか知らんけど。
>>539 あー、こういう事言う人たまにいるよな。
IDには無限大が必要と思い込んじゃう人。
Apacheのmod_unique_idは使えねーの?
>このモジュールは非常に制限された条件下で、 それぞれのリクエストに「すべて」の
>リクエストに対して 一意に決まることが保証されている魔法のトークンを提供します。
らしいけど俺は使ったこと無い。
>>534 さりげなく放置されてるが…(w
':'でexplode
正規表現
この2つの組み合わせ(もしくは正規表現のみ)でいけそうやね。
よぉ、ネ タ が 途 切 れ て る み た い な ん で 振っとくよ。
PHPではポインタの中身は見れないんだよな〜。
見たいなー見たいなー、見れる方法あればきぼんなんだな〜。
<?php
$a = 0xff;
$b =& $a;
echo(printf("%p",$b));
?>
とかじゃー、出ないし・・・orz。
>>544 これであのorgドメインなところでwikiが動いていたら笑っちゃうが、
カポコン、マジうざいんだけど。
<?php
$a = new foo();
$a = new hoge();
?>
としたら、fooのインスタンスは
どこへ行くの?
もうアクセスできないんだよね?
&で作ればいいじゃんヴぉけが。
559 :
nobodyさん:04/10/19 15:33:17 ID:W4DmTRC6
PHP4で、
shell_exec("cp /var/log/httpd/access_log /home/homepage/public_html/log/access_log");
と、ログのコピーをスクリプト上でやろうと思ったのですが、エラーが帰ってきてしまいます。
どうやったら出来るのでしょうか?
どんなエラーだ?
わからんのでとりあえず勝手に決め付けてやろう。
"cp" じゃなくて "/bin/cp -f" に変える。
561 :
559:04/10/19 16:34:58 ID:???
>>560 レスありがとうございます。
初歩中の初歩のミスで、ふつうにerror_log見れば良いんですよね…。
パーミッションの問題でした。public_html/logディレクトリを777にしたら出来ました。
>>556 ほら、きた。
なんかあればすぐウザイとか言うんだもん。
君のような香具師に私は、声高らかに出力しよう。
Echo "釣れたと・・・w\n";
563 :
534:04/10/19 17:37:30 ID:???
>>552 explode便利ですね!
ありがとうございます。
>>558 こんなんしてもダメだけど。
<?php
class foo {
var $val;
function setVal($a) { $this->val=$a; }
function getVal() { return $this->val; }
}
$a =& new foo();
$a->setVal(10);
print "foo=".$a->getVal()."<br>n";
$a =& new foo();
print "foo=".$a->getVal()."<br>n";
?>
先にnewした物にアクセスしたいんじゃないんです。
ちゃんとDisposeされるのかなぁ?って思っただけ。
>>562 釣れただの釣れてないだのどっちでもいいけど、マジうざい。
とにかくうざい。存在がうざい。
# そもそも釣りの定義に当てはまってないけどな。
# 今回のレスは”釣れた”と言ってもいいだろう。
存在が迷惑だと言われるために、わざわざ不快に思われるように振舞っているということか。
脳内で実は迷惑になってないけどそう見えるように振舞ってて誰か突っ込んでくるのを待ってるんだ・・とか思ってるわけだな。
>>566 反応すんならアンカー指定しろよ視界に入る分お前の方がウザイんだけど
俺は単発あぼーんしてるから
レスアンカー指されるとマジうざい
>>565
レッツPHP! のマニュアルが Google にひっかかって激しくウザイので
削除お願いしますって誰か言え
php.s3.toに限らずそこかしこでマニュアルひっかかるよなw
一時期よりマシになったけど。
Namazuサーチではメソッドの部分名から候補を出せないから使わないんだよね〜
simplexml_load_stringで生成したオブジェクトにXSLTを適用するには、どうしたらいいですか?
573 :
:04/10/19 22:12:43 ID:???
検索から
-レッツ
を加えればいいだろが
ググるテクくらい身に着けてろや、ボケが
作ったプログラムが
ブラウザで更新(リロード)や戻るをされるとエラーになってしまいます。
これらの行為をチェックする方法はありませんか?
>>574 お前はフールプルーフについて学んで来い
577 :
nobodyさん:04/10/19 23:57:12 ID:yWe4h+a6
最近PHPをやりはじめたんですが、はじめてのPHPと言う本を買ったのですが
文法について全くふれてないので、是非教えていただきたいことがあります。
今配列をやってるんですが、$food["fish"]="魚";で
echo("$food[fish]<br>\n")ここでfishのときに"をつけるとエラーになりました。
参考書でもつけてません。それで多次元配列にしたとき$food("fish"=>array("さんま"
,"まぐろ") echo($food["fish"][0]);こんどはfishに"をつけないとエラーに
なりました。。なにぶん文法にまったく触れてない本なので、どういう規則で
そうなってるかわかりません? "をつけるときとつけないとき規則みたいのは
あるんでしょうか?
釣れますかな。
581 :
nobodyさん:04/10/20 00:05:42 ID:6Ei04iZn
>>577なんですが、まじで教えてください
よろしくです
ワロタw
エラいことになってきたな
おまいら弄るなよ。スルーしろ
$a = new foo();
と
$a =& new foo();
だと、
後者の方がメモリー効率が良い?
>>577 echo($food["fish"]."<br>\n");
であかんのかい?
もしくは、
echo("$food['fish']<br>\n");
かなぁ?
echo("{$food['fish']}<br>\n");
かも。
文法に関しては、オンラインマニュアルでも
読んだら?
なんか、聞いてる方も答えてる方もレベルが低いよね。
素人言語だからしょうがないっていえば、しょうがないんだけど。
レベル高い人(?)は、まともに答えてくれないしね。
ネタスレだから
瑣末だけどechoは関数じゃないから()なし推奨。
個人的には関数にしてない方が違和感あるんだが。
, -,:' / ̄) i{'r‐-、 `ヽ、
. _...,,o‐y ,:'- '⌒ ⌒ヽ. `ヽ' ,
(o( ,' / / 、 `ヾ. ヾ,
,:'´//7,' ,' .,' ,:' ! } i !', ':, ':, ゙:,
,' / ,' {l. ! {/ ,イ / }| !|', !. ', ', ゙,
ハ〃 ! !| | | ∠/ ,:'-ノ} /リ l ,ム. ! } |!
ハヽ、ゝ!| l | ,:',;='ィ'、'´ ,'.ノ ノ.,;lノ=、l .,' ,' ,' ノ
{ l l ', |'ヲi(_ノ.} ´ i(ノ.}゙!ノ,:',:''´
', h. ', ',゙、 ':゙゙_.ノ. ':゙_ノ〃ン
':, { ',', ':,':, 丶 ,' l .}
ヾ ':,':, ':ヾ、._ 「´/ ,' | .,' / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
`ヾ-、`ヽ_ `´ _,.ィリ.ノ ,' < なんとなかるよ、大丈夫だよ!
リ';',ヾ| ` ‐┬ ´ _ノノ,'/ \___________________
ヾ,、-- 、 _ | ´ノ'
f ヾ、..___ ヽ、 ー‐''
/_......_ \
赤 <なんとなかるわ、頑張るもん!
真面目な隔離スレだろ。伊達でやってんじゃないよ
e-typing < きっとなんとなかる
597 :
nobodyさん:04/10/20 01:29:32 ID:5VvbVBZ6
>>589 失礼な発言ですね。
訂正していただけませんか?
ネタ振りがありましたよ。
あーっと、ここでスルー!
_
r'::::::::i
トーf/__
/ イ| 、ヽ
//_〉 l_l i_ノ、
\\ (_ニノ 〉____〉〉 〉
/ } /
/\/,ー 'ヾ
>>597-598 〈 < /
\i"ヽ、 \\ //
├ i\i カ ,、
|_,,i ノ_ソ ) ゝ
ノ_/〉
6 0 0
サーバ上のファイルをhttpダウンロードしたいんですけど、さっぱり
わかりません(つД`)
603 :
:04/10/20 03:47:25 ID:???
空のHTMLファイルを作っておいて
それをオープン、名前変えて複製、データ保存
多分出来る・・・かも
自信なし
0からやってようやく、PHPからMySQLの中のデータ取り出し、表示まで行った。
本当の0からは大変だ
チラシの裏に書けって言ってるだろ・・・
605 :
:04/10/20 04:39:08 ID:???
便所よりチラシに書けと。
606 :
601:04/10/20 05:23:56 ID:???
>>602 ありがとうございます。試してみます。
>>603 おー。一緒です。お互いがんばりましょう。
便所に日記をかいてんのか
変わった障害児だな
最近沸いてきてる池沼集団は何なんだ?
ネタスレになるくらい別にいいが、最近すげー気色悪いスレになってきてるよ。
609 :
:04/10/20 05:35:51 ID:???
>>606 がんばろー
明日は日本語で扱えるようにならないと。
多分それだけで終わる気がする。
HTTPとか良く分からないけど、マニュアルのfopen()を見れば
良いんじゃないかな
>>608 実は統合失調症2名が複数人分立ち回ってる罠
確かに初心者にまざって怖い感じする奴が増えてきてる。
他のスレやム板なんかもまるで常識の通じない空気になってるとこある、、
PHPだからじゃないと思う。
ここのノーマルなユーザはスレが一本化されたときに逃げたんだろうけど、、
おまいら台風が気になるからって起きてても会社は休みになりませんよ
うちの地方は台風は夕方が本番だな。落雷さえなければ関係なさげ。
任意の文字列$strを
1文字ずつ配列$arr[]
に入れていく関数ってありますか?
>>614 preg_split() or for(){}
文字列インデックスを使うならforループでいいけど
多分preg_splitの方が早い
616 :
614:04/10/20 08:52:34 ID:???
preg_splitでは1文字ずつ取り出せないような気がしますがどうなんでしょ。
パターンに
.
とすればいけるのかな。
617 :
614:04/10/20 09:01:37 ID:???
無理でした
>>614 そのまま $str[ 数字 ] で一文字ずつ取れるけど。
2バイト文字はだめだが。
>>614 どちらにしてもマルチバイト文字はできないけど。
$s = "abcde";
print_r(preg_split("//", $s, -1, PREG_SPLIT_NO_EMPTY));
>>601 ヘッダ吐いた後にreadfile()じゃだめ?
>>601 ていうかさ、普通にfsockopen()使えば。
こっちの方がタイムアウト処理とか楽だし。
622 :
614:04/10/20 11:31:18 ID:???
a
1
検索エンジン初心者とゆういちのせいでスルーされていました。再度お願いします。
simplexml_load_stringで生成したオブジェクトにXSLTを適用するには、どうしたらいいですか?
>627
よーくわかってんじゃねーか。
お前には場違いってこった。
ゆういちは釣りなのかマジなのか、
微妙すぎて分からん
ゆういち=カポk(ry
phrameとMojaviではどっちの方が優秀なフレームワークでしょうか?
632 :
626:04/10/20 20:29:42 ID:???
素直にDOM XMLを用いてXSLTを適用したいと思います。
最後に一つだけ質問です。Win32版PHPを使っているんですが、DOM XML関数を使用するために必要な
拡張モジュールのインストールを行うためには、PHPをビルドしないと駄目なんですか?
>>632 zip版には入っとるみたいだなぁ。msi版は知らん。
PHPを適切にビルドすれば確実に手に入るわな。
634 :
626:04/10/20 20:44:14 ID:???
>>633 ありがとうございます! いい機会なんで、この際ビルドに挑戦してみたいと思います。
>>632 サーバーはLinuxの方が早くていいですよ。
( ・∀・)つ〃∩ ヘェー
状況によっては環境を自分では選択できないこともあるんだが、
そういうことを考える頭はないみたいだな
if文の中で int型と文字列型で比較すると変になるのですが、こういう使い方はダメなのでしょうか?
出力するページは複数あって、普段は0,1,2・・とページごとに表示させています。
**/display.php?page=0 と言う風な感じです。
これに全て表示するようなオプションをつけて
**/display.php?page=all
としたのですが $pageが0のときにallと勘違いされてしまいます。
$page = $_GET['page'];
if($page == 'all')
//全て表示
else
//ページごと
===
>>639 > $pageが0のときにallと勘違いされてしまいます。
んなことないだろ。
preg_match使えば?
>>639 文字を数値に変換すると0とみなされるからね。
>>640の通りに === で比較しないといかん。
こういうのが面倒だからページは1からにした方が楽かもね。
>>641 ためしに print( (0 == 'all') );
これが1になったです・・。
>>640 >>644 そうなんですか、===は初めて知りました。
文字を数値に変換すると0とみなされるんですね・・。
とりあえずページを1からにしてみます、ありがとうございました。
セッションの扱いで質問させて下さい
ページの遷移は入力→確認→完了を2回繰り返して最後にDBに登録
といったものなのですが、
global $HTTP_POST_VARS;
session_start();
foreach($HTTP_POST_VARS as $k => $v){
session_register( $k );
$k = $v;
}
こんな感じでセッションに入れて
その次に
print_r($HTTP_SESSION_VARS);
exit;
で確認するとちゃんと修正されているんですが
いざ各項目を個別に$HTTP_SESSION_VARS[hoge]を出力しても
前回の値が表示されてしまう…
orz
mb_detect_encodingでちゃんと文字コードを検出できたりできなかったりするのは仕様?
>>647 仕様。
仕組みを考えてみれば判るだろうが、渡す文字列が長いほど、
というか文字種が多いほど、誤認識しにくくなるので工夫しませう。
649 :
:04/10/21 03:45:12 ID:???
さて、深夜の便所の落書き
取り込んだmysql_DATAを呼び出し→TABLEで表示は昨日出来た
今日の課題:DATA追加→表示 終わり
任意のDATAをWeb上で選択・消去→表示 終わり
一応、最低限の事まで辿りついた。ちょっと安心。
昨日言ってたように、日本語でMySQLDATA登録してみる→当然文字化け
内部ではSJISで処理してたらしく、都合悪いのでEUCに変える
出力をSJISにしてみる。
そしたら全てOKになった・・・らしい。
ついでにセキュリティの事を読む。ヤバイ文字排除は楽らしい。
明日はテーブルリストのフィールドについて考えて見ることにした
>>649 r;ァ'N;:::::::::::::,ィ/ >::::::::::ヽ
. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
罫線などが予め書かれたExcelファイル(xxx.xls)をテンプレートとして
読み込み、セルに値を埋めて出力したいのですが何か良い方法はありますでしょうか?
Spreadsheet_Excel_Writerというものを見つけたのですが読み込む事が出来ないみたいですorz
>>651 わざわざWebに持ってこないでExcelでマクロ組めば?
(´-`).。oO(651がExcelを持ってるとは限らないのに)
>>652 レスありがとうございます。
本来ならご指摘の通りマクロで対応したいのですが、DBにあるデータで
値を埋めなければならないため、Web上でおこなっております。
幼稚園児に言われたくないな
乳児は黙ってろ
658 :
652:04/10/21 14:20:42 ID:???
>>655 俺ならDBのデータをODBC経由でExcelの「外部データのとりこみ」に持ってきて処理する。
>>658 それでも良い気がするんだけど、問題はそのDBを繋ぎにいくExcelを
不特定多数の人が使うとなると色々問題があるような・・・
>>651 幾つか手段はあると思うんだけど、
・サーバをWindowsにしてWEBアプリもASP.NETなどで作って、
全てサーバ側で処理してExcelをダウンロードできるようにする。
・そのExcelで必要なデータをCSVやらSYLK形式のテキストでダウンロードできるようにして、
各ユーザはマクロが組まれたExcelのテンプレートでそのファイルを読み込み、
後は勝手にマクロが処理してくれる。
660 :
652:04/10/21 15:57:58 ID:???
アクセス権の問題ってことか。
DBのテーブル/ビューの内容をPHPを使ってベタなHTMLの<TABLE>に整形するような
スクリプトを作っておいて、それをExcelからWebクエリとして開くと一見普通の
Excelの表として読みこめるから、その手もいけるかもしれない。
661 :
651:04/10/21 16:48:57 ID:???
お二方様、ご意見ありがとうございます。
659さんの2番目のやり方を少しいじったやり方で実現出来ました。
DBから必要なデータをCSVに出力した後に、FTP経由でCSVを取得して
そのCSVデータをマクロで処理するexeを作りました。謝謝ですm(_ _)m
662 :
nobodyさん:04/10/21 17:33:03 ID:Q3cv6Kj3
すいません、ご指導のほどよろしくお願いします。
PHPからPostgreSQLに検索をかけるプログラムを書いております。
PGの文字コードがEUC-JPで、PHPからPOSTする検索対象語は
SJISです。それで検索対象語をSQLを実行する側のPHPにてEUC-JPに
変換したのですが、以下のようなエラーが出てきてしまいます。
Warning: pg_exec(): Query failed: ERROR: parser: unterminated quoted string at or near "'%" at character 201 .
検索対象文字の前後にワイルドカードをつけています。
検索対象文字がアルファベットの場合には何事もなく動作するのですが。。。
何か対処法がありますでしょうか?よろしくお願いします。
>>662 どういうqueryを投げようとしてるかはprintしてみたんだよね?
printin
665 :
nobodyさん:04/10/21 19:34:36 ID:Fws0z8sw
変数の内容を実行したいのですが、何か方法はありますでしょうか?
イメージ的には include や require の引数に文字列を渡すといった感じです。
例えば変数の内容が
<html><body><?php echo date('m/d'); ?></body></html>
となっている時に、正しく実行(処理)したいのですが方法がわかりません。
上記の内容がファイルの中身であればファイルを include すれば、
include した時点で、評価されると思うのですが、
この内容が変数にある時にどうしたらよいのかがわかりません。
eval だと 渡す内容が php のコードじゃないとだめだし。
アドバイスのほどよろしくお願いします。
>>665 全く同じ質問がこのスレにあったような気がする。
eval('?>'.$str.'<?php');
ではなかっただろうか。
667 :
nobodyさん:04/10/21 19:45:58 ID:AZy0QHNb
PHPでのメール送信について質問させてください。
現在、PHPを使用して構築したサイトを運営しており、今回、OSとApacheの
バージョンアップを行おうと思いテストを行っていたところ、PHPからメールを
送信した場合に、エラーとしてはじかれてしまうアドレスがある事がわかりました。
具体的には、sendmailをコマンドラインからキックする際に「-f スイッチ」を
付けなかった場合と同じ現象のようです。
現在、PHPでのメール送信は「mb_send_mail」を使用しておりますが、この現象を
回避する方法をご教授ください。
現在の環境
RedHat EL3 / Apache 2.0.46 / PHP 4.2.3 / 8.12.6
バージョンアップ前の環境
RedHat 7.2 / Apaache 1.3.29 / PHP 4.2.3 / 8.11.x
よろしくお願いいたします。
668 :
665:04/10/21 19:53:08 ID:Fws0z8sw
>>666 スレ探してみましたがみつけられませんでした。すみません。
教えて頂いたようにやってみましたが、
Parse error: parse error, unexpected T_ECHO in /home/hoge/test.php(10) : eval()'d code on line 5
となってしまいます…。
よろしくお願いします。
Zend studio 3.5すげーいい!!
別ウィンドウでソース見れるだよ。
↑業者?
このスレのレスみてるとPHPがいかに幼稚な言語かがわかるな。
∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J << 671
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
ばぶー
674 :
:04/10/21 23:17:20 ID:???
どのHPでも裏ではPHPで動いてるんだよ・・・
どの学校でも裏では日教組が動いてるんだよ・・・
いい加減に私の質問に答えてください。
×いい加減に
○いい加減な
>>677 お前のせいで確認しちまったじゃねぇか氏ね
上手い!禿しくワロタw
>>646 ここの人たちはセッションについてまったく分かりませんよ。
ハックション
682 :
662:04/10/22 00:33:50 ID:n1ZmUV/Q
>>663 すいません、遅くなりました。echoで出してみたら以下のようになります。
WHERE UPPER(name) LIKE '%F{%'
LIKEのあとが変換したあとです。
683 :
nobodyさん:04/10/22 01:28:53 ID:GnBF56DF
すみません、質問です。
($rowForumInfo['numpost']) ? $numPost = $rowForumInfo['numpost']: $numPost = 0;
これの意味がわかんないのです。
?と:で前後を比較してるのかな?と思うんですけど、検索しても出てこないし・・・
phpマニュアルの該当ページとか教えてくださいまし。
普通は
$numPost = ($rowForumInfo['numpost']) ? $rowForumInfo['numpost'] : 0;
と書くのでは?
>684
即レス感謝です!
そのページ見て他のに気が付かなかったよ!
>685
マニュアルではそうなってますね。
>683のはF-boardさんのです。
687 :
646:04/10/22 08:21:38 ID:???
>>680 そうなんですかー、
もしよかったらどこかふさわしい所に
誘導していただけますか?
>687
マニュアル読め。
検索しろ。
ゆういちってネタ用の共有コテハン?
あ〜ハマった。
スクリプトの中でファイルのサイズがころころ変わる場合、
一回づつ clearstatcache() しとかないと filesize() の
返す値が更新されないんでやんの。
マニュアルを読めば「注意」のとこに書いてあるけどナー。orz
691 :
nobodyさん:04/10/22 13:08:06 ID:rXNsH1Ry
linuxからW2KServerのMSSQL2000にFreeTDS接続したいと思うのですが
odbc_connect(): SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data source, SQL state S1000 in SQLConnect
というエラーがでてきてしまい接続できません。
ポートは開いておりPingもとんでいます。
設定は多分問題ないかと思うのですが
W2KServer もしくは MSSQL2000の方でセキュリティとかの設定のせいでしょうか?
odbc.ini等の設定見直しているのですが・・
692 :
nobodyさん:04/10/22 14:19:22 ID:rNwrhFTR
"aaa","bbb","1,000","hoge"
"bbb","ccc","piyo","uyo"
ってな""で囲まれたカンマ区切りのCSVデータをexplodeする際に
データに、1,000みたいに途中にカンマが入っていると、上手く切ることが出来ません。
どうしたらいいでしょうか?
list($a,$b,$c,$d) = explode(",",$data);
>>692 $csv = <<<CSV
"aaa","bbb","1,000","hoge"
"bbb","ccc","piyo","uyo"
CSV;
$result = preg_split("/(\",)?\"(\r\n)?/m", $csv, -1, PREG_SPLIT_NO_EMPTY);
var_dump($result);
PHPプログラム同士のプロセス間のデータのやり取りを
何でやったらいいか思案中
プロセス間通信にファイルを使うのはダサいしなぁ
695 :
nobodyさん:04/10/22 15:20:58 ID:wsf+cSNu
すいません…質問です。
ネットで探してみたもののあまり参考になる例が無く…
詰まってしまいましたのでよろしくお願いしますm(_)m
ログデータは下のような感じで管理しているとして、
-------------------------
名前,DATA1,DATA2,DATA3\n
名前2,DATA1,DATA2,DATA3\n
名前3,DATA1,DATA2,DATA3\n
------------------------
このデータから"名前2"の行を抽出する場合どのようにしたらよいでしょうか?
一応下記の方法で試したのですが、どこが間違っているのかも解らず…
"名前2"以降のデータも全て取得してしまいます…。
正規表現がおかしいのでしょうか?
誰か解る方いましたらよろしくお願い致します。
$id="名前2";
$l_f = file_get_contents($logfile);
$idstr = "^($id,.*)$";//名前を正規表現に組み込む
if (ereg($idstr,$l_f,$rtdata)) {
echo $rtdata[1];
}else{
echo "エラー";
}
結果的にデータの中から一行を効率よく抜ければいいのですが…
>>695 一気に読むより、fgets()で一行ずつ評価するといいんじゃない?
パフォーマンス的には知らんけど。
698 :
695:04/10/22 18:15:34 ID:???
>>697 ありがとうございます
その方法は始めに試しましたが、
ログを増やしていくとなると重くなるのかな?と思い、
ループを使わない方法を探っております。
fseekを行単位で行えたらいいんですけどねぇ^^;
>>668 eval('?>' . $string . '<?php ');
だった。
phpの後に半角スペース1つ。
<?php
$string = "<html><body><?php echo date('m/d'); ?></body></html>";
eval('?>' . $string . '<?php ');
?>
>>698 ( ● ・3・ ● ) エェー >if (ereg($idstr,$l_f,$rtdata))
if (preg_match("/$idstr/m", $l_f, $rtdata))
701 :
nobodyさん:04/10/22 18:57:51 ID:IrQQWX67
質問です。
print "<FORM method=POST target=up action=$PHP_SELF>\n";
print "名前:\n";
$cookiename = $_COOKIE["cookiename"];
print "<INPUT type=text name=ename size=20 Value=$cookiename>\n";
print "<INPUT type=submit value=入場口1>\n";
print "<INPUT type=hidden name=gateway value=entry1>\n";
print "<INPUT type=submit value=入場口2>\n";
print "<INPUT type=hidden name=gateway value=entry2>\n";
print "</FORM></BODY></HTML>\n";
一つのForm内で、一つのtextboxから2パターンに処理を振り分けることは
可能なんでしょうか?
上は、ボタン「入場口1」とボタン「入場口2」をそれぞれ押すと、別の
処理を流したいのですが、一つのFormから可能なんでしょうか?
或いは、他に方法があるなら教えてください。
>>701 ( ● ・3・ ● ) エェー submit の value は押さない限り送られないから
同じ name にして value 見て振り分けるとかすれBA?
703 :
698:04/10/22 19:13:53 ID:???
>>700 おおっ!!ありがとうございます〜!!
無事、やりたいことができました!
preg_matchの方がeregより処理が速いと書いてあったので、
一度試してみたのですが、その時はエラーが出て断念していました…。
これで安心して眠れます、本当にありがとうございますm(_)m
704 :
nobodyさん:04/10/22 19:22:42 ID:/rwDGP0l
php初めて1週間も経たない初心者です。
データベースを検索して、データの中のURLを取得するのですが、
そのURLのページに自動ですぐ行くようにするにはどう書けばよいですか?
$aaa = $row["URL"];
print($aaa);
で、目的のURLは表示されましたが
html部で
<META HTTP-EQUIV="refresh" CONTENT="1;URL='$aaa'">
とやってもうまくいきませんでした。。
706 :
nobodyさん:04/10/22 21:17:38 ID:OP6//mfv
phpを使うとsendmailだけではなくメールボックスのようなものも作れるのでしょうか?
>>706 phpを使ってMTAに接続しメールを送信するだけでなく、
MDAが配送したものをPOPすることができるか?ということならできる。
マニュアルのIMAP,POP3,NNTP関数を参照。
あきてきたな
ああ、まったくだ
710 :
nobodyさん:04/10/23 01:26:33 ID:2GvadRBB
PHPであるサーバのあるポートが開いていればTRUE,開いていなければFALSEを返すようなコードは
どういう風に書けば良いでしょうか?
>710
fsockopen()
今popen()使ってsendmailからmailを送信するスクリプト作ってます。
ですがどんなにがんばってもうまくいかなくてphpinfo()したところ、
safe_mode On
safe_mode_exec_dir /usr/local/php/bin
とありました。これはもしかしてsystem()とかpopen()とかは使えない状態なんでしょうか。
ちなみにxreaという無料スペース使っています。
無料スペースではほとんどsendmailは使えないと思ったほうがいい
714 :
:04/10/23 03:00:45 ID:???
メール送信ならsendmail(ないしはそれのエイリアス)なんかつかわんで、smtpちょっと勉強して自分で書いたほうがいいよ
715 :
:04/10/23 03:14:30 ID:???
自宅鯖じゃないんだ
>>713-715 アドバイスありがとうございます。sendmailはあきらめました。
smtpと対話してみようと思います。
session_set_cookie_params() の第一引数 int lifetime は秒数ですよね
デフォルトは0だそうですが、最大どのくらいの値を設定できますか?
719 :
nobodyさん:04/10/23 18:06:14 ID:ICRztpGp
$a1 = "test";
echo ($a+"1");
上記の$a を連結して$a1とする方法はありますでしょうか?
>>719 $foo = 1;
${a$foo} みたいなのを言ってるのか?
721 :
nobodyさん:04/10/23 18:48:05 ID:ICRztpGp
>>720さん江
${a.$foo}でうごきますた。
有難う。
>>718 intだから 2^32-1(=30億くらい)で無いの?(一般的なプラットフォームの場合)
実際には cookieのexpiresにセットされるわけで、
expires=Thursday, 31-Dec-2037 00:00:00 に相当するlifetime(10億秒後くらい)が妥当かと。
32ビットintって10桁ですよね。
time()で取れる時間も10桁、いつか破綻しそうなのに大丈夫なのかなぁ
SimpleXMLについて質問です。
<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet href="test.xsl" type="text/xsl" ?>
<doc>
<head>テスト太郎</head>
<par>こんにちは、テスト太郎です。</par>
</doc>
という内容のXMLファイルを$xmlに読み込み、そのデータを echo $xml->asXML();で画面表示したのですが、
test.xslが反映されていません。XMLファイルを直接ブラウザで表示すると、反映されているのですが……。
どうしたらいいのでしょう、教えてください。
timeは2038年で破綻します。
それが?
さぁ?自分で考えれば?w
phpだと桁があふれたときに自動で64bit型になるのかな?
>725
simpleXMLって、xslとかxsdとかに対応してなかった希ガス。
どっかで読んだと思うんだが、今見たら本家のSimpleXMLリファレンスには
書いてなかったし……(記憶違いだったらすまぬ)
2chと互換のあるトリップが欲しくて下のスクリプトまでたどり着いたのですが
"<"と">"の記号が2chと同じように変換されません。原因が分かる人教えて。。
環境:php4.3.8
$key = "<>";
$key = JcodeConvert($key, 1, 2); //EUC-JPの$keyをShift-JISに変換・・
$salt = substr($key."H.", 1, 2);
$salt = strtr($salt,":;<=>?@[\\]^_`","ABCDEFGabcdef");
$salt = ereg_replace("[^\.-z]", ".", $salt);
echo $trip = "◆".substr(crypt($key, $salt),-10);
mb_ereg_replace(">","<",$salt)
>>725 サーバ側の PHP スクリプトと同じディレクトリに test.xsl があって、
ブラウザ側で PHP スクリプトが出力する XML に test.xsl を適用させたい
ということでいいのかな?
もし、そうだとしたら、デフォルトで PHP は
Content-type: text/html
を出力するので、単なる HTML ファイルとしてブラウザが認識しているはず。
PHP で XML 用のヘッダを出力すればブラウザが test.xsl を取得して
適用してくれると思う。
header('Content-type: application/xml');
一応、Mozilla Firefox では確認した。IE では試してないけど。
734 :
730:04/10/24 09:40:30 ID:???
>733
あ、なるほど。THX
元質問者でないが、次そういう話がありそうなので助かった。御礼
735 :
725:04/10/24 13:20:53 ID:???
>>733 あ、なるほど、そうだったんですか!
HTML用のヘッダを出力していることは知りませんでした。どうもありがとうございます。
>>735 Operaだと、xsltは無視される。
IEは追加のコンポーネントを入れないと、まともに表示されないのもある。
IEとMozillaで、xsltの解釈が違って、表示が異なる事がある。
737 :
725:04/10/24 14:17:43 ID:???
>>736 もちろん、(XMLを使うわけですから)そのくらいのことは存じております。
ですから、サーバサイドでXSLTを適用するか、それともブラウザの変換に委ねるかどうか、閲覧者に選択
させるようにするつもりです。
まあ、わざわざありがとうございます。
ディレクトリ内のファイルのうち特定の拡張子のもの(とりあえずzipとlzhを想定)だけを
表示させるスクリプトを作りたいのですが、
同一ディレクトリ内ファイル名を配列$f_nameに格納後
zipとlzhのものを配列$itemに格納して一致するものを抜き出そうと
下記のように書きましたがうまくいきません。$new_f_nameが空になります。
よろしければどなたかおかしいところを教えていただけないでしょうか。
(ディレクトリ内のファイル名を$f_nameに格納するところまで省略)
$item = array("zip$","lzh$");
$new_f_name = array();
foreach($f_name as $value);{
if (in_array($value, $item)){
$new_f_name[] = $value;
}
}
$f_name = $new_f_name;
dbからの検索結果を表示するときに、
キーワードをgoogleのように色違いにしています。
str_replace('検索ワード', '<B><FONT COLOR="#FF0000">検索ワード</FONT></B>', $対象文字列);
と言う感じです。
これを改造して、半角空白でAND検索を出来るようにしたんですが
例えば「たま まご」で検索した場合、結果表示がうまくいきません。
元の文章が「生たまご全滅」だった場合に
本来なら「生<B><FONT COLOR="#FF0000">たまご</FONT></B>全滅」となって欲しいのですが
実際は「生<B><FONT COLOR="#FF0000">たま</FONT></B>ご全滅」となってしまいます。
途中で置換しているために「まご」が消えてしまい、置換されないためなのですが、
これをうまく回避または処理する方法はありますでしょうか。
何かアイデアなどありましたら、ご教授お願いしますm(_ _)m
>>739 それさ、実装したとして、
「結構 構文」 で検索したときに
「結構文章がうまい」 が 「<b>結構文</b>章がうまい」 になっちゃうだろ。
Google で 「たま まご」 で検索しても 「たまご」 にはハイライトされてないし。
っていうか 「たまご」 で検索したいなら最初から 「たまご」 で検索するんじゃ。
741 :
nobodyさん:04/10/24 17:26:42 ID:l6rOaDlU
htmlとcssに関しては、普通に解ってて(自分のやりたい範囲の事は)
最近、php&mysqlに手を出した、インチキweb屋です。
スクリプトなんかは、ありものを改造してなんとかする程度のレベルです。
よくある、登録したデータから条件を設定して検索したり、
データを登録するためのインターフェイスを作ろうと試行錯誤してます。
ローカル、及びリモート(レンタル鯖)でphpとmysqlは既に稼働してます。
データベース板で質問したのですが、web prog板で聞いた方がいいよ、と
言われこちらにおじゃましました。さて、いくつか質問させて下さい。
環境はPHP4.3.1、MySQL 3.23.58です。(本番用のレンタル鯖)
質問1 検索結果で、タイトルにあたるものをずらっとリストアップして
そこから、詳細画面(getでid を渡して表示)を出すというのをやってみました。
そのさい、詳細画面を表示するときにこっそり、count(例)というフィールドの
値を増やしてそのレコードに書き込む。すなわち、レコードごとにアクセスカウンタを
付けた(重複対策悩んですますが)ような事をしてみたのですが、やり方的に、変ですか?
普通のカウンタみたいに、レコードごとにカウント用のファイルを用意してするべきでしょうか?
質問2 ひとまず、検索、一覧、修正、登録、削除等の機能をmodeという変数で判別して
一つのphpのなかでcase文で振り分けてやりくりしちゃってるのですが
こういうやり方はかなり変でしょうか?(もちろん公開するときは修正、登録、削除は別ファイルにしますが)
質問3 本番で使うレンタル鯖は、phpのcgi版しか使えません。これだとHTTP 認証出来ないのですが
このような場合、修正、登録、削除などの管理画面をどのようにプロテクトすればよいでしょうか?
いざとなったら、編集作業のときだけ、スクリプトをアップして作業が終わったら消すとかw
質問項目が多くなってしまいました。「質問1 それ、変」とかそんな感じでいいので
アドバイスというか解答をいただけたらと思います。
>>741 思いつくまま適当に書いてみる
答え1
いいんじゃないですか。同時アクセスの問題とか解決できてるなら。
まあ、web屋さんだからその辺は心得てるだろうけど。
答え2
一つの関数に複数の異なる機能を持たせるのはあまりよくない。
一機能一関数位の感じで組むと見やすいと思うけど、その辺は個人の感覚次第。
答え3
DB使えるなら、認証はDBを使って作ってしまうってのはどうだろう?
それか、.htaccessを使えるならそっちで。
>>741 そういう質問している段階からピンで仕事を獲ろうという神経はどうかしてるよ。
悪いことはいわないから、とりあえず下請けから初めてプロジェクト管理なども
含めて勉強してください。
>>741 >質問1
>質問2
「変」ではない。
一般的かどうかなんて、そんなに重要なことじゃないだろ?
仕事でチーム組んで開発するのならいざ知らず、
個人的にやっているものなら、やりたいようにやればいい。
>質問3
自分で認証実装すればいいんでは?
いくらでもやりようはある。
ま、俺ならモジュールで動く環境使うけどな。
相変わらず回答者のレベル低いですね
746 :
738:04/10/24 17:51:32 ID:???
放置されてて悲しかったのでどうにか自己解決しました。お目汚し失礼しました。
747 :
739:04/10/24 18:07:30 ID:???
>>740 回答どもです。
>それさ、実装したとして、
>「結構 構文」 で検索したときに
>「結構文章がうまい」 が 「<b>結構文</b>章がうまい」 になっちゃうだろ。
まさにそういうことです。
検索者が意図してるしてないに関わらず、
単に結果を正確に表示したいという事です…
googleってのはイメージしやすい一例で出しただけで、
仕様としては「入力した文字を厳密にハイライトする」って形にしたいと思ってます。
「しんぶんし ぶん」のような形も
「たま まご」のような形にも対処できる、スマートな方法のアイデア、
何かありませんでしょうか…
>>747 検索側がわざわざ「たま まご」や「しんぶんし ぶん」で検索してるんだったら、
「たまご」や「しんぶんし」と混同されるとマズイってことだろう。
せいぜい表記ゆれを見て修正候補だすぐらいじゃない?
>>746 ごめん、よく読んでなかったよ。
漏れだったらglob()使うね。
751 :
741:04/10/24 18:53:32 ID:???
丁寧な解答有り難うございます。
>>742 1. いや、同時アクセスの場合のこととかそこまで深くは考えてません。
やっぱりカウンタ値を、単なるページの読み込みで書き換えるってのはヤバい気がしてきました。
2. この辺は、まだプログラムの構成も練れてないのでじっくり考えてみることにします。
3. 別テーブルにid とパスを入れてそこに問い合わせてあってたらそれ以後のスクリプトを実行という感じですかね?
>>743 漏れのスキルが至らないのは自分でも解りきっています。
これでも何も解らないところからひと月でなんとかここまで来た訳でして
むしろ、仕事を獲ろう、としたというより、仕事が来てしまった、と
いう形なのです。とにかくやるしかない状況なのです。
>>744 なるほど。自分の場合、他のひとは一切関わりませんし
すべて自分で作って自分で対処するので、自分のやりたいようにやるのが
いいのかもしれません。
幸い、漏れて困るような情報はあつかっておりませんので、勉強だと思って
思ったように作って少しずつ、知識に応じて改造していくのでもよいですね。
752 :
初心子:04/10/24 19:16:06 ID:lx5zDplK
質問です。
例えばあるサーバAで稼動しているアップローダ(PHP)にアップロードされた
ファイルを、そのままFTPサーバの稼動しているサーバBにアップロードする、
ということは可能でしょうか?可能であるとしたら、どのようにすれば
そういうことが出来るのでしょうか?
753 :
739:04/10/24 19:29:39 ID:???
>>748 うーん。。なんというか、シンプルで厳密なものにしたいのです。。
>>749 すみません、2パスでやるとはどういうことでしょうか?
>>753 うーんとね、まず、どの文字を置換しなきゃならないかを全ての条件でサーチして、
結果をどっかに格納しておく。
で、おわったら、その結果を元に置換する。一文字単位で色変えれば簡単にできるでしょ。
冗長だけど。
755 :
カポ子:04/10/24 20:02:31 ID:???
うpファイルがバイナリ時で
拡張子チェックやリモートファイルの名前付け、
パッシブモード設定時等の処理は自分でやってくれの場合↓
<form enctype="multipart/form-data" action="_URL_" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000">
Send this file: <input name="userfile" type="file">
<input type="submit" value="Send File">
</form>
<?php
$filename = $_FILE['userfile']['tmp_name'];
$filesize = (int)$_FILE['userfile']['size'];
$fp = @fopen($filename,"r");
flock($fp,LOCK_SH);
@fseek($fp,SEEK_SET,0);
$upload = @fread($fp,$filesize);
flock($fp,LOCK_UN);
fclose($fp);
$cnt = ftp_connect($host,21,100);
$rslt = ftp_login($cnt,$user,$pass);
if(!$cnt):
echo 'I cannot look up the FTP SERVER.';
exit();
elseif(!$rslt):
echo 'I cannot look up the FTP USER.';
exit();
else:
if(@ftp_put($cnt, $remotefile, $upload, FTP_BINARY))
echo "OK!";endif;ftp_quit($cnt);
756 :
初心子:04/10/24 20:48:25 ID:???
>>755 こんなに早くサンプルまで頂けると思っていませんでした。
大変助かりました。ありがとうございます!
PHPプログラムでフォルダを作ることは可能なのでしょうか?
知っている方いたら教えてください。
えむけーでぃあいあーる
メイクディレクトリ?
>>758 実はディレクトリのことじゃなかったりして・・・?
PHPでfsockopen()使ってソケット接続する際のタイムアウトはsocket_set_timeout()で指定しますが、
それでは実際にタイムアウト処理を含んだソースを書くとすればどんな風に書きます?
そもそも、socket_set_timeout()で指定した秒数を超えるとどういう動作をしているのでしょう?
自分は今まで何も考えず、socket_set_timeout()さえ指定しておけば、勝手にソケット接続を閉じて
くれるとばかり思っていたのですが、どうもそれが上手くいっていないのではないか?(予想)という
ケースに遭遇しました。
色々と調べていると↓のようなソースを発見しました。
http://cvs.sourceforge.jp/cgi-bin/viewcvs.cgi/pukiwikimod/pukiwiki/proxy.php これを見るとsocket_get_status()でチェックをかけてますが、必要な処理なのでしょうか?
ご意見求む。
>>751 質問1について
詳細のデータは対象物が変わならい限り更新の必要がないものでしょ?
その同じレコードにアクセスされるたびに更新されるカウンタを同居
させるべきじゃないよ。
具体的には詳細ID+カウント値という構成の別テーブルを作るべし。
詳細という事実とそれを参照されたという別の事実を混同しないほうがいいし、
更新頻度の異るデータを同じ場所に詰めこまないほうがいい。
質問2、3について
参照、修正、登録、削除それぞれ別ファイルにしておけばBASIC認証で済む。
763 :
nobodyさん:04/10/25 11:26:06 ID:pw7w/xoj
フリーのグラフ表示スクリプトってないですか?
自分の製品を売っても、無料で使えて、出来ればソースの改造もしちゃって良いというの。
764 :
nobodyさん:04/10/25 11:31:40 ID:XEONTDY3
765 :
nobodyさん:04/10/25 11:41:28 ID:pw7w/xoj
>>764 レスありがとうございます。
jpgraphって商用版を買う必要がありませんか?
ちったぁ調べろハゲが。
ちったぁ調べろ禿が。
>>759 メイクディレクトリです。
解答ありがとうございました。
769 :
nobodyさん:04/10/25 13:27:18 ID:R1CVi9Qf
urlのパラメタを引数として取得したいんですが、
$_SERVER['QUERY_STRING'];
って、数字しか認めてくれないのですか?
http://~~.php?0432 と
http://~~.php?A432 を
echo "<{$_SERVER['QUERY_STRING']}>";
と表示させたら前者しか表示されませんでした。後者は真っ白。
数字だけじゃ困るときはどーすれば良いですか?
770 :
nobodyさん:04/10/25 13:28:59 ID:Dv6fMtrA
変数の名前を、変数で変化させることは出来ないのでしょうか?
771 :
:04/10/25 13:29:57 ID:???
出来るよ
772 :
770:04/10/25 13:35:29 ID:Dv6fMtrA
>>771 $abc_data = 'hoge';
$def_data = 'piyo';
$name = array('abc','def');
for($i=0;$i<count($name);$i++){
print ${$name[$i]}_data;
}
で、エラーが出ました。どこがいけないのでしょうか?
print ${$name[$i]}_data;
774 :
770:04/10/25 13:48:39 ID:???
$abc_data = 'hoge';
$def_data = 'piyo';
$hensuu_name = '_data';
$name = array('abc','def');
for($i=0;$i<count($name);$i++){
print ${$name[$i] . $hensuu_name};
}
で出来ましたです。
>>769 んなわけない。<? phpinfo(); ?> が書かれているPHPに phpinfo.php?QUERY... でアクセスしてみろよ。
ちゃんと出てるだろ?
はじめまして、今HPを作っていてアンケートを作成していて
以下のようなものを作ってみました。
内容はTELや郵便番号・住所の番地部分などの数字とハイフンを
綺麗にそろえようとしたものですが、もっと短く綺麗なプログラム?にしたいのです。
どの部分をもっといじれば短く綺麗な物になるのでしょうか?
俺ならこう書くなどのコツを伝授してください
また付け足したほうがいい機能とかもあったら教えてもらえませんか?
*$inputとprint部は後で消したりフォームからの入力に対応させます。
$input = "999− 9 9 9―99 9 9";
$before = array("−","ー","ー","−","―"," "," ");
$after = array("-","");
$input=mb_convert_kana($input,"a","EUC-JP");
for($i=0; $i<count($before); $i++){
if($i<count($before)-2){
$input = str_replace ($before[$i], $after[0], $input);
}
else
$input = str_replace ($before[$i], $after[1], $input);
}
print($input);
>>776 こんな感じかなぁ
$input = "999− 9 9 9―99 9 9−8ー8ー8−8―8";
$bar = array("−","ー","ー","−","―");
$bars = implode("|",$bar);
$input = mb_convert_kana($input,"a","EUC-JP");
$input = preg_replace("/$bars/","-",$input);
$input = preg_replace("/[^\d-]/","",$input);
echo "$input\n";
>>777さん
IFもFORもなしに出来るんですね!
教科書レベルの私には分からない
関数が2つほど出て来てるので
いまから必死こいて勉強したいと思います。
ありがとうございました。
>>776 $input = "999− 9 9 9―99 9 9";
$before = array("−","ー","ー","−","―");
$input=mb_convert_kana($input,"as","EUC-JP");
$input = str_replace ($before, '-', $input);
$input = str_replace (' ', '', $input);
print($input);
こんなんでもいいんじゃない?
780 :
741:04/10/25 22:59:58 ID:???
>>762 なるほど。質問1についてとても参考になりました。
アクセスしただけで、count(例)というフィールドの値を読み出して
1足して書き込む。これってある意味、編集であるわけじゃないですか。
そのカウントアップするphpに変なクエリ(漠然としかわかってないです)を
つけたURLを送ったりして変なことされちゃうという危険性はどうなんでしょうか?
別テーブルでやります。
自分で調べたところ、フィールド内の値の更新は、mysqlの場合
自動的にロックされると理解したんですが同時アクセス(更新)に対しての問題はいまいち理解不足。
質問2-3はおっしゃるようにしようかと思います。
自分のように、中途半端な知識のまま、覚えたてのことだけでなんとかして
業務に使わなくてはならないのは、悲惨なんだか恵まれてるんだか、
自分でもよくわからなくなってきますた。
ひと月くらいの間でphpとmysqlのことばかりでちょっと頭おかしくなりそうです。
>>780 テーブルに書き込む前段階で入力値チェックすればいい。
自分が想定した以外の値が来たらエラーを返すようにする。
アクセス→カウントUPだけなら変なクエリも糞もない気はするけどな〜。
むしろ、他の部分で気を付けるようにして欲しい。
782 :
741:04/10/26 00:03:37 ID:???
>>781 ご丁寧に有り難うございました。
幸い、漏れて困るような情報は扱わないので、その辺は気楽です。
このところ、一気に詰め込みすぎたせいか、なんだか、えらく作業の効率が悪いです。
ここひと月ほど、休みも自宅でどっぷりでしたから。たまには気分転換もしないと・・・
>>779 おお〜これなら今の私でもわかる!!
なるほど…asで先に全角を半角にしてしまう手があったんですね…
理解してしまうと何でこんな単純なことががが・・・
自分で書いたやつがとってもお恥ずかしい限りです(汗)
777さんの9〜10行目の"/ほにゃらら/"このスラッシュが何の役割を
しているのかが分かりませんでしたが、大変勉強になりました
779と777の御二方ありがとうございました。
784 :
nobodyさん:04/10/26 05:07:44 ID:nD9jwmRQ
print "<FRAMESET rows=60,*>\n";
print "<FRAME name=up src=$PHP_SELF?mode=entry>\n";
print "<FRAME name=bottom src=$PHP_SELF?mode=output1>\n";
print "</FRAMESET>\n";
現在、↓のプログラムのボタンを押すと、Frame上部の画面(upの画面)が、変わる仕組みになっています。
これを↓のプログラムのボタンを押すと、上下両方の画面とも(Frameのupとbottom)更新されるようにする
方法を教えてください。
print "<FORM name=form2 method=POST target=up action=$PHP_SELF?mode=entry>\n";
print "<INPUT TYPE=SUBMIT NAME=b_act VALUE=ボタン>\n";
print "</FORM>\n";
array_spliceで配列$linesからキー$keyだけを削除したいんですが
array_splice($lines, $key, 1)
だとうまくいきません。
どうしたらいいですか?
790 :
788:04/10/26 22:06:06 ID:3sXEVKxI
>>789 array_values()でどうしたら特定の要素を削除できるんですか?
array_splice($lines, array_search($key, array_keys($lines)), 1);
>>788 unset($lines[$key]);
ってことかい?
794 :
788:04/10/27 01:01:26 ID:???
訂正
array_spliceで配列$linesから$lines[$key]だけを削除したい
でした。
おそらく793のやり方でいけそうです。
791,793さん、ありがとうございました。
795 :
nobodyさん:04/10/27 01:40:01 ID:cq+DW3Jz
すいません。質問させて下さい。
$line='p180';
とあり、preg_match()を使って、pと180に分けたいのですが、PHPの
マニュアルやら、手持ちの本やらを見てもさっぱりわかりません。
わかる方、教えて頂けると助かります。
>>795 文字列の最初が必ずpになるのならsscanfでいいじゃまいか
>>795 それだけの条件じゃいまいちワカランがな。
先頭のアルファベットと後ろの数字を分けるなら、
preg_match('/^([A-Za-z]*)([0-9]*)/',$line,$reg);
print_r($reg);
798 :
795:04/10/27 01:52:25 ID:???
>>797 (;・∀・)モシカシテ・・・
おー!できましたー!!!
ありがとうございます。本当にありがとうございます。(つД`)
>>796-797に幸あらん。
>798
PHPっつーか、正規表現だよん。
質問です。
RedHat Linux + PHPのサーバーからWindows + SQL Serverにアクセスしたのですが、
MS SQL関数は使えないのでしょうか?
調べてみるとsybase関数を使うという記述があったようなのですが、
資料が乏しくて理解に困っております。
どなたかご教授頂けないでしょうか。
よろしくお願いします。
Q.
Turbo Linux + PHP + qmail で mail()関数を使いたいと思っています。
ところが“Fatal error: Call to undefined function: mail()”が発生します。
PHPのマニュアルを読むと、qmailの場合は
sendmail_pathにパスを設定すると書いてあります。
“Qmailユーザは、通常、 /var/qmail/bin/sendmailまたは /var/qmail/bin/qmail-injectに設定します。”
php.iniのsendmail_pathには/var/qmail/bin/qmail-injectが設定されていますし、
ファイル自体も存在しています。
qmailデーモンも立ち上がっています。
どんな問題が考えられるでしょうか?
>>802 エラーレベルを上げてもっとたくさん報告してもらうようにするとか。
/var/qmail/bin/sendmailを(シンボリックリンクとして)作ってみるとか。
定義済みの関数一覧を出力してみてmail()が存在するかどうか確認してみるとか。
それぞれの方法は自分で調べてくれ。
>>803 エラーレベル:
E_ALL にしてもFatal errorの表示のみ
シンボリックリンク:
/var/qmail/bin/sendmail は既に存在したので、
php.iniでそっちを指定しても状況変わらず
定義済み関数一覧:
main()は存在せず・・・。
という結果となっています。
806 :
802:04/10/27 15:09:45 ID:???
>>805 あ、こんな方法があるんですね。
ありがとうございます。
その方法では送信成功しました。
mail() → Fatal error
mb_send_mail() → FALSE
imap_sendmail() → TRUE(1)
全て送信失敗です・・・。
807 :
802:04/10/27 15:13:22 ID:???
訂正
imap_sendmail() → imap_mail()
mail
でgoogleでイメージ検索して、2段目の最初の画像を見てみろ。
それが答えだ。
>>806 1.telnetでlocalhostの25番Portに接続
2.接続できたらSMTPコマンドで送信テスト
これも問題ないようであれば原因はqmailじゃないと思うよ
Apache moduleのとき、safe_mode On に何の意味があるのか教えて。
スクリプトファイルのオーナーuidとhttpdの実行uidが違う場合に
激しく不便なんだけど。
レンタルサーバーぐらいにしか使わないからoffにしとけよハゲが。
813 :
nobodyさん:04/10/27 18:56:54 ID:8mNdDRME
質問です。
PCREで、正規表現側に日本語文字列を使うとき、みなさん、どうしていますか?
マッチさせるテキストが日本語の場合は問題ありませんが、
正規表現に文字クラスを使うと、日本語の文字が1バイト文字の2文字として解釈されて困っています。
UTF-8を試してみたのですが、改善されませんでした。
おそらく既出だとは思うのですが、過去ログはすでに倉庫行きで見れません。
よろしくお願いします。
814 :
nobodyさん:04/10/27 19:00:29 ID:8mNdDRME
ちょっと表現がおかしかったので訂正します。
>マッチさせるテキストが日本語の場合は問題ありませんが、
これは、マッチさせるテキストは問題を引き起こさないという意味で、
正規表現が日本語の場合は、テキスト側のコードが何であっても問題が起こりました。
よろしくお願いします。
>>802 メールを使わないものとしてコンパイルされたphpじゃないの?
>>813 mb_* 系の正規表現関数の話なの?
816 :
802:04/10/27 19:50:02 ID:???
818 :
802:04/10/27 20:11:44 ID:???
orz・・・
./configure からやり直したらmail()関数が使えるようになりました。
qmail をインストールした後にconfigureしないと、
mail()関数は有効にならないようです。
お騒がせしました。
apacheの問題であってphp全く関係なかったな
逝け
820 :
802:04/10/27 20:28:24 ID:???
apache関係ないです。
コマンドライン起動のPHPです。
821 :
nobodyさん:04/10/27 21:53:39 ID:mWarabBu
phpってエロサイトに多いね。
822 :
:04/10/27 23:58:58 ID:???
エロは進化への糧だね
実践ハイパフォーマンスMySQL読んでたら
Yahoo!がPHPとMySQL使ってる事例が結構出てきた。
普通に大規模サイトで使えるんだね。
YahooってMySQLなのか・・。
でも入れてるデータって何なの?
更新のほとんど無いカテゴリの情報?それとも頻繁に更新があるヤフオク?
PHP5を使っていてE_STRICTで開発したいのですが、
PEARやSmartyを使うと大量にエラーが発生してしまいます。
外部のライブラリに手を加えずに、エラーを抑制して、
自分の書いたものにだけE_STRICTを適用することはできるのでしょうか?
>>824 最初に使ったのはYa!FINANCEのサイト。
使うべきところと使うべきでないところをきちんと判断し、
使うべきところで如何に適正に使うかを述べている。
828 :
nobodyさん:04/10/28 03:56:29 ID:vepR/sO0
DAOでSQL書くときフィールドをきっちり指定しまつか?
豆にやってたメンバがやたら増えてわけわかんなくなるは
名前に規則性がないから判別つかんわ・・・
全部
SELECT * FROM でやっていいでつか?
パフォーマンスおちるかなぁ
829 :
T:04/10/28 04:46:02 ID:d4m97dka
PHP+MySQLでウェブアプリを作成中です。
バージョンはPHP4.2.2、MySQL3.23.55です。
mysql_query()で2つのテーブルAとBのいくつかのフィールドを同時に
更新したいのですが、いろいろ試してみても方法が見つらず困ってます。
まず、mysql_query()では一度に一つのクエリーしか実行できないですよね?
で、各テーブルを別個に更新するクエリーAとクエリーBをそれぞれ順番に
mysql_query()で実行したとして、クエリーAが成功した後、
万一クエリーBが失敗した場合に、クエリーAの更新をキャンセルすることは
できないでしょうか?
MySQLのバージョン4あたりからCommit./Rollbackとかが使えるように
なってるらしいんですがMySQLのバージョンアップは考えておらず...
最初のクエリーの実行を一時的に保留にして、両クエリー成功時のみ更新を
反映させるなんて方法はないものでしょうか?
苦しまぎれにUpdate構文で2つのテーブルを内部結合して一発で更新、
なんて方法も試してみましたが、これもエラーに。
この方法もやっぱりムリなんでしょうか?
こういうケース、皆さんはどう処理されているのでしょう?
ちょっとMySQL板寄りの質問かもしれませんが、PHPのコードでなんとか
できる部分があればどうぞお知恵をお貸しください。
よろしくお願いいたします。
833 :
:04/10/28 18:10:14 ID:???
file.txtから読み込み、ある一部のDATAを取り出し、
条件の下、別の配列に格納しようとします。
例えば、Fileから読み込み格納した配列が
(A,B,5,D,1,A,B,A,B,10,23,A,40,A,B,C)
と並んでるとします。
この中から
DATA(10,23,40)を別に取り出したい(数字10以降から表れるn=3個の数字)
時は、どう考えたら良いのでしょうか。
>>833 (A,B,5,D,1,A,B,A,B,10,23,A,40,A,B,C)
と並んでる配列の中から数字10以降から表れる3個の数字を
別に取り出せばいいんじゃないかな?
つか何を悩んでいるのかさっぱり判らん。
log.logに一行ずつログが書き込まれていくログファイルがあって、たとえば
太郎
花子
太郎
次郎
三郎
太郎
・・・
のようになっているとして、「太郎」を含む行だけを消したいです。(消したところは詰める)
fopen("log.log","w+")で開いて、forを用いpreg_matchで該当するモノを「""」に置き換えて消しては
fwriteでlog.logに書き込むという方法を使っていますが、ログが何メガとでかくなっていると
なんとなくデータが吹っ飛びそうで怖いです。
安全に、速く消していける組み方ってどんなもんでしょうか?
836 :
835:04/10/28 19:03:17 ID:???
自分の書いた方がいいですね
$list=file("log.log");
$logfile = fopen("log.log","w+");
flock($logfile,LOCK_EX);
for ($i=0;$i<count($list);$i++) {
if(preg_match("/太郎/",$list[$i])) {$list[$i]="";}
fwrite($logfile,$list[$i]);
}
fclose($logfile);
$list=file("log.log");
から
flock($logfile,LOCK_EX);
の間で書き込みがあったら壊れるな
>385
テンポラリファイルでやれば途中で止まっても大丈夫。
$fpt = fopen('tmp', 'w');
$fp = fopen('log.log', 'r');
flock($fp, LOCK_EX);
while($buf = fgets($fp, 1024)){
if(!preg_match("/太郎/", $buf)) {
fwrite($fpt, $buf);
}
}
fclose($fp);
fclose($fpt);
copy('tmp', 'log.log');
$Test="_POST";
$$Testと指定して$_POSTにしformの中身を持ってきてるんですが
$$Testのなかみを無理やり、
$$Test="abc";
echo("$$Test");
としてもechoの結果Arrayとでて中身が表示されんです
"abc"を$$Testと関連付けするためにはどうしたらええんでしょうか?
win2000でPHPとMysqlとanhttpdをインストールしたんですが、
mb_convert_encodingが使えませんorz
どこか設定ファイルを書き換えれば使えるんでしょうか。。
>>840 設定ファイルの中に書いてあるよ。
mbstring や mb_ で php.iniやphp.ini-distの中を探してみる。
さらにマニュアルのマルチバイト文字列関数のところを熟読すると、
先々でつまらないミスをしなくて済む。
844 :
:04/10/28 22:42:27 ID:???
mbは拡張扱い
845 :
nobodyさん:04/10/28 23:46:09 ID:kVaGnhG6
>>839 $Arrayと出ていませんか?ちゃんと細かく出力結果は書くべきですよ。
それはさておき、これは(${$Test})として変換されたのではなく('$' . $Test)
として変換されたからこうなったのです。代入はうまくいきます。
最後の出力行をecho $$Test;又はecho "${$Test}";に変えてみてください。
>>843 その場だけ使うのであればdl関数が便利。
>>835 チェックしてないけどこれもいけるかも。
$fn = fopen('log.log', 'r+');
if (flock($fn, LOCK_EX)) {
$fn2 = fopen('log.log', 'r+');
while ($buf = fgets($fn, 4096))
if (strpos($buf, '太郎') === false) fwrite($fn2, $buf);
}
ftruncate($fn2, ftell($fn2));
fclose($fn2); fclose($fn);
>>838 テンポラリファイルを固定してしまうならばテンポラリファイル
にもロックかけたほうがいいかも。whileループ中に多重起動した
らテンポラリファイルが消えるし追加もよくわからなくなる。
>>849 ftruncateはifブロックの中入れるべきだった…
ほかは大丈夫。な、はず。たぶん、
851 :
843:04/10/29 01:10:07 ID:???
動いたありがとう(TT
>>848 cgi-binのperlスクリプト用datファイルはshift-jisで、ホームディレクトリ側のphpファイルはUTF-8なんで困ってました。
幸い鯖の方はmbに対応してたんですけど、やはりローカルでも同じコードで確認できないと。。
jcode.phpとかではどうもうまくいかなかった・・・。
>>851 鯖がmbstring対応してなくても、有志がつくったmbstringエミュレータなんてのも存在する
853 :
845:04/10/29 07:13:25 ID:???
>>846 おはようございます。
お返事遅くなってしまって失礼致しました。
上記関数で、無事値を取ることが出来ました。どうもありがとうございました。
file_get_contents()なんてあるんですね。とても勉強になりました!
854 :
800:04/10/29 09:54:59 ID:???
昨日の800です。
言われた通りunixODBCとFreeTDSとlibiconvをインストールしました。
いざPHPでodbc_connectを使用してみようとすると、
Fatal error : Call undefines function: odbc_connect() .....
と言われてしまい動きません。
odbc関数を使用するにあたってPHP側の設定でしなければいけないことはなにがあるんでしょうか?
是非お願いします
855 :
nobodyさん:04/10/29 11:20:26 ID:fJt1IS4+
856 :
800:04/10/29 12:41:08 ID:???
リンク先の文章読みましたけど意味がわかりませんでした。
結局Linux + PHPからWindows + SQL Serverにはアクセスできないんでしょうか?
859 :
800:04/10/29 13:18:23 ID:???
ここは質問スレッドじゃないんですか?
本当に困っているので教えていただきたいのですが・・・。
PHP4.3.9でmysqli拡張サポートを利用したいのですが、
./configure --with-out=mysql --with-mysqli=/path/to/mysql_config
としても有効になりません。
ちなみにPHP5.0.2ではうまくいきました。
PHPのマニュアルを読むと、
http://www.php.net/manual/ja/ref.mysqli.php > mysqli拡張サポートはMySQL 4.1.2以上で動作するよう設計されています。
と、書いてあるだけで、PHPに関しては特に何も書かれていないのですが…。
PHP4.xで利用する方法はあるでしょうか?
環境:FedoraCore2+MySQL 4.1.7+PHP4.3.9
861 :
860:04/10/29 14:13:15 ID:???
2行目の./configureのオプションは、--without-mysql …のtypoでした。
>>860-861 釣り?
一応マジレス。
without-mysqlしちゃうとmysql無効になるので、
mysql使いたいならwith-mysqlにしなければならない。
詳しくは、./configure --help|grep "mysql"
マニュアルよく読め。
863 :
862:04/10/29 14:21:12 ID:???
激しく勘違い。
>862は無かったことにしておいて下さい。
864 :
:04/10/29 14:31:48 ID:???
ここは隔離板なので、期待はしないほうがいい
PHPがマイナーな事もあるが。
PHPで2chのIDみたいにランダムな文字&数字はどうやってできますか?
よろしくおねがいします。
867 :
:04/10/29 14:48:54 ID:???
>>865 一般にはMD5を使うことになるのかな
関数「md5」の欄参考
>>860 RHL9+PHP4.3.8でMySQL付属(PHPのバンドルではない)の
新旧クライアントライブラリ使ってmysql/mysqli両方とも使ってるけどな。
マニュアルの説明に従っただけで特に何もして無いよ。
実験段階の頃のmysqliとそのころのPHPでも問題はなかった
(多少の問題はあったが、動いていたということ)
869 :
868:04/10/29 15:01:40 ID:???
ごめん。バージョン確認したらPHP5.0だった…
多分実験段階で動かしてたのもPHP5のalphaとか正式版以前のものだわ。
870 :
:04/10/29 15:03:13 ID:???
871 :
860:04/10/29 15:08:15 ID:???
886 よ、サンプルよろ。
873 :
868:04/10/29 15:18:45 ID:???
874 :
865:04/10/29 15:25:38 ID:???
うーん。よくわからないです@MD5
2〜3行で簡単に作れますかね?
875 :
860:04/10/29 15:26:59 ID:???
>>873 ああなるほどw
まだ、使う前なのでそこまで見ていなかった。
どうせなら、導入部分に書いといてくれたらいいのにね。
対応していないということがはっきりしたのですっきりしました。
どうもありがとう。
>>874 MD5って32文字の0123456789abcdefの文字の羅列だぞ
md5();で出たと思う
877 :
865:04/10/29 15:45:31 ID:???
もしよろしければ$hogeにランダム文字を入れて書き込んでいただけないでしょうか
$hoge = rand();
879 :
:04/10/29 16:08:08 ID:???
$rand = mt_rand(100000,999999);
$rand = base64_encode($test);
echo $test;
OK?
880 :
:04/10/29 16:09:29 ID:???
>>879 ×
$rand = mt_rand(100000,999999);
$rand = base64_encode($test);
//echo $test;
encode($test)って一体・・・orz
881 :
:04/10/29 16:10:52 ID:???
あー
base64_test($rand);
と脳内変換してくれ
mt_srand((double)microtime()*1000000);
$hoge = md5(uniqid(rand(),1));
Perlの配列のような使い方って出来ませんでしょうか?
フォームの値が”みかん、りんご、ばなな”として
それを変数”fruit”に代入します。perlだと
@fruit=("みかん,りんご,ばなな");
print "$fruite";
としたら結果表示が「みかんばななりんご」
と出来たと思うのですが、PHPのやり方がよくわかりません。。
>>883 何をやりたいのかいまいちよくわからんが、
$arr = array("みかん","りんご","ばなな");
print join("", $arr);
ってことか?
885 :
883:04/10/29 22:20:38 ID:???
>>884 はい、そういう事なのですが、出力結果は「Array」とだけ表示されてしまいます。
下記のように記述しているのですが。。(フォームの値を取得しています。)
<?
$fruit = array('$fruit01','$fruit02','$fruit03');
print ($fruit);
?>
887 :
:04/10/29 22:28:23 ID:???
中身知りたいのなら
print_r($fruit);
888 :
883:04/10/29 22:28:56 ID:???
>>886 すみません、質問自体が馬鹿でした・・。
要はこういう事です。
■フォームのチェックボックスより選択
・好きな果物は?
みかん($fruit01)りんご($fruit02)ばなな($fruit03)
「確認ボタン」をクリックすると確認画面が現れて下記のように表示されている
好きな果物:(チェックした果物名が表示されている )
上記のような事がしたかったので、果物名を$fruitに代入して
その中身を表示する記述がしたかったのです。
悪いこと言わないから、マニュアルを熟読するかPerlでやるかどちらかを選べ。
Perlでまともな物をかける人間なら、マニュアル読めば絶対理解できる。
保障する。
perlで○○はphpはどうすれば
っていう質問いい加減ウザイ
周りがPHPだから自分も移行ってか?さっさと氏ね
891 :
:04/10/29 23:33:59 ID:???
いいよ、PerlでもPHPでも何でも
知りたいなら質問すればいいけど、
自分でも調べてね
本買わない奴多いのかなぁ。
俺は他言語に移るときは必ず本買うけどなぁ。
本買わなくたってマニュアル読めば済むと思うが。
プログラム自体初めてだったら参考書も必要だろうけどね。
ネットにおいてあるマニュアル、親切だし本(゚听)イラネ
886とか884とか答えそのものを示されても読まないし試しもしない。
そういう馬鹿は質問すんな。リストラされて引きこもってろ。
$image = imagecreatefrompng("./puyo/w_01.png");
imagepng($image);
こう書いたんですが、
臼NG
としか表示されないんですがどうしてでしょうか?
鯖はXREAで、GDライブラリも最新版のものが入っていたはずです。
897 :
:04/10/30 01:53:54 ID:???
配列$array.Key 4.5.6を合計したい(valueは当然数字が入ってる)んだが、上手く行きません