は、ここに私のコードです:ドキュメントルートにないファイルにアクセスするにはどうすればよいですか?
// captcha.php
<?php
session_start();
$min=0;
$max=9;
$captcha_token='';
for($i=1; $i<=5; $i++){$captcha_token .= rand($min,$max).' ';}
$_SESSION['captcha'] = str_replace(" ","",$captcha_token);
$im = imagecreatetruecolor(110, 34);
$red = imagecolorallocate($im, 245, 245, 245);
imagefill($im, 0, 0, $red);
$text_color = imagecolorallocate($im, 80, 80, 80);
imagestring($im, 8, 15, 9, $captcha_token, $text_color);
header('Content-Type: image/jpeg');
imagejpeg($im);
imagedestroy($im);
?>
そして、私はこのようにそれを使用する:それは同様に動作
<img src="../../files/captcha.php" class="captcha_pic" alt="Captcha" />
。ご存知のように、httpリクエストです。私はfile
ディレクトリの場所を変更し、ドキュメントルートの外に置きたいと思う今
http://localhost/myweb/files/captcha.php
:私はこのように私はそのイメージを開くことができます意味します。だから私はcaptcha.php
にhttpリクエストでアクセスすることはできません。私はそれを得るために絶対パスを使用する必要があります。どうやって?
が、これは動作しないことに注意:
<?php
$img = include __DIR__ . "/../../files/captcha.php";
?>
<img src="<?=$img?>" class="captcha_pic" alt="Captcha" />
''なので、 '$ img'はその値で置き換えられません。 – pgngp
@pgngp私はタイプミスでした。編集されました。ありがとう –
正しく覚えていれば、 '__DIR__'には'/'がついていません。あなたは '$ img = include __DIR__を使ってみましたか? "/../../ files/captcha.php"; '代わりに? – pgngp