08/10/12 21:05:30 cg/RVdaY
WEB系ってある程度きわめると
勉強することなくなるの?
886:nobodyさん
08/10/12 21:08:42
んなわけねーだろ。
887:nobodyさん
08/10/12 21:12:53 cg/RVdaY
URLリンク(wiki.bit-hive.com)
ここに、PHPのCGI版は、実行時に
HTTPヘッダを自動で送信している、って
書いてあるけど、
自分はPHPのモジュール版を使っているのだが、
この場合はHTTPヘッダを自動で送信しているのかな?
それともしていないのかな?
888:211
08/10/12 21:32:59 fXLt5ZTj
使っているのなら自分で確認できませんか?
889:nobodyさん
08/10/13 01:00:05
>>875
そのURLは面倒なので見てないが、変数定義があるかどうかを調べた後にその変数の正当性を調べるのは、
何らおかしい事ではないというかむしろ普通。
PHPはそこら辺いい加減な言語だから別に好きにすりゃいいが、変数が定義されているかどうか分からないケースの場合、
先にisset()で調べた方が、実行速度は上がるケースがある。未定義の変数の参照は遅い。
if (isset($_POST["title"]) && $_POST["title"]) だと、$_POST["title"]が未定義ならその後の処理は実行されない。
if ($_POST["title"]) だと、$_POST["title"]が未定義の時に遅い。まぁマイクロ秒単位の世界だがw
890:nobodyさん
08/10/13 01:02:20
なんで isset($_POST["title"] だけではだめなの?
891:nobodyさん
08/10/13 01:48:34
みんな回答ありがとう
892:211
08/10/13 07:30:16 2R92n/wD
>>890
だめかどうかは知らないけど、
isset($_POST["title"])
と
$_POST["title"]!=""
は意味(結果)が違うからね。
必要に応じて使えばいいと思う。
893:nobodyさん
08/10/13 07:38:41
じゃstrlenにすれば一発でできんじゃん
894:nobodyさん
08/10/13 07:46:42 CGfh2V74
phpファイルで
<html>
<head><title>PHP TEST</title></head>
<body>
<?php
require_once(DB.php);
?>
</body>
</html>
というのを作ってapacheで実行したら
エラーが出ました
Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\atest.php on line 7
Fatal error: require_once() [function.require]: Failed opening required DB.php (include_path=.;c:\php\includes;c:\smarty\libs) in C:\Program Files\Apache Group\Apache2\htdocs\atest.php on line 7
と書かれていたのでC:\WINDOWS\php.iniの
include_path = .;c:\php\includes;c:\smarty\libs
を確認したのですが違いはなかったようです
どうすればよろしいでしょうか?
895:nobodyさん
08/10/13 07:50:19
PEAR入れれ
896:nobodyさん
08/10/13 08:05:13 CGfh2V74
>>895
え?入ってないってことですか?
入れたはずなんですが
897:nobodyさん
08/10/13 08:07:59
include_pathがそれでいいのか良く見て考えれ。終了。
898:nobodyさん
08/10/13 08:20:52 CGfh2V74
>>895か>>897のどっち?
pearは入れたはず
include_pathはとりあえず言われたのをやったんですけども
pear導入のときから少し変えた
なにを入れたらいいの?
899:211
08/10/13 08:51:11 2R92n/wD
>>898
警告メッセージってコピペですか?
require_once の引数はそれで正しいですか?
900:894
08/10/13 09:13:10 CGfh2V74
レスありがとうございます
コピペです
require_onceの引数ですが
c:\php\pear\DBなので間違いではないと思います
901:211
08/10/13 09:26:59 2R92n/wD
>>900
> コピペです
私の理解では、DBとphpが定数定義されていない限り、
require_once(DB.php);
は
require_once("DB"."php"); つまり require_once("DBphp");
という動きをします。
しかしそうだとすると、894の警告と食い違うので聞きました。
手で打ち直してないですか?
二つめの質問もつまりそういうことです。
もし私の理解が正しくなくて、require_once が DB.php を
開こうとしているなら、DB.phpが include_pathで指定されている
ディレクトリのどこかにあるかどうか確認すればよいと思います。
あるいは、require_onceの引数にパスを含めて指定することも
できると思います。
902:894
08/10/13 10:38:31 CGfh2V74
ありがとうございます
一度帰宅してやってみます
詳しく書いて頂き大変感謝してます
いつもここのスレは丁寧な方が多くて嬉しい限りです
903:nobodyさん
08/10/13 12:24:01
>>892
もしかすると
gettypeでstringの場合とstrlenで1文字以上をチェックすれば完璧じゃね?
または(string)で強制的にstringに置き換えてstrlenでチェック
904:211
08/10/13 12:37:29 2R92n/wD
>>903
>>889 で書かれていることは知らなかったけど、そういうこともあると思う。
自分で isset($_POST["title"]) && $_POST["title"]!="" とか書くときの
isset は Notice が出ないようにするためだな。
905:nobodyさん
08/10/13 12:40:44
>>903
>>893