人生最悪の忘れ物

PHPを勉強中なのですが、以下のソースをSubmit(value=更新)処理すると
結果がURLが見つからない「ページを表示できません」がでます。
恐らく、「PHP_SELF」に絡む設定か、「localhost」のPathに問題があると思うのです。
何かの設定が抜けていると思うのですが、色々調べても分かりません。
どこの設定を直せばいいか教えてください。(^^

【書籍】
ホンキで学ぼう!PHPのキホン

【環境】
OS:WindowsXPHomeEdition
Apapche:1.3.26
PHP:4.2.3

【URL結果】
最初にPHPにアクセスしたときのURL:http://localhost/tmp/php/fileedit.php
SubmitしたときのURL:http://tmp/php/fileedit.php

【ソース】書籍の抜粋
<?
$filename = "todo01.txt";

if ( $submit ) {
$backupfile = $filename.".bak";
echo $backupfile;

if ( copy($filename, $backupfile) ) {
$fp = fopen($filename, "w");
if(flock($fp, 2)){
fputs($fp, $contents);
flock($fp, 3);
}else{
echo "ERROR: file lock is failed.<BR>\n";
exit;
}
fclose($fp);
}else{
echo "ERROR: backup failed.<BR>";
exit;
}
}
// ファイル書き換え部終わり
?>
<HTML>
<HEAD>
<TITLE>
<?
echo $filename
?>
</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;CHARSET=euc-jp">
</HEAD>
<BODY>
<FORM ACTION="<? echo $PHP_SELF; ?>" METHOD="POST">
<TEXTAREA NAME="contents" ROWS="25" COLS="100">
<?
require ( $filename );
phpinfo();
?>
</TEXTAREA>
<INPUT TYPE="submit" NAME="submit" VALUE="更新">
</FORM>
</BODY>
</HTML>

A 回答 (2件)

$PHP_SELF



$_SERVER['PHP_SELF']
に変えてみてください。
PHP4.2.0からデフォルトの設定ではregister_globalsがoffになり、外部変数の取り扱いが変更になっているので、古いソースはそのままでは動きません。
    • good
    • 0
この回答へのお礼

ありがとうございます(^^
OKになりました。

PHPのバージョンの差で命令文が変わることをまとめた書籍(リファレンス)、URLをご存知でしたら、教えていただけませんか?

最新のPHPバージョンを勉強すると書籍にないことだらけで困っています。^^;)

お礼日時:2002/09/30 00:48

最新の情報なら、PHP配布元のマニュアルが一番ですよ。


日本語版に翻訳されたものもあります。

バージョンごとにまとめてあるわけではないですけど、
各関数の説明のところに古いバージョンだと使えない場合は、
どのバージョンから有効か記載されていますし、
便利だと思いますよ。

参考URL:http://www.php.net/manual/ja/
    • good
    • 0
この回答へのお礼

ありがとうございます。
色々勉強しながら、試してみます。(^^

お礼日時:2002/10/02 23:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報