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

【PHP】くだらねぇ質問はここに書き込みやがれpart8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/08/08(月) 01:18:55ID:54u1h4+D
PHPに関するくだらない質問用すれです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい

・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
05835792005/08/24(水) 16:06:20ID:???
>>581
「値があるか」を「数値があるか」と誤読した orz

http://jp2.php.net/manual/ja/function.strlen.php
0584nobodyさん2005/08/24(水) 16:11:39ID:???
>>582
ありがとうございます。

公式マニュアルは、いつも見にいくのですが、いつも全くわからないのです。
答えがわかったためしがないです。読み方があるのですかねぇ。





0585nobodyさん2005/08/24(水) 16:14:33ID:Y2M5edeX
PHPを使い始めたのですが、、たまに化けたり、エラーが出てしまいます。
化けたときのHTMLと、化けてないときのHTMLを比較すると、
普段は「<TR>」となっているところが「<Tzシ」となっていました。
化けているのはこの2バイト分だけで、ほかは全く同じでした。
原因がさっぱりわかりません。何かヒントになりそうなことがあれば教えてください。

環境
OS:RedHat 9
PHP:4.3.10
Apache:2.0.54
0586nobodyさん2005/08/24(水) 16:28:20ID:???
>>585
文字コード
05875852005/08/24(水) 17:04:06ID:???
>>586
どうもです。
ただ、化けてるときもほかのところは「TR」ってなってるんですよね。
解決方法とか、参考になるページとか知ってたら教えてください。
0588nobodyさん2005/08/24(水) 17:34:28ID:/J84pd/x
質問させて頂けますでしょうか?
ここで質問して良いかどうかも解らなかったのですが、

良く出会い系サイトとかであるポイント制度のシステムなんですが
あれってPHPで製作出来ると聞いたのですが・・・
ユーザーがポイントを購入するとポイントを加算していき、
アプリケーションに接続するとポイントが消費していく。
ポイントが無くなると接続をシャットアウトする。
と言うような感じのシステムなんですが、
全てマニュアル操作で良いのですが、このシステムの製作って
どなた様かご指導頂けるかたおられないでしょうか??
宜しくお願い致します。
0589nobodyさん2005/08/24(水) 17:49:25ID:???
マニュアル操作?
0590nobodyさん2005/08/24(水) 17:50:25ID:???
>>588
>あれってPHPで製作出来ると聞いたのですが・・・
PHP「でも」できるが正解かも。

>全てマニュアル操作で良いのですが
意味不明。ポイント操作を人間が行う?
24時間管理システムに張り付くのか?

>このシステムの製作って
>どなた様かご指導頂けるかたおられないでしょうか
貴方が開発するのか?
どの程度のスキルをお持ちか?
0から手取り足取り、PHPの文法から教える必要が?

それとも「ま る な げ ?」
0591nobodyさん2005/08/24(水) 17:53:11ID:???
>>578
戻るで書き込んだデータを投稿画面に送ればいいんジャマイカ?
0592nobodyさん2005/08/24(水) 17:54:02ID:???
>>588
マニュアル操作というのが意味分りません。24時間、人が張りつくのですか?
まず、ご自分でPHP+DBを使い簡単なシステムを作ってみて下さい。
ポイントを購入したら、そのユーザのDBにポイントを加算。
アプリケーションを使ったらポイント消費。
ポイントが無くなったらログアウト。
簡単です。
もし、ご自分で出来ない場合には外注しましょう。
ここで教えてもらうモノでは無いです。
0593nobodyさん2005/08/24(水) 18:02:11ID:???
>>592  いくらくらい掛かるの?
0594nobodyさん2005/08/24(水) 18:03:38ID:???
>>578
セッション使う。
投稿画面:セッション内に投稿内容があればそれを表示する(最初は空になる)。
確認画面:投稿内容をセッションに入れる。
実行画面:セッション内の投稿内容を破棄。
0595nobodyさん2005/08/24(水) 18:08:10ID:???
>>593
一概には言えない。システム開発してるとこに相談して見積りしてもらいなさい。
05965782005/08/24(水) 18:08:55ID:???
>>591
パラメータで送って、投稿画面でGETするということでしょうか?
実は、かなりデータ数が多いので、あまりパラメータ渡しにはしたくなかったのですが、テストしてみたいと思います。
ちなみに、実行画面からさらに投稿画面に飛ぶ作業をあまりしたくない理由は、回線が細いのと、端末が携帯からという理由です。

ありがとうございました。
05975782005/08/24(水) 18:12:30ID:???
>>594
なるほど、セッションは考えていませんでした。
ありがとうございます。
0598nobodyさん2005/08/24(水) 18:28:24ID:/J84pd/x
>>592
有難う御座います。
一度参考書等みながらやってみます。

失礼な事をお聞きしますが、
ちなみにもしあなたが作成するならどれくらいの
金額で作成しますか??

0599nobodyさん2005/08/24(水) 18:36:00ID:???
トラぶるのが目に見えてるので引き受けない。
0600nobodyさん2005/08/24(水) 18:37:42ID:???
>>598
592 じゃないけど。
決済処理で他システムにつないで云々がなければ、30万。
0601nobodyさん2005/08/24(水) 18:39:16ID:???
>>598
いや、だから金額決めるにも様々な要素があるので一概には言えません。ほんとに。
人だけで見ても、ダンピングしてまで仕事まわしてる人も居るし、きちんとやる人も居る。
金額は全然違います。なので勝手な金額を言う訳にはいきません。
それを元に交渉されると外注先が困ると思うので。
0602nobodyさん2005/08/24(水) 18:48:38ID:???
出会い系ならパッケージで売ってるのがあるんじゃないの?
0603nobodyさん2005/08/24(水) 18:59:19ID:/J84pd/x
皆さん色々と返答すんません。。。
実は製作会社に問い合わせたところ私の希望のシステムは
やはり20万〜50万かかるような事言われました。
プログラミングの技術者って凄いですね。
でも解らなければ制作会社頼るしかないかっ・・・
でも制作会社側はソースを公開するって言ってから、
仮にお金かかってもそのソースを参考にするのも勉強
ですかねっ!潔く制作会社に頼みます。(;´д`)トホホ
0604nobodyさん2005/08/24(水) 19:02:11ID:???
>>599
さんへ
トラブルってどんなトラブルがあるんでしょうか??
私は基本的にそう言うのは絶対ない人間なんで大丈夫ですよ。
0605nobodyさん2005/08/24(水) 19:11:55ID:???
>>604
>>599ではないが、私は大丈夫と言い切る奴ほど危険。
思考に柔軟性を欠いているとしか思えない
0606nobodyさん2005/08/24(水) 19:12:25ID:Zqn/ZIzx
初歩的な質問もうしわけありません。
レンタルフォーム?で、お金を払ってフォームを貸してもらうものに登録し、
そのフォームが、HTMLで自分なりにアレンジして改造できる場合、そこにPHPを
埋め込んだりすることはできるのでしょうか?
PHPを使えるサーバーはもちろん用意します。

というのも、レンタルのフォームでは、そのフォームに入力されたデータがCSVで
毎日ダウンロードしないといけないようになっているのです。
これを自分なりに、PHPを使い、MYSQLなどと連携し、RDBでデータベースを作るようにしたいのですが・・・
フォームを借りずに、自分で一からPHPでフォームも作成したほうがやりやすいでしょうか?

0607nobodyさん2005/08/24(水) 19:16:40ID:???
>>606
レンタルの必要なし
出来るのなら自作汁
0608nobodyさん2005/08/24(水) 19:24:51ID:???
>>606
画面(HTML) だけレンタルフォーム(?) からパクって、自分のプログラムに
いれるってこと?だとしたら、技術的には出来るけど著作権にかかる。
自分しか使わないならとめないけどさ。
06096062005/08/24(水) 19:25:07ID:Zqn/ZIzx
>>607
ありがとうございます。
一応、レンタルのものにPHPを埋め込むということはできるのでしょうか?
いずれは全て自作したいと思っていますが。
06106062005/08/24(水) 19:27:56ID:Zqn/ZIzx
>>608
違うのです。
そのレンタルフォームは、HTMLで見栄えを変更できるようになっているのです。
http://home.toku-talk.com/html/s-form.html
↑
これなのですが。
CSVでデータをダウンロードするようになっているのを、RDBで管理したいのです。
0611nobodyさん2005/08/24(水) 19:40:08ID:???
>>610
"HTML の変更"で POST="url" って書いてあるところを変えることができるなら可能。
url を自分の PHP のアドレスにする。

しかしレンタルフォームを見てないけど、たぶんできないだろう。
メリットもよく分からない・・・。
0612nobodyさん2005/08/24(水) 19:40:40ID:???
>>610
無理
自作汁
0613nobodyさん2005/08/24(水) 20:21:03ID:???
>>611
POST先変えたら、何をレンタルするんだか…
0614nobodyさん2005/08/24(水) 20:27:13ID:???
>>613
だって・・・、やりたいっていうから・・・(涙
0615nobodyさん2005/08/24(水) 21:20:30ID:YErBP/YJ
phpで作成されたメールフォームで、メールの内容データをcsvにて保存できるフリースクリプト
を探しています。

どなたかご存知の方いらっしゃいましたらぜひ教えてください〜!
0616nobodyさん2005/08/24(水) 21:23:47ID:???
>606
レンタルフォームを借りる顧客は、基本的に
システム部分を借りるために借りるんだよ。
電子署名関係の費用を浮かしたりできるしね。

PHP部分を自作するスキルがあるなら、
HTML部分も自作する方がはるかに簡単だよ。
0617nobodyさん2005/08/24(水) 22:23:55ID:???
>>571
垂直分散させることは無いと思うので、
「負荷分散」させるか「機能分散」させるかも設計段階でちゃんと考慮するようにします。
(ある意味それによって言語が決まってしまいそうですね)

ホント勉強になりました。ありがとうございました。
0618nobodyさん2005/08/24(水) 22:27:28ID:???
>>615
CSV保存って・・・メールフォームじゃ無いじゃん(w
掲示板スクリプトでも改造しなさい。
0619nobodyさん2005/08/24(水) 22:28:56ID:???
>>615
>>610
タイムリーだね
0620nobodyさん2005/08/24(水) 22:33:36ID:???
>>571
機能ごとの分散をどの程度行なうかによるけど、
もし本当にphpでやるとしたら、スクリプト分けて
Apache側でurl見て飛ばすようにする位しかないんじゃないかなぁ。
保守性も悪くなるし、かっこ悪いのは確かだね。
0621nobodyさん2005/08/24(水) 22:34:07ID:???
>>619
タイムリーとは?
CSVではなく、RDBでってこと?
0622nobodyさん2005/08/24(水) 23:09:45ID:???
>>621
>>610で晒された、>>606が不満たれてるシステムを使えば?
ってことでしょ。フリーじゃないけど。
0623nobodyさん2005/08/25(木) 00:55:18ID:Obq2ezYL
PHP5をFedora4のyumインストール環境で使ってるんだけどPEARの使用で躓いてます。
SMTP経由でメール送信するためのサンプルをくんでたんですが

<?
require_once("Mail.php");
require_once("Mail/mime.php");
$mime = new Mail_mime("\r\n");
?>
これでエラーが出ます。
きちんと読み込むMail.phpとmime.phpは存在しててきちんと通ってます。
$mime = new Mail_mime("\r\n");で明らかにエラーでてるんだけどこれってナニがいかんのですか?
引数省略も可能なはずだからしてみたけどそれでも駄目です。
「極めるPHP」のP131の引用なんですけど…
0624nobodyさん2005/08/25(木) 01:05:54ID:???
エラーメッセージを書け、ハゲ
0625nobodyさん2005/08/25(木) 01:18:07ID:Obq2ezYL
エラーって表示されないで真っ白っす。
php.iniの
error_reporting=E_ALL
display_errors=On
にはしてあります。
0626nobodyさん2005/08/25(木) 01:28:05ID:???
>>625
真っ白ではなく、どうなるのが望みなのだ?
0627nobodyさん2005/08/25(木) 01:31:39ID:Obq2ezYL
あー・・・実際には一番したにprin "成功";っていうのを入れているのでそれが表示されて成功なんですよね…。
PEARのDB系のプログラムは動いてるんですが。
ちょっとエラー表示もされない時点で明らかにおかしいんでもう少しみてみます、ごめんなさい。
0628nobodyさん2005/08/25(木) 01:35:45ID:???
>>627
がんばれ。
0629nobodyさん2005/08/25(木) 02:05:35ID:???
Mail_mimeした時にどこで落ちてるか調べるために new Mail_mime の中でやってる
処理の中の一行毎にerror_logなりなんなりでログはけばどこで落ちてるかわかるっしょ。
まずはそれからだ。
0630nobodyさん2005/08/25(木) 02:09:23ID:95Treuew
PHPとCGIはどこが違うんですか
0631nobodyさん2005/08/25(木) 02:20:23ID:???
PHPでもCGIできます
06326232005/08/25(木) 02:28:56ID:Obq2ezYL
先ほどはくだらない質問してしまい大変申し訳ないです…汗
言いにくいんですが原因は、実験鯖が2台あってAで実行してるつもりがBで実行しててAの設定を必死でいじくっているという情けないボンミスでした。
けれど次はもう少し価値ある(?)疑問が昨日からありまして、これのせいでPEAR自体を信じられなくなっていて上でつい軽率な質問をしてしまったのですが…。
その疑問というのが
<?
require_once("Net/POP3.php");
$pop3 =& new Net_POP3;
$res=$pop3->connect('サーバーホスト名');
if(!$res)die("connect err");
$res=$pop3->login('ユーザー名','パスワード');
if(!$res)die("login err");
$pop3->disconnect();
?>
という、pop3でメールを呼び出すサンプルの途中なんですが、このloginの部分でエラーが出てしまいます。
Notice: Undefined offset: 3 in /usr/share/pear/Net/POP3.php on line 298
これはもうPEARの内部のコードですので一応みてはみたんですがちょっとぱっと理解するのは苦しいです。
ちなみに環境はPHP5です。
これは一体なぜなんでしょう…。
0633nobodyさん2005/08/25(木) 02:56:14ID:???
>>632
とりあえず一行目に、
error_reporting(E_ALL ^ E_NOTICE);
いれて先に進み、PEAR の偉い人が来るのを待つ。
0634nobodyさん2005/08/25(木) 02:56:33ID:???
>>632
loginの引数3つ必要とかそういうのじゃないの??
とりあえずソース見ようよ・・
POP3.phpの298行目で配列の要素の3番目を参照しようとしてるけど
その配列には3つ目の要素無いです。ってエラーだと思うよ。
0635nobodyさん2005/08/25(木) 05:14:12ID:???
>>632
634のいうことがあたってる気がする。
普通、サーバーホスト、ユーザーIDとパスワだけじゃ
どんなDBにも入れんです。
んで、この場合足りない3つ目の引数は
DB名じゃないかと。
0636nobodyさん2005/08/25(木) 05:19:08ID:???
DBじゃないやろ。
0637nobodyさん2005/08/25(木) 05:52:58ID:???
ホント釣りじゃなくて聞きたいのですが、
hoge.php?hogeの場合は、hoge.phpとは別のページを表示させる
というのはどうやるのでしょうか?
もし宜しければ解説サイトも教えていただけると幸いです。
0638nobodyさん2005/08/25(木) 06:48:23ID:???
・header('Location: URI');を使う。
・hoge.php?hogeの時に、お目当てのファイルをrequire();する。もしくは、hoge.phpに埋め込む。
・<meta http-quiv="Refresh">を使う
・JavaScriptなで自動的に他のページにジャンプする等

パッと思いついただけでこれだけ。他にもまだあるかも。
解説は自分で探してくれ。
0639nobodyさん2005/08/25(木) 07:09:26ID:???
>>632-634
引数不足なら、Warning: Missing argument でるんじゃね。
function login($user, $pass, $apop = true)
だから、2引数でも動くし。
まぁとりあえず、
$res=$pop3->login('ユーザー名','パスワード', false);
にしておく。

ちゃんとソース読んでないけど、
なんか POP3 サーバが変な返値してる気がする。
だめなら試験している POP3 変えてみるよろし。

>>636
ナイスつっこみ。
0640nobodyさん2005/08/25(木) 08:35:58ID:NxH/rXi6
テキストファイルの先頭の行だけ抽出してその行だけ削除したいのですが、
どのようにやったら実現できるのでしょうか?

ご教授お願いします。
0641nobodyさん2005/08/25(木) 08:43:44ID:???
>>640
そのまんまのことやれば良いと思うけど。
どこでつまずいたんだい?
0642nobodyさん2005/08/25(木) 09:25:27ID:NxH/rXi6
>>641

$filename = "sample.txt";
$lines = file($filename);
$fp = fopen($filename, 'w');
for ($i = 1; $i < count($lines); $i++) {
 fputs($fp, $lines[$i]);
}
fclose($fp);

echo $lines[0];

このように書きましたが、もっとスマートに書けないかと思いまして。。
0643nobodyさん2005/08/25(木) 10:52:35ID:DuoTARf6
---sample.html---

<form action="sample.php" method="post">
<input type="text" name="word">
<input type="submit" value="送信">
</form>

---sample.php---

$word = $_POST['word'];
print "$word";

という、ごく普通の変数の受け渡しについてですが、
ほとんどの言葉(日本語)はきちんと受け渡しができるのですが、
いくつかの言葉が受け渡しできません。
たとえば、「道路」という言葉が受け渡しできませんでした。

encodingはhtmlもphpもEUC-JPでそろえてあります。
一部の言葉だけが受け渡しできないという原因は何でしょうか?
0644nobodyさん2005/08/25(木) 11:08:56ID:???
>>642

$filename = "sample.txt";
$lines = file($filename);
array_shift($lines);
$fp = fopen($filename, 'w');
fputs($fp, implode('', $lines));
fclose($fp);
0645nobodyさん2005/08/25(木) 11:22:13ID:???
>>643
参考になるかも。
http://ns1.php.gr.jp/pipermail/php-users/2003-August/017686.html
0646nobodyさん2005/08/25(木) 11:41:50ID:???
>>645様
解決しました━━━━━(゚∀゚)━━━━━ !!!!!
本当にどうもありがとうございました!! このご恩は忘れません。
0647nobodyさん2005/08/25(木) 12:29:26ID:???
>>644
ふむふむ。。
未だに理解できてない部分がありますが、今後の参考にさせて頂きたいと思います。
お忙しい中、本当にありがとうございました。
06486322005/08/25(木) 12:39:32ID:zPPHIyNW
もちろん第三引数も指定してやってはみてるんですけどだめなんですよね・・・。
そのあたりはありとあらゆる手段を試してみたんですが。
サーバーも2つ試したんですがだめだったので、プロバイダーの提供するメールアドレスのサーバーとか使ってみて実験してみます・・・
0649nobodyさん2005/08/25(木) 13:27:26ID:???
自分が利用している掲示板に2chと全く同じ10文字のトリップ機能を付加したいのですが、
関数が分からず途方に暮れています。どなたかご教示願います。
0650nobodyさん2005/08/25(木) 13:32:18ID:???
>>649
「トリップ ハッシュ」でググって適当に実装すればー
0651nobodyさん2005/08/25(木) 14:57:15ID:At275aLQ
スレッド形式の掲示板を作って
0652nobodyさん2005/08/25(木) 15:04:37ID:At275aLQ
途中送信してしまいました。すみません。

スレッド形式の掲示板を作っているのですが、テーブルを2つ作成し、
tbl_thread(スレ管理用)にthreadno,timestamp,title
tbl_message(レス管理用)にmessageno,threadno,timestamp,user,message
というフィールドを作成しています。
タイトル一覧の画面にて各スレッドのレス数を表示させたいのですが、
これはその都度tbl_messageをthreadno毎にグループ化してcount()してやる必要があるのでしょうか?
スレ・レスともに増えていったらその都度tbl_messageの全てについて処理すると重くなるかも?と思ったので
なんとかtbl_threadの方にレス数も格納したいのですが、
投稿時に投稿後のテーブルに対するレス数をtbl_threadに格納するという方法だと
同時刻に投稿があった場合(トランザクションが同時に実行された場合)に誤差が生じてしまいそうです。
まぁ同時に投稿がある可能性もさほど高くはないし、一度誰かが投稿すればまた正常な数値に戻るはずなので
問題ないといえばないのかもしれませんが・・・。
こういった場合、1.その都度tbl_messageで数える方法 2.誤差くらいあっても処理が軽そうな方法 のどちらを選ぶべきなのでしょうか?
よろしくお願いします。
0653nobodyさん2005/08/25(木) 15:12:40ID:???
PEAR::DB でDB接続アプリケーションを構築中です。

そこで一つ質問なんですが、PEAR::DB も pg_connect のように、
PHPが終了すれば自動でコネクションを閉じてくれるんでしょうか?

確か pg_close は持続的接続じゃなければ使う意味があまりないと聞きました。
であれば $db->disconnect も省略できるのかな…?

よろしくお願いします。
0654nobodyさん2005/08/25(木) 15:21:41ID:???
PEAR::DBもpg_connectしてるだけだよ。
ソース見てみたら?
06556532005/08/25(木) 15:31:03ID:???
>>654

pgsql.php を見たところ確かに pg_connect 呼び出してましたね…
てっきり独自の処理でコネクション張ってるものだと思ってました。

お騒がせしました。
回答ありがとうございました。
0656nobodyさん2005/08/25(木) 15:31:07ID:???
>>653
>確か pg_close は持続的接続じゃなければ使う意味があまりないと聞きました。
違う。持続的接続の場合に意味がない。
「意味があまりない」という下りは、通常の非持続的接続の場合には
PHPスクリプト終了時にDB_close相当の後処理が自動的に盛り込まれてるのと混同している。
0657nobodyさん2005/08/25(木) 18:04:59ID:???
>>652
トランザクションって意味が分かっていないのかな?
トランザクションというのは、複数の処理をひとつの単位として
管理するもの。

というわけで、トランザクション処理をしているのならクライアント
から同時にリクエストがあっても不整合がおきないように
トランザクションごとにデータベースがちゃんと処理する。

エスパーレスすると、652 はトランザクション対応じゃない MySQL を
使っているので、2の方法を使うなら、lock tables を使う。
PHP と関係ないので、これ以上は他のスレでどうぞ。
0658nobodyさん2005/08/25(木) 18:32:06ID:???
ttp://cgikon.com/search/detail.php3?cgi_id=17
↑こちらのphpスクリプトを落として実行してみたのですが、
結果がすべて空白になります

ttp://cgikon.com/sample/php3/form_view.php3
正しい結果例↑


自宅サーバーなので、エラーログを見てみると
52行目でエラーがでているようです

エラーログ
php notice: underfined variable: NAME属性 in /var/www/html/form_data.php on line 52, referer:http://〜/Form_php.html

php52行目周辺
48// 値の取得
49
50for($loop = 0;$loop < count($title);$loop++) {
51$key = $title[$loop];
52$val = ereg_replace("\x0D\x0A|\x0D|\x0A","",$$key);
53$result[] = $val;
54}
55$result[] = date("Y/m/d H:i:s",time());


サイトのFAQのところにはhtml側と保存する側(form_data.tsv)のNAME属性が一致していない場合とありましたが
完全にすべて一致しております。

どこかエラー可能性のある場所はありますでしょうか?
よろしくお願いします。
0659nobodyさん2005/08/25(木) 19:26:44ID:???
>>658
全部見る気はしないがようするにform_data.tsvで指定されているnameと受け取るnameが一致してないって事でしょ
0660nobodyさん2005/08/25(木) 19:34:01ID:???
>>658
52行目 $val = ereg_replace("\x0D\x0A|\x0D|\x0A","",$$key);
の「$$key」を $_GET[$key] か $_POST[$key] に変更すればいける。
0661nobodyさん2005/08/25(木) 19:52:12ID:???
いまだにphp3を使ってるのだろうか。
セキュリティーホール満載な上に処理が遅いのに。拡張子だけだったらいいんだけどヽ(´ー`)ノ
06626532005/08/25(木) 20:24:41ID:???
>>656

「意味があまりない」という表現が悪かったですね…すみません。

pconnect の時は pg_close では切断できなくて、
connect の時にだけ有効なのは知ってました。

ただ、PHPの処理が終了すると自動で切断されるので、
pg_close を使わなくても良い
という意味で、使う意味があまりないと表現しました。

ttp://php.s3.to/man/function.pg-close.html
ここにも通常は必要ないとありますしね。
0663nobodyさん2005/08/25(木) 20:33:33ID:???
>>643
確認してみたら俺とこもだ。
無料スペースでPHPの設定変えられないとしたらどうしたらいいのでしょう。

多少それなりに自分で考えてみました。
どうやら他の文字も一緒に送ればいいみたい。
こんなんでいいかな。
0664nobodyさん2005/08/25(木) 20:35:39ID:???
えぇ・・・と。
0665nobodyさん2005/08/25(木) 21:38:59ID:???
addslashesについて質問です。
magic_quotes_gpc=onに設定してある状態で、
テキストボックスから"hoge"のような文字を入力し、GET/POSTで渡した先で何も処理せずに表示させると
「\"hoge\"」と表示されますが、
そのままMySQLに登録すると、MySQLのクライアントから直接見ると"hoge"となっており、
エスケープされていません。
MySQLにはstripslashesのような機能があるのでしょうか?
06666652005/08/25(木) 21:43:01ID:???
あ、MySQLにクエリーを発行するときに、\"hoge\"という文字列は
"hoge"に直されてから登録されるってことか。
ということは、掲示板で入力→確認→登録→閲覧という流れでデータを処理する場合は、
「確認」「登録」の時だけaddslashesされた状態となっているから、
「確認」の画面でhtmlに表示する場合はstripslashesを実行しなきゃいけないのか。

という理解であってますでしょうか?
0667nobodyさん2005/08/25(木) 21:58:08ID:???
>>666
たぶんいいんじゃないの。初心者なので良く知りませんが。

エスケープって、"で囲まれた文字列の中に"を入れたいときなどに使うものだから、
SQLを書くときに\"、\\、\'を使い、
DBに登録されるのは"、\、'となる。
0668nobodyさん2005/08/25(木) 22:16:52ID:???
>>648
みてる?
http://pear.php.net/bugs/bug.php?id=4243
0669nobodyさん2005/08/25(木) 22:21:49ID:???
>>668
既にMLに質問場所を移動した模様
0670nobodyさん2005/08/25(木) 22:42:57ID:???
一定時間毎に板をチェックして、特定のコテハンがレスする、あるいはスレッドを
新規に立てたら即応して定型文レスを返す、っていうプログラムを作ろうと思って
いるんだけどPHPでいいとおもう?
String関係に強いから気に入っているんだよね。
0671nobodyさん2005/08/25(木) 22:50:37ID:???
スクリプト氏ね
0672nobodyさん2005/08/25(木) 22:54:04ID:???
>>665-666
ヒント:addslashesでエスケープされる文字 !== MySQLでエスケープする必要のある文字

"POSTを受けるたび"にget_magic_quotes_gpc()でmagic_quotes_gpcを見て、onならstripslashesをかけて
SQL叩く前に、mysql_espace_string()でMySQL用にエスケープして、INSERT。
表示する際は何も触らない。(必要に応じてhtmlspecialchars()やmb_convert_encoding()等)

なんか、>>665-666を見てると、たまたま動いてるだけで、何かしら不具合抱えてる気が。
06736582005/08/25(木) 23:07:05ID:???
>>659
NAME属性のほうは一致していましたorz

>>660
htmlの方でPOSTにしていたので、$_POST[$key]にしたところ
いけました。
本当にありがとうございます!

>>661
リンク間違ってましたw
実際はphp4の方を使っています

ありがとうございました
0674nobodyさん2005/08/25(木) 23:08:27ID:???
>>671
別に荒らし目的じゃないよ
0675nobodyさん2005/08/25(木) 23:34:30ID:???
じゃ迷惑行為だな
0676nobodyさん2005/08/25(木) 23:40:54ID:qTYcS0PZ
くだ質なのですか、ftruncate()関数の、ファイルを丸める処理って
何の為に必要なのでしょうか?
06776652005/08/25(木) 23:48:29ID:???
>>667,672
レスありがとうございます。とりあえず動作には問題なさそうです。

MySQLのエスケープシーケンスを確認したところ、' " \ NULL に関しては共通のようです。
(addslashesでエスケープされるので問題ないはず。)
% _ に関してはmysql_escape_stringでもエスケープしないということで、エスケープする必要はないということかな?
(DBに%,_を含んだ文字列を登録してみましたが問題ありませんでした。)
\b \t \z ついては利用する予定がないのでとりあえず無視しておくことにします。

改行がよくわからないのですが、複数行のテキストをDBに登録した場合に改行はどのように処理されているのでしょうか?
複数行あるテキストの改行をhtmlで表示するときに改行を反映させるべく「\r」や「\n」を<BR>に置き換えるといった処理をしているのですが、
DBにおいて改行は「\r」「\n」といった文字で登録されているのでしょうか?
(テキストボックスに「hoge\n」といった文字列を入力して登録してもちゃんと「hoge\n」と登録されるんだよなぁ・・・。)
(PHPでMySQLから呼び込み時に改行が「\r」「\n」といった文字に変わってるのかな?)

改行がどう処理されているかどなたかご存知でしょうか?よろしくお願いします。
0678nobodyさん2005/08/25(木) 23:55:43ID:???
>>676
俺が使うケースだが、

$f = fopen($filename, "w");

と

$f = fopen($filename, "a");
ftruncate($f, 0);

は等しいわけね。
で、何が違うのかというと、
ファイルをロックしたい時。

前者はロックする前にサイズが0になってしまうが、
後者ならfopen()の直後にflock()を入れれば問題ない。

この場合はrewind()でも似たようなことができるが、
ftruncate()の方が厳密に思うのでこれを使っている。
0679nobodyさん2005/08/26(金) 00:04:41ID:???
>>675
迷惑行為でもない
どちらかというと秩序を守るためのやむを得ない行為というべきか。
06806762005/08/26(金) 00:23:23ID:???
>>678
なるほど。より安全にって事ですね。
シビアなプログラムでは、要求される仕様って事ですね。


0681nobodyさん2005/08/26(金) 00:32:13ID:???
>>678
こら、嘘教えるな。
rewind()はサイズは変えない。
0682nobodyさん2005/08/26(金) 00:56:28ID:???
普通にrewindを使っている訳だが
■ このスレッドは過去ログ倉庫に格納されています