这是搞乱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>
答案 0 :(得分:1)
500(内部服务器错误)是由于服务器配置错误导致的错误,即无效的.htaccess指令,可能是权限问题。你应该确保你有权写入你想要的目录并访问它们等,并且在这个目录中没有带有无效指令的.htaccess文件......
答案 1 :(得分:1)
500(内部服务器错误)可能由于各种原因而给出,其中之一是PHP退出并发生致命错误。如果配置它,可以在PHP错误日志中找到PHP错误。
如果您已配置PHP错误日志,并且没有找到与该脚本相关的任何内容,则需要检查服务器的错误日志。它会记录所有500个错误并告诉您原因。
你甚至可以先检查服务器错误日志,但是那里的原因可能看起来非常神秘,只告诉你(如果你知道如何阅读它)这是一个PHP错误 - 这在php错误中有更好的解释日志中。
如果您无权访问服务器错误日志文件,请与您的主机的技术支持联系。