よし、アップロード スクリプトを見つけて、セッションに合わせて調整を加えました。セッションがログインしていない場合は画像をエコーアウトしますが、セッションがログインしている場合はファイル アップローダーが表示されます。問題は、誰かがこれに有害な PHP スクリプトをアップロードできることです。私はこれを画像用にしたいだけです。私のコード画像のみを作成する提案はありますか? フィルターを追加してみましたが、うまくいきません。これが私のコードです:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upload your own picture of Bouncy!</title>
</head>
<style type='text/css'>
body {
background-image:url('../membership/sitebg.png');
background-repeat:repeat-x;
background-color:#ffffff;
}
a {
color: #093D03;
text-shadow:0px 0px 5px #ffffff;
}
a:visited {
color: #093D03;
}
a:active {
color: #093D03;
}
a:hover {
color: #1AFF00;
}
</style>
<?php
session_start();
if ($_SESSION['loggedin'] == true)
{
echo "<br />";
echo "<br />";
echo "<center><font face='arial'>Welcome to the funny picture uploader,<b> ".$_SESSION['username'];
echo "</b><br /><a href='http://x.org/membership/logout.php'>Logout</a> | <a href='#'>More</a> | <a href='http://x.org'>Home</a>";
echo "<br />";
echo "<br />";
$max_no_img=1; // Maximum number of images value to be set here
echo "<form method=post action='' enctype='multipart/form-data'>";
echo "<table border='0' width='400' cellspacing='0' cellpadding='0' align=center>";
for($i=1; $i<=$max_no_img; $i++) {
echo "<tr><td>Images $i</td><td>
<input type=file name='images[]' class='bginput'></td></tr>";
}
echo "<tr><td colspan=2 align=center><input type=submit value='Add Image'></td></tr>";
echo "</form> </table>";
while(list($key,$value) = each($_FILES['images']['name']))
{
//echo $key;
//echo "<br>";
//echo $value;
//echo "<br>";
if(!empty($value)){ // this will check if any blank field is entered
$filename =rand(100000000000000,10000000000000000000).$value; // filename stores the value
$filename=str_replace(" ","-",$filename);// Add _ inplace of blank space in file name, you can remove this line
$add = "pictures/$filename"; // upload directory path is set
//echo $_FILES['images']['type'][$key]; // uncomment this line if you want to display the file type
//echo "<br>"; // Display a line break
copy($_FILES['images']['tmp_name'][$key], $add);
echo "<center><b>Your picture will be stored at:</b></center> ";
echo "<center><a href='http://bouncygames.org/$add'>Click here to view your image!</a></center>";
// upload the file to the server
chmod("$add",0777); // set permission to the file.
} }
} else {
echo "<br /><center><img src='sorry.png'><br />
<a href='x'><img src='button-to-join.png'></a>
</center>";
}
?>
私の質問: これを画像のみアップロードするにはどうすればよいですか?