• 締切済み

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 --------------------------------------------------------------

みんなの回答

  • SeafooD3
  • ベストアンサー率75% (6/8)
回答No.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>

gayangamag
質問者

お礼

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

  • SeafooD3
  • ベストアンサー率75% (6/8)
回答No.1

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

gayangamag
質問者

補足

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

関連するQ&A