[Tep-j-general] Re: ダウンロード販売について

アーカイブの一覧に戻る

hamada bungu****@leo*****
2004年 10月 18日 (月) 10:27:10 JST


こんにちわ。

On Mon, 18 Oct 2004 09:29:17 +0900
kensyo_100 <kensyo_100****@yahoo*****> wrote:

> 20*.**.80.** - - [18/Oct/2004:09:05:42 +0900] "GET
> /download.php?order=20041017.004326.3711&id=10 HTTP/1.1" 200 5
> "http://www.@@@@@.com/account_history_info.php?page=1&order_id=20041017.0043
> 26.3711" "Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)"

要するにdownload.phpから遷移してないんですね。

>   if (DOWNLOAD_BY_REDIRECT == 'true') {
> // This will work only on Unix/Linux hosts
>     tep_unlink_temp_dir(DIR_FS_DOWNLOAD_PUBLIC);
>     $tempdir = tep_random_name();
>     umask(0000);
>     mkdir(DIR_FS_DOWNLOAD_PUBLIC . $tempdir, 0777);
>     symlink(DIR_FS_DOWNLOAD . $downloads['orders_products_filename'], DIR_FS_DOWNLOAD_PUBLIC . $tempdir . '/' . $downloads['orders_products_filename']);
>     tep_redirect(DIR_WS_DOWNLOAD_PUBLIC . $tempdir . '/' . $downloads['orders_products_filename']);
>   } else {
> // This will work on all systems, but will need considerable resources
> // We could also loop with fread($fp, 4096) to save memory
>     readfile(DIR_FS_DOWNLOAD . $downloads['orders_products_filename']);
>   }

download.phpが正常に動作してれば↑ココが動作してダウンロードに遷移するハ
ズなんで、まずリダイレクトをfalseにしてから

>     readfile(DIR_FS_DOWNLOAD . $downloads['orders_products_filename']);

を

>     echo DIR_FS_DOWNLOAD . $downloads['orders_products_filename'] . "<br>\n";

とかに書き換えて、readfile()関数が一体どこのファイルを呼ぼうとしてるのか
を調べるのがいいかと思います。

たぶん、DIR_FS_DOWNLOADの場所指定か、パーミッションのどっちかが適正じゃ
無いから動かないんじゃないかと。

PHPのメモリ不足等の可能性もないではないですが、たぶん違うでしょう。

またtest.phpとかして

<?php

$filename='/home/****/public_html/download/temp.pdf';
readfile($filename);

?>

みたいな内容のファイルをサーバ上に置き、ブラウザからアクセスしてみる手も
ありますね。

コレでダウンロードされないならdownload.phpが動くはずないです。どこか他に
問題が有ります。エラーメッセージを確認してください。

はまだ






Tep-j-general メーリングリストの案内
アーカイブの一覧に戻る