PHP For循环检查现有文件的文件夹

时间:2012-03-09 00:29:50

标签: php apache

这是搞乱php的唯一代码,我删除它并恢复完美,所以我猜这个循环语句中的内容是错误的;有谁可以看到什么错了?

下面假设搜索文件夹并查看图像是否已经在该文件夹中,如果是这样,每次将$ i换成+1($ i ++),然后再次检查最多30个数字。

知道我怎么能做到这一点? 我得到错误:

"HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while     the server was attempting to fulfill the request"

所以必须在代码中未正确配置

-Php循环代码

<?php

define ("MAX_SIZE","100"); 


 function getExtension($str) {
     $i = strrpos($str,".");
     if (!$i) { return ""; }
     $l = strlen($str) - $i;
     $ext = substr($str,$i+1,$l);
     return $ext;
 }


 $errors=0;
 if(isset($_POST['Submit'])) 
 {

$image=$_FILES['image']['name'];

if ($image) 
{

    $filename = stripslashes($_FILES['image']['name']);

    $extension = getExtension($filename);
    $extension = strtolower($extension);


 if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") &&     ($extension != "gif")) 
    {

//print error message

echo "";

        $errors=1;
    }
    else
    {

$size=filesize(['image']['tmp_name']);

if ($size > MAX_SIZE*1024)
{
echo "";

$errors=1;
}

 $image_name=time().'.'.$extension;



//Error Occurs Below
for($i=0; $i<30; $i++)
{
$relativePath="members/image/corey/"."photo".$i;
if(!file_exists($relativePath)) {
    continue;
}
    else
{
    $newNumber=$i;
    break;
}
}
$fileName=$_FILES["name"]."$newNumber";
$relativePath="members/image/corey/".$filename.'.'.$extension;
move_uploaded_file($image, $relativePath);

//Error Occurs Above
?>

-Buttons

    <form name="newad" method="post" enctype="multipart/form-data"  action="">
  <table>
  <tr><td><table>
    <tr>
      <td><input type="file" name="image" /></td>
    </tr>
    <tr>
      <td><input name="Submit" id="upload" type="submit" value="Upload image" onclick"load_images()" /></td>
    </tr>
  </table></td></tr>
  </table>      
</form>
</div>

2 个答案:

答案 0 :(得分:1)

我认为

500(内部服务器错误)是由于服务器配置错误导致的错误,即无效的.htaccess指令,可能是权限问题。你应该确保你有权写入你想要的目录并访问它们等,并且在这个目录中没有带有无效指令的.htaccess文件......

答案 1 :(得分:1)

500(内部服务器错误)可能由于各种原因而给出,其中之一是PHP退出并发生致命错误。如果配置它,可以在PHP错误日志中找到PHP错误。

如果您已配置PHP错误日志,并且没有找到与该脚本相关的任何内容,则需要检查服务器的错误日志。它会记录所有500个错误并告诉您原因。

你甚至可以先检查服务器错误日志,但是那里的原因可能看起来非常神秘,只告诉你(如果你知道如何阅读它)这是一个PHP错误 - 这在php错误中有更好的解释日志中。

如果您无权访问服务器错误日志文件,请与您的主机的技术支持联系。