みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

PHP の ファイルアップロード

私は以下のスクリプトを実行しましたがエラーが出ました。誰か教えてください。
---------------------------------------------------------------

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
<meta http-equiv="Content-Style-Type" content="text/css">

<title>ファイルアップローダー2</title>
</head>
<body>

<form method="post" enctype="multipart/form-data" action="09_03_fileup.php">
<input type="file" name="data" size="30">
<input type="submit" value="表示!">
</form>

<!--ここからPHPが始まります。-->

<?php
$updir = "./updir/";            //ファイルを保存するフォルダ
$filename = $_FILES['data']['name'];

if(file_exists($_FILES['data']['tmp_name'])){         //ファイルの存在を確認 tempの状態で確認
 $filesize = filesize($_FILES['data']['tmp_name']);     //ファイルサイズを取得 tempの状態で取得
 if($filesize <= 100000){
  if(ereg("(^[a-zA-Z0-9_-]+)\.(jpg)|(^[a-zA-Z0-9_-]+)\.(gif)",$filename)){ //jpgかgifしかアップできない
   move_uploaded_file($_FILES['data']['tmp_name'], $updir.$filename); //ファイルをuploadフォルダに保存
    echo "ファイル名 " . $filename . " アップロード成功!";
    echo $_FILES['data']['error'];
    echo "<br><br>";
    echo "<img src='./$updir/$filename'>";
  } else {
    echo "jpg かgif のファイルしかアップできません。或いはハイフン以外の記号があります。";
  }
 } else {
    echo "$filesize Byte ファイルサイズが大きすぎます。<br>100000 Byte 以下にしてください。";
 }
} else {
   echo "ファイルをアップした順にテーブルに並べていきます。20枚でお終い。<br>";
}

//ここから保存されたファイルの表示部分の記述です。

if ($handle = opendir($updir)) {    //フォルダを開きます。
 echo "<table border='1'>";
 $cnt = 1;     //カウント用の数字です。
  while (false !== ($file = readdir($handle))) {      //ファイルがあればすべて順に読みこむ
   if ($file != "." and $file != "..") {     //.と..を読まないようにします。
     if($cnt % 5 == 0){    //カウントが5で割って0なら右端なので</tr>を付ける
      echo "<td><img src='$updir/$file' width='112'></td></tr>";
     } else if($cnt % 5 == 1){   //5で割って1なら左端なので<tr>を付ける
      echo "<tr><td><img src='$updir/$file' width='112'></td>";
     } else {
      echo "<td><img src='$updir/$file' width='112'></td>";
     }
   $cnt++;
   }
   if($cnt > 20){   //カウントが20を超えたら終了
     break;
   }
  }
 closedir($handle);      //フォルダを閉じます
}

   //ここからテーブルがぴったり右端で終わらなかった時の処理

if(!(($cnt-1) % 5 == 0)){  //右端ぴったりで終わらなかったら
 $cvr = 5-($cnt-1) % 5;
  for($a=1;$a<=$cvr;$a++){  //足りない分だけ補う
   echo "<td width='112'> </td>";
  }
echo "</tr>";
}
echo "</table>";
?>

<!--これでPHPは終わりです。-->


</body>
</html>
---------------------------------------------------------------
エラーが以下の通りです
---------------------------------------------------------------

Parse error: parse error, unexpected T_VARIABLE in /home/wwwbest/public_html/09_03_fileup.php on line 20
--------------------------------------------------------------

投稿日時 - 2008-09-09 18:39:09

QNo.4316277

暇なときに回答ください

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

下記は修正済というか、余分なものを取り除いたコードです。
これでまたでるようでしたらエラーメッセージを教えて下さい。

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
<meta http-equiv="Content-Style-Type" content="text/css">

<title>ファイルアップローダー2</title>
</head>
<body>

<form method="post" enctype="multipart/form-data" action="test01.php">
<input type="file" name="data" size="30">
<input type="submit" value="表示!">
</form>

<!--ここからPHPが始まります。-->

<?php
$updir = "updir/";
$filename = $_FILES['data']['name'];
print_r($_FILES);

if(file_exists($_FILES['data']['tmp_name'])){ //ファイルの存在を確認tempの状態で確認
$filesize = filesize($_FILES['data']['tmp_name']);//ファイルサイズを取得tempの状態で取得
if($filesize <= 100000){
//jpgかgifしかアップできない
if(ereg("(^[a-zA-Z0-9_-]+)\.(jpg)|(^[a-zA-Z0-9_-]+)\.(gif)",$filename)){
move_uploaded_file($_FILES['data']['tmp_name'], $updir.$filename);//ファイルをuploadフォルダに保存
echo "ファイル名" . $filename . " アップロード成功!";
echo $_FILES['data']['error'];
echo "<br><br>";
echo "<img src='./$updir/$filename'>";
} else {
echo "jpg かgif のファイルしかアップできません。或いはハイフン以外の記号があります。";
}
} else {
echo "$filesize Byte ファイルサイズが大きすぎます。<br>100000 Byte 以下にしてください。";
}
} else {
echo "ファイルをアップした順にテーブルに並べていきます。20枚でお終い。<br>";
}

//ここから保存されたファイルの表示部分の記述です。

if ($handle = opendir($updir)) {//フォルダを開きます。
echo "<table border='1'>";
$cnt = 1;//カウント用の数字です。
while (false !== ($file = readdir($handle))) { //ファイルがあればすべて順に読みこむ
if ($file != "." and $file != "..") { //.と..を読まないようにします。
if($cnt % 5 == 0){//カウントが5で割って0なら右端なので</tr>を付ける
echo "<td><img src='$updir/$file' width='112'></td></tr>";
} else if($cnt % 5 == 1){ //5で割って1なら左端なので<tr>を付ける
echo "<tr><td><img src='$updir/$file' width='112'></td>";
} else {
echo "<td><img src='$updir/$file' width='112'></td>";
}
$cnt++;
}
if($cnt > 20){//カウントが20を超えたら終了
break;
}
}
closedir($handle); //フォルダを閉じます
}

//ここからテーブルがぴったり右端で終わらなかった時の処理

if(!(($cnt-1) % 5 == 0)){//右端ぴったりで終わらなかったら
$cvr = 5-($cnt-1) % 5;
for($a=1;$a<=$cvr;$a++){//足りない分だけ補う
echo "<td width='112'></td>";
}
echo "</tr>";
}
echo "</table>";

?>

<!--これでPHPは終わりです。-->


</body>
</html>

投稿日時 - 2008-09-11 16:39:39

お礼

ありがとうございました。ちゃんと動きました。本当にありがとうございました。

投稿日時 - 2008-09-11 19:52:41

ANo.1

こんにちは。
このPHPソースコードの中に全角スペースが入っているようです。それを取り除いてください。

投稿日時 - 2008-09-10 13:08:29

補足

ありがとうございます。
やってみましたが。いまだに同じエラーがでます。どうしたらいいのでしょうか

投稿日時 - 2008-09-10 22:28:28

あなたにオススメの質問