トップページ⇒php
853コメント275KB

【PHP】初心者コーナー 3 Released【スローモード】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/06/11 06:24ID:???
PHPに関するアホな質問はここで、マターリやろな。
ファイル MySQL PostgreSQL 正規表現でも なんでもいってみ
でもな、アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。

前スレ http://pc2.2ch.net/test/read.cgi/php/1048442813/l50

■PHPの普通の質問はあっちな、【PHP】質問スレッド Part8
 http://pc2.2ch.net/test/read.cgi/php/1050249148/l50
■PHPへ移行したいPerl信者はあっちな、【待望】PerlユーザのためのPHP入門
 http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■マニュアル嫁ってうるさいのがいるからちょっとは嫁な、
 http://www.php.net/manual/ja/
■おまえ初心者なら入門本くらいかっとけな、PHP関連の書籍(但しPHP出版系お断り)
 http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■これはなズープスと読むらしいがあっちな、XOOPS
 http://pc2.2ch.net/test/read.cgi/php/1031736248/l50

でもな、ここで書きたかったらここで書き。 あとは関連な、>>2 
035232303/07/06 20:28ID:kEFDIfkp
>>351
レスありがとうございます。
print "<input type=\"hidden\" name=\"ip\" value=$ip>\n";
print "<input type=\"hidden\" name=\"ua\" value=$ua>\n";
のような形でフォームから普通に配列に入れてテーブルに追加しているつもりだったのですが
DWMXを使ってしまったのでよく解らなくなりました。下記のあたりはどうすればよいのでしょうか。
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
0353あぼーんNGNG
あぼーん
0354nobodyさん03/07/06 23:11ID:???
>>352

横レス 失礼

もしかして パワープラント 使ってました?
いや theXXX か゜懐かしかったもので。
0355名無し03/07/07 16:56ID:+XnYDKVb
>>334 失礼いたしました(´∀`ι
ようやく解決しました。「or」に直し、if文をなくすとOKでした。
ありがとうございました。
PS.>>337 @fopen=>の@は、エラー抑止させるという機能です。
0356あぼーんNGNG
あぼーん
0357nobodyさん03/07/07 18:33ID:???
flock関数が環境依存なので、ディレクトリ操作でロックしようかと思うのですが、
調べたところあんまり評判がよくないような気がします。

他にクールなファイルロックの手段ってありますか?
0358nobodyさん03/07/07 18:37ID:???
ちなみにこのスレを参考にしました。
【Perl】ファイルロック(排他処理)について語ろう
http://pc2.2ch.net/test/read.cgi/php/1024795138/
0359nobodyさん03/07/07 21:58ID:???
Apache/PHP さわり初めて3日。
Windows2000Professional sp3
Apache2.0.46
PHP 4.3.2
Firebird 1.5RC3
でPHPソース EUC-JP
データベース EUCJ_0208
magic_quotes_gpc off
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
;mbstring.script_encoding = SJIS
でquery結果を Print するとデータベースから取り出した
漢字の 井(0x88,0xE4) が 遺・(0x88,0xE2,0xE1) に
なるんだが、どこがまずいのかさっぱりわからん…
へるぷみー
0360nobodyさん03/07/08 02:21ID:???
全部;閉じて試してみ。
036135903/07/08 09:14ID:???
う〜ん、設定全部閉じてもかわらんです。
どうもデータベースの取り出し結果が必ず SJIS になってるような…。
ソース  DB   
EUCJ   EUCJ  文字化け
EUCJ   SJIS   文字化け
SJIS   SJIS   ○
SJIS    EUCJ   ○
出力設定の変更では何も変化なし。
0362nobodyさん03/07/08 12:11ID:jypS6q60
copy関数でファイルのアップロードをしているのですが、
msi形式のファイルをアップロードするとコピーされません。
他の形式のファイルでは問題なくアップロードできるのですが、
何か問題があるのでしょうか?
0363nobodyさん03/07/08 12:58ID:???
拡張子や 実際のファイルの中身で copyの挙動は変わらないと思うから、
他の原因を探ってみては?

・ファイルサイズ
・自分でmsiを拒否ってた。
・ブラウザで存在確認しただけだった。
・そもそもmsiの中の人など居なかった等々
0364nobodyさん03/07/08 13:18ID:jypS6q60
>>363
いや、拡張子でなくバイナリ的にmsiが何か拒否られてるみたいなんです。
ためしにpdfファイルを拡張子msiに変えて試したら正常にコピーされました。
逆にmsiファイルをpdfに変えてもダメ。他のmsiファイルで試してもダメ。

LAN内の端末なので実際にファイルがコピーされてないことも確認してます。
0365nobodyさん03/07/08 13:30ID:syho/6wx
窓を開けばのランキングのリンクってどうやって張るの?
036632303/07/08 14:24ID:???
なんとなく解決しました。
フォームから入力するのをやめたらできました。
0367nobodyさん03/07/08 19:13ID:???
今、携帯対応版の掲示板をと考えています。
そこで、PHP4.3.2にGD2.0.15のGIFサポート版を
リンクしてコンパイルしようとするのですが、PHPのmakeで
エラーがでてしまいます。どなたか、実践された方居られませんか?

GDの ./configure
./configure \
--with-png=/usr/local --with-freetype=/usr/local --with-jpeg=/usr/local --with-xpm=/usr/X11R6

PHPの ./configure
./configure \
--enable-zend-multibyte --enable-mbstring --enable-zend-multibyte --enable-calendar --with-imap=/usr/local/lib \
--with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs --enable-exif \
--with-gd=/usr/local --with-zlib-dir=/usr/local/include \
--with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --with-xpm-dir=/usr/X11R6 --with-zlib-dir=/usr/local

そのままでは make中
ext/gd/gd.c に undefined reference なエラーが発生するので
展開したGDの gd.* gd_gd.* gd_io.*を ext/gd/ にコピーしてmakeすると
main/internal_functions_cli.c に undefined reference to `gd_module_entry'
なエラーがでてしまいます。どうやら ext/gd/php_gd.h の
extern zend_module_entry gd_module_entry; あたりかなとは思うのですが、
ここで力尽きてしまいました。どなたかご存知の方居られましたら
ご教授ください。なおOSはFreeBSD4.3です。

長文失礼しました。

GIFサポートはこれで、どうやらLZW系のライセンスはクリアしているらしいのですが
ttp://www.rime.com.au/gd/
0368nobodyさん03/07/10 09:27ID:???
GIFライセンスって切れたんじゃなかったの?
0369nobodyさん03/07/10 11:44ID:???
>>368
切れたには切れた。米UNISYSだけね。
日UNISYSでは、来年の6月19日まで。
0370nobodyさん03/07/11 01:11ID:jNV68Tt5
d
0371あぼーんNGNG
あぼーん
0372nobodyさん03/07/11 01:37ID:jNV68Tt5
shift-jisでかいちゃダメなんですか?
eucで書くと何も表示されません。
エンコード変えて表示させてもF5すると、またエンコード切り替わって、
何も表示されなくなってしまいます。

超初心者です。教えてください。
0373あぼーんNGNG
あぼーん
0374nobodyさん03/07/11 04:52ID:???
>>372
PHPマヌアルには「SJISでは書かない方がいい」みたいな事が書いてある。
それから、文字化けについては吐き出したHTMLのソースを見れ。
037537203/07/11 08:16ID:???
>>374
僕が持ってる本にはSJISで書いてあるんですよ。
SJISだとちゃんと表示されます。
0376nobodyさん03/07/11 09:57ID:???
HTTPヘッダーやらPHP内で使用してるcodingやらHTMLのMETAでの指定やらサーバにUpする際のエンコード指定やら
考えるべきは沢山あるな。

で、本にはSJISで書いてあるってどういうこと?
つーか書名キボンヌ。
037737203/07/12 03:12ID:???
すいません。よく見たら、EUCで書いてありました。
付いているCD-ROMがSJISとEUCに分かれていて、
僕がSJISを参照しているだけでした。

一応、本の名前は「そのまま使えるPHPサンプル100選」 技術評論社
です。

申し訳ないついでにもう一つ質問なんですけど、PHPは半角スペース
は意味がないんですか?サーバー系のはあるだなんだ〜ってこと
聞いたことがあるんですけど。あー馬鹿っぽい質問だな〜
0378nobodyさん03/07/12 03:40ID:???
"mona" . "giko" -> "monagiko" のように文字連結する時や、
$mona = "";
$hanyan = "";
の「=」の位置を揃えたいとかなら 半角スペースの個数は関係ないよ。

p r i nt みたいに、PHP本体の解釈を妨げるような半角スペースの挿入は有害。

PHPが出力したHTMLの半角の話ならWeb制作板にカエレ!!
037937203/07/12 05:57ID:???
ありがとう。

ここにいさせてください。
0380nobodyさん03/07/12 07:34ID:???
初歩的な質問かもしれませんが、
ttp://www....../hoge.php?hoge=1
などするのはかっこ悪いので、
ttp://www....../hoge.php?hoge
というURLで処理を行いたいのですが可能でしょうか。
実際には、この=の先には特に意味は持たしません。

ページが長いので、?hogeの部分で判断できれば、
そのリストだけ表示するようにしようと思っています。
よろしくお願いします。
038136803/07/12 07:38ID:???
>>369
thanx
そっか来年か・・・またイロイロ復活するんだろうなぁ。
0382nobodyさん03/07/12 09:10ID:tmgiXdLP
>>380
$_SERVER["QUERY_STRING"]
と
$_SERVER["argv[0]"]
にhogeが入る。
argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな
0383nobodyさん03/07/12 09:13ID:???
>argvは一般にコマンドライン用だからWebで使うならQUERY_STRINGの方かな

argv:コマンドライン引数
QUERY_STRING:環境変数

そもそも使い道が全然違うと思われ。
0384nobodyさん03/07/12 12:49ID:qK/j+nNB
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字b熾ヤって来ない緒ヤを期待してb澆R
の個瑞舶ェだけゴミが封ヤってきます。bQch型スクなbナ専用ブラウャUでエ
ラ=[になります。ャeキストに記録bキる改行コードbr\nにしてもャ_メでし
bス。何かよい対緒�@はないでしb蛯、か。お願いbオます
0385nobodyさん03/07/12 12:53ID:???
>>384
PHPの前に読点について学んでくれ。
0386nobodyさん03/07/12 14:35ID:???
ブラウザがCookieをOnかOffにしているかを
知りたいんですがどういった命令がありますでしょうか?
0387nobodyさん03/07/12 15:20ID:???
1ページ目でcookieをあげる。2ページ目であげたcookieかどうかチェックする。
どの言語でも定型のやりかただと思うよ。
038838003/07/12 20:21ID:???
>>382-383
ありがとう。
0389nobodyさん03/07/12 23:50ID:???
Windows版では、fopen()のパラメータで
バイナリー指定(rbとかwbとか、そんな感じ)
があるので、それ付けてバイナリーとして
扱って見れ

あと詳しく書くのはよろしいが、折れみたいに
PDAで読み書きしてる椰子もおるんで、
適当に文切ってな
0390nobodyさん03/07/13 09:07ID:???
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
Wwindows98+Apache1.3.27環境は改行コードがCRLFですが差分取得
をする際に意図する結果が得れません。PHPで\nにしていてもテキス
トに記録するとCRが追加されているみたいで
Range: Bytes=**-
で既得分のバイト数を渡して1文字も返って来ない状態を期待してもCR
の個数分だけゴミが返ってきます。2ch型スクなんで専用ブラウザでエ
ラーになります。テキストに記録する改行コードを\r\nにしてもダメでし
た。何かよい対処法はないでしょうか。お願いします
0391nobodyさん03/07/13 18:53ID:8ZbS77HL
本当に初歩的な質問で申し訳ないのですが
以下のような index.html と test.php があって
index.htmlのリンクをクリックしても何も表示されないのですが
何か宣言が足りないのでしょうか?

[index.html]
<html>
<body>
<a href="./test.php?mode=home">home</a>
</body>
</html>

[test.php]
<?php
print("$mode");
?>
0392nobodyさん03/07/13 19:09ID:???
>>391
参考にした資料が古いと思われ。
print($_GET['mode']);
でいけますよ。

ここの「警告」を読まれることをおすすめする。
http://jp.php.net/manual/ja/language.variables.predefined.php

あとprintは括弧がいらなかったりechoでも同じだったりするけど
そこら辺は好きなように書いてよかです。
039339103/07/13 19:15ID:???
>>392
ありがとうございました。
まさかバージョン違いだったとは・・・
0394あぼーんNGNG
あぼーん
0395nobodyさん03/07/13 22:32ID:???
install.txtどおりにやったのですが、インストールでいきなりこけてます。
解決のヒントをよろしくお願いします。

OS:
WindowsXPPro(sp1a)

Webサーバ:
Apache1.3.27(Windows版)
インストール先C:\Program Files\Apache Group\Apache

PHP(zip):
PHP 4.3.2(Windows版)
インストール先C:\Program Files\php

症状:
phpファイルを実行しようとすると、ダウンロードダイアログが表示されて、プログラムを実行できない。

関係ありそうなこと:
(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。
(2)php.ini-distをphp.iniにリネームし、C:\WINDOWSにいれた。
php.iniのなかで、doc_rootをC:\Program Files\Apache Group\Apache\htdocsに設定。
(3)httpd.confには、
LoadModule php4_module "c:/Program Files/php/sapi/php4apache.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
を追加しています。
0396nobodyさん03/07/13 23:26ID:???
>>395
php4ts.dllはpathの通ってるところに放り込むこと。
つか、install.txtちゃんと読んでるようなんで、
そこにはNT系の場合のやり方が書いてあったでそ
デフォでWindowsインストールしてるのなら、
c:\windows\system32ディレクトリ

0397404.HDML ◆StMXML.EXE 03/07/13 23:28ID:???
>>395
>(1)php4ts.dllはphp4apache.dllと同じフォルダ(C:\Program Files\php\sapi)にいれた。

"php4ts.dll"は、"C:/WINDOWS/system32"フォルダ内に収めて下さい。
後、Apache1なら"AddModule"宣言を忘れていませんか?
039837203/07/14 04:19ID:???
>>397
"AddModule"宣言ってなんですか?
0399nobodyさん03/07/14 04:24ID:???
>>398
ネタなのか釣りなのか騙りなのか分からないけど、
このあたりをブックマックしておいて悩んだ時や暇な時に見ておくとよい。
http://japache.infoscience.co.jp/
040039503/07/14 10:43ID:???
お返事ありがとうございます。・・・いまだにハローワールドできません。(苦笑)
>>396
install.txtによると、
So where does php4ts.dll has to be to be properly loaded ?
php4ts.dll is searched in the following order:

1) in the directory where apache.exe is start from
2) in the directory where php4apache.dll is loaded from
3) in your %SYSTEMROOT%\System32, %SYSTEMROOT%\system and
%SYSTEMROOT% directory.
Note: %SYSTEMROOT%\System32 only applies to Windows NT/2000/XP)
4) in your whole %PATH%

で上の設定は2)にしたつもりです。ちなみにc:\WINDOWS\system32にphp4ts.dllをいれても同じ症状でした。
というより、2)の設定で、php4ts.dllの名前をphp4ts.dll.oldなどに変えると、php4apache.dllが読み込めない
とのエラーがでたので、php4ts.dllの読み込みはできていたのではないでしょうか?

>>397
httpd.confにAddModule宣言
AddModule mod_php4.c
を入れると、
[warn] module mod_php4.c is already added,skipping
とでたのでAddModule宣言はコメントアウトしています。
0401nobodyさん03/07/14 10:43ID:???
今までずっと疑問だったんですけど
何故PHPのマニュアルって色んなサイトで掲載されているの?
Googleで検索すると同じ(内容)マニュアルばっかり引っかかって悲しい。
0402nobodyさん03/07/14 12:43ID:???
>>401
そうやってヒットさせて自サイトのアクセスを増やすため。
しかし掲載しているマニュアルが古いと頃したくなる
0403404.HDML ◆StMXML.EXE 03/07/14 13:48ID:???
>>400
ぅぃ。試しにアナタとほぼ同環境であろうWindowsXP Pro SP1使って
Apache/1.3.27とPHP/4.3.2をインスコしてみたんだが、、

何の問題無くphpinfo()内容が表示出来たぞ?
php.iniに関しては、php.ini-distをリネームしただけで内容の編集すら
していない。一体、どうなってやがる?

ちなみに、俺が設置したパスは以下の通り。

Apache/1.3.27(msi Package) → C:/
# Cドライブ直下

ActivePerl/5.8.0(msi Package) → C:/usr
# これは必要無いけど

PHP/4.3.2(ZIP Package) → C:/usr/local
# Linuxっぽく(Linuxなら、"/usr/local/lib"だけど)

php.ini → C:/WINDOWS
php4ts.dll → C:/WINDOWS/system32

原則的に、>>397で書いた事以外はしていましぇん。
0404nobodyさん03/07/14 15:00ID:???
PHPでテキストカウンタを作ってHTML内に
<?include(counter.php);?>
で挿入しましたが数字がでません。index.htmlをindex.phpに
書き換えたところ、数字がちゃんと表示されました。
これはなぜなんですか?

検索エンジンに登録することを考えるとindex.htmlをindex.phpに
書きかえると面倒なのであまりそうしたくありません。
0405nobodyさん03/07/14 15:52ID:???
VineLinux2.6でphp4.3.2使ってるんですが、
使いたいオプションが初回インストールで入れていなかったので
後から追加しよう、と思いやっているのですがphpinfo()のほうが全く変化なしっ! 実際にインスコもされていない模様。
./configure clean して、その後下記の./configureしてもアカン。

こういうもんなんでしょうか?
オプションの後入れは無理ですか?(´・ω・`)

参考(下の行が追加したオプション
./configure --with-apxs=/usr/sbin/apxs --enable-mbstring --enable-mbregex
--with-gd --with-jpeg-dir=/usr/lib/ --with-zlib-dir=/usr/lib

>>404
あなたの使っているWebサーバで *.html はphpが動かない仕様になってるからですよ〜
confや.htaccessいじれば*.htmlでphp動かせますよ。
0406nobodyさん03/07/14 16:53ID:???
>>405
make installした?
Apacheのrestartは?
040740503/07/14 17:15ID:???
>>406
レスありがとうっす。
ええ、もちろん make intall や restart 、これでもダメだったのでOS再起動までしてました。

で、たった今解決してしまいますた。
$ make clean
makeにcleanなんて存在するのを初めて知りました。。(恥
make cleanしたあとはなんてことなく、上手くいきました・・・
040839503/07/14 20:12ID:???
>>403
うお。わざわざインスコしてくれたんですか?
どうもすみません。

とりあえず、あとで原因追求するためにhttpd.confとphp.iniのバックアップをとった後、
インストールディレクトリを変えて、>>397の要領でPHPとApacheの再インストールしてみます。
ついでにApache2でも試してみます。

Apache+PHP+PostgreSQLで幸せになれると思ったんですが、あふぉには険しい道のりらしい。
ウィンドウズにこだわらんと素直にPC-UNIXしたほうがいいんかな。

お騒がせしました。
0409よん ◆StMXML.EXE 03/07/14 22:37ID:???
>>408
つーか何故、WindowsにApache入れてPHP入れる事位に失敗してるのかよく理解
出来ないのだけれども。フォルダに必要ファイルを放り込むだけじゃないの。
httpd.confだって、数箇所書き加えるだけなんだし。

httpd.conf(前略)

#LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll

(中略)

#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c

(中略)

AddType application/x-tar .tgz
AddType image/x-icon .ico
AddType application/x-httpd-php php phtml
AddType application/x-httpd-php-source phps

(後略)
0410nobodyさん03/07/15 00:16ID:???
>>confや.htaccessいじれば*.htmlでphp動かせますよ。

どうすれば良いのか教えていただけませんか。
参考になるページとかでも良いんでお願いします。

0411nobodyさん03/07/15 02:13ID:???
>>408
またApacheの口が変わった関係があるのかと思ったけど、
Apache/1.3.27 ○PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
Apache/2.0.47 ×PHP4.2.3、○PHP4.3.2、○PHP4.3.3RC1
#PHP4.2.3が×なのは正常。

条件
・WindowsXP Pro SP1
・php4ts.dllはそれぞれのバージョン同梱のものを、それぞれのsapiディレクトリに
・php.iniは読み込ませない。
・httpd.confはapacheインストール直後のものに以下の2行を加えたのみ
 AddType application/x-httpd-php .php .phtml
 LoadModule php4_module "c:/usr/php4/sapi/php4apache.dll"
上記を、CGIやshtmlのAddHandlerの下あたりに追記。
#実際にはphpのバージョンごとにphp423とかphp432に変えたり、
#Apache2はphp4apache2.dllを指定してます。

AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
となってるのなら、指定しないでOK。

apacheのインストールディレクトリ化のhtdocsに<? phpinfo(); ?>のスクリプトを
放り込んで、動作するか、正しい値が取れるかで確認。

ところで、httpd.confでは"C:/Program Files/Apache Group"のように
括ればスペース付きのディレクトリもOKだが、php.iniもそうだっけ?
(ディレクティブにもよるかも) あと\と/が必ずしも同義にならない
ディレクティブもあったような気がする。
0412404.HDML ◆StMXML.EXE 03/07/15 02:16ID:???
>>405
どこぞのサイトで「一度インスコしたPHPを再設定する為に再インスコする場
合、元有るファイル群を根刮ぎ消しとかないと設定が反映されてない」みたい
な内容のメモを見た事が有る気がするけど。。実際はドウナンダロウ。

って、解決済だったのか。。(・∀・∀・)

>>410
具体的には以下の一文を".htaccess"に書き加えたりします。
以下では、".php",".phtml","html"の拡張子でPHPを動作させます。

AddType application/x-httpd-php php phtml html

但し、アナタが利用しているウェブサーバで".htaccess"による設定変更を
許可していれば、の話でっせ。
0413404.HDML ◆StMXML.EXE 03/07/15 02:25ID:???
>>411
>AddModule mod_php4.cは指定しないが、同じバージョンの付属のhttpd.confでも
>公開時期の違いで記述に差(ClearModuleListの位置だったか、有無だったかな)があって
>指定しないと駄目な場合もあった。[warn] module mod_php4.c is already added,skipping
>となってるのなら、指定しないでOK。

これは知らなかった。公開時期の違いって具体的には、いつといつの違い?
俺が試したのは、昨日そのうちにダウソしたもの(Apache/1.3.27)なんだけど。
0414nobodyさん03/07/15 03:26ID:???
>>412
がんばって勉強してみます。

読み方はエイチティーアクセスと読むんでしょうか。
0415nobodyさん03/07/15 03:29ID:???
続けてすみません。
.htaccessはセキュリティ上置かない、と言うサーバがありましたが
セキュリティ弱いんですね。
0416404.HDML ◆StMXML.EXE 03/07/15 06:23ID:???
>>414-415
>読み方はエイチティーアクセスと読むんでしょうか。

その通り。

>.htaccessはセキュリティ上置かない、と言うサーバがありましたが
>セキュリティ弱いんですね。

そりゃユーザ任意で好き勝手な設定されたらサーバ管理しづらいからね。
但し、ウェブサーバ管理者の設定によって".htaccess"で変更できる内容を
細かく制限できるので、一概に「セキュリティが云々」というのも、只の
怠け文句の様にしか聞こえんわな。

ああ、そうそう。".htaccess"は、"Apache(アパッチ)"というウェブサーバにて利用できる、
ディレクトリ毎の設定ファイルの事です。
ウェブサーバとしてApacheを採用していない所では使えませんよ。
0417山崎 渉03/07/15 11:06ID:???

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0418nobodyさん03/07/15 11:10ID:1Nim6t2Z
掲示板を作成しています。htmlspecialcharsでhtmlを無効にしているのですが、
一部のタグを使用できるように独自タグを実装し、
[code][/code]を<pre></pre>タグに置き換えています。改行は<br>に置き換えしています。

問題は<pre>タグ内の改行文字も<br>に置き換えているので、見た目上は問題ないのですが、
コピペすると、改行のない1行としてペーストされてしまうのです。
<pre>タグ内の改行が\nならきちんと改行されてコピーできるのを確認しました。

[code]〜[/code]で囲まれた文字内の改行文字だけを"~"などの
特殊な(使わなそうな)文字に置き換える方法はないでしょうか?
表示時に"~"を\nに置き換えたいと思っています。
情報不足でしたら、ご指摘ください。

windows2k apache 1.3.27 php4.2.3の環境で作業しています。
よろしくお願いします。
0419nobodyさん03/07/15 11:12ID:DBSRX3iv
ローカルでPHPをテストしたいんですが
Apacheをインストールしないとだめですか?
0420nobodyさん03/07/15 11:31ID:???
age
0421nobodyさん03/07/15 12:33ID:VrVVC0RB

function error($msg){
echo $msg;
exit;
}

を入れると

Fatal error: Cannot redeclare error() になる…

因みに別の設定ファイルにおいて require してます
0422nobodyさん03/07/15 12:36ID:dUuUFsTq
メールフォームを作ってそこからメールが送られてくるとリナックスサーバに
メール内容を残したいのですがどうすればいいんでしょうか・・・助けてください。
0423nobodyさん03/07/15 12:52ID:???
誰か>>422の文章の訳を助けてください
0424nobodyさん03/07/15 12:57ID:???
メールフォームからリナックスサーバへメールを送信するんじゃねーの?
で、クライアントがサーバのメールを読んで削除してしまうのを
残したいってことか?
0425nobodyさん03/07/15 14:13ID:VrVVC0RB
>>421
requireでなくしたら治った…なんだったんだ
0426nobodyさん03/07/15 14:23ID:dUuUFsTq
>424
だいたいそんな感じなのですが
htmlでメールフォームを作り、送信を押すとリナックスサーバにメールを
送るということなのですが、やり方がわからなくて・・・
メールアドレスに送るのは簡単にできましたが・・・。
よろしくお願いします。
0427nobodyさん03/07/15 14:30ID:???
自動生成したテキストファイルをある操作でパーミッションを変えて
追記できないようにしました。ですが次回そのファイルにアクセスしよ
うとした時にパーミッションを変えた情報はどこにも残していないので
書き込みモードで開くとpermission deniedのエラーになります。

if(!($fp = fopen(***,**))){ error_trap()}
してもエラー処理は続行されますがエラー文は返ってきます。
これを回避するにはどうすればよいでしょうか?
パーッション情報を得て回避させるか完璧なエラー回避の構文に
するかだとは思うんですが具体的な知識がないので困ってます。
ググっても良い解決策は見当たりませんでした。
よろしくお願いします
042842703/07/15 14:43ID:???
ちなみにデバッグの度にphp.iniを書きかえるのは避けたいです
0429nobodyさん03/07/15 15:12ID:???
>>427
書き込む前にパーミッションを変更したらええやん。
0430nobodyさん03/07/15 15:43ID:???
>>427
is_writable("file")で書き込み可能か調べればいい
043142703/07/15 17:21ID:ptJK4UDQ
>>430
おお!そんな手もあるんですね。ありがとうございます。
応急処置でstat(filename)でやってみましたがそちらに切り替えて
みます
0432nobodyさん03/07/15 17:51ID:???
インストールできません

Windows 2000
php 5.0.1b1-win32.zip
apache 2.0.47

手順どおりphpのファイルを展開。
apache起動時にcannnot load c:/php/sapi/php4apache2.dllが
ロードできませんとのエラーメッセージ。
ファイルはあるけど、ロードできないです。
043342703/07/15 17:54ID:ptJK4UDQ
>>430
成功です。ありがとうございました
0434nobodyさん03/07/15 17:56ID:???
>>432
PHP5を入れたいのにphp4apache2.dllを組み込もうとしてるの?
もしPHP4の間違いならすでに動かしている方のhttp.confの一部を
見せてもらうとか
0435nobodyさん03/07/15 17:58ID:???
>>422
>>426
何がやりたいのか?
そもそもメールフォームからのメールの送信は出来ているのか?
そのメールをサーバに置いて何かしたいという事なのか?
0436nobodyさん03/07/15 18:02ID:???
>>434
Download sectionで一番上にあったから5をとったけど
4のがいいのか。

変えてみます。
043739503/07/15 18:19ID:???
原因がわかりました。

httpd.confの
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll
をいれる位置が問題だったみたいです。
最初は176行目あたりに

# Example:
# LoadModule foo_module modules/mod_foo.so
LoadModule php4_module C:/usr/local/php/sapi/php4apache.dll

としていたのですが、>>411を参考にして、CGIやshtmlのAddHandlerの下あたり848行目に追記したところ
うまくいきました。なんか納得いきませんが。

ちなみに、Apache2ではこのような問題は発生せずすんなりでした。謎。
0438nobodyさん03/07/15 19:04ID:???
>>434
バージョンsageたら上手く逝った。
産休
0439nobodyさん03/07/15 19:19ID:???
PHP5は大規模商用サイトに向いているかもしれんが構造化に関する
部分以外はまだ何が変わったか調べる手間がもったいないと思う。
PHP4.3をいじくり回してみてある程度飲み込めてからでいいんじゃない
すか?
0440nobodyさん03/07/15 19:21ID:ptJK4UDQ
PHPコンパイラがホスイ
0441nobodyさん03/07/15 23:07ID:???
$line =~ s/^(..)(...)//;
正規表現してください,お願いします。
0442nobodyさん03/07/16 00:27ID:???
また見にきたらスレ違いでした。
すみませんです・・・
0443nobodyさん03/07/16 00:40ID:4pRAgQGC
少し板違いかもしれませんが、ここぐらいしか思い当たらなかったので・・

あるデータベース(何故か不明)のテーブルを書き出したtxtファイルがあり、
それをPosrgres+PHPのシステムに移してほしいと頼まれました。
(手元にはそのtxtファイルしかなく、元のデータベースは既に無いらしい・・)
が、あるフィールドがtextareaだったらしく、途中で改行が入っているのです。
id   name   abc(textarea)   tel
1  あああ  あああああ  11111
2  いいい  いいいいい  22222
3  ううう  うう   −−−(ここで改行)
\ううう  33333     −−−(改行の続き)
4  えええ  えええええ  44444
といった感じです。

Excelにインポートして少し配置を変えてからエクスポート、それから
COPYコマンドで入れ直すつもりだったのですが、途中の改行が邪魔をして
(上の例だと、「¥ううう」が、あたかもidのように居座っています)
困っています。しかもレコードは5000件ほどあり、手で直すわけにも・・・

どうにか上手くExcelでいじれる形まで持っていけないでしょうか?
お願いします。
044441503/07/16 00:48ID:???
>>416
どうもありがとう。
少しづつですがわかってきている状態です。
ちなみに僕が使っているとことはファイル設定が出来るそうです。

PHPどころかプログラム初心者なのでめちゃ苦労している状態です。
そもそも、PHPを始めたのはDBを作りたかったからです。
それ以外にもPHPが優れているところはどこなのでしょうか?
皆さんがなぜPHPをやり始めたのか聞かせてもらえませんか。
に比べてそれ以外に
044541503/07/16 00:50ID:???
ごめんなさい。

>>に比べてそれ以外に
↑これいりませんねw
0446nobodyさん03/07/16 00:51ID:???
>>443
データもってきたアホにやらせれば?


ってのは冗談で
本来の行末のフィールドに絶対改行が入らないなら、
一行ずつ取っていってフィールド数がたらんかったら
次の行を追加するようなスクリプト作れば?
0447nobodyさん03/07/16 00:52ID:???
>>443
改行を取り除くっていうかデータを整形するスクリプト
書けばいいんちがう?PerlでもPHPででも。
044844703/07/16 00:54ID:???
かぶった。スマソ。
0449nobodyさん03/07/16 01:32ID:APFwOkck
>>443
というよりタブ空文でも改行でもデータを拾うようにして4フィールど
毎に1つ目のフィールドが数字である事をチェックして真なら改行。
これでよいはず。前述でも同じ結果が得れたらなんでもいいだろうけど
0450nobodyさん03/07/16 01:38ID:???
>>449

ほげほげ
1
1

ってデータが入ってたらどうすんだべさ?
0451404(・∀・∀・)HDML ◆StMXML.EXE 03/07/16 01:42ID:???
>>444
俺の場合、PerlよりハイカラなイメージがPHPに有ったからというだけの理由。
ちなみに今でもド素人の部類に入ると思います。Perlの勉強すらすっとばして
いきなりPHPから始めちゃった訳ですから。
そもそも、自前でアクセス解析スクリプト程度のものを作れればいいかなー、
程度の目標だったんで上達する事も無く。
今借りてるレンタルサーバがSQLに対応してくれていないせいも有って、データ
ベース系を勉強する機会も興味も沸かないし。
■ このスレッドは過去ログ倉庫に格納されています