0

私はこのイメージ スクリプトに長い間取り組んできましたが、イメージ タイプとエラー処理 (フィールドが空の場合) の 2 つがまだ機能していないようです。これのコードはありますが、追加しようとするすべての場所で機能しません。

私のコード:

$error_message="";
$MaxSize = "600000";
if (isset($_POST['btn_update'])){
function createRandomPassword() {
$chars = "abcde!@#%^fghijkmnoABCDEFGHIJKpqrstuvwxyz023456789ABCDEFGHIJKLMNOPQRSTUVWZ!@#%^&";
srand((double)microtime()*10000000);
$i = 0;
$pass = '' ;
while ($i <= 19) {
$num = rand() % 60;
$tmp = substr($chars, $num, 1);
$pass = $pass . $tmp;
$i++;
}
return $pass;
}
if ($_FILES['aMyUploads0']['size'] > $MaxSize || $_FILES['aMyUploads1']['size'] > $MaxSize || $_FILES['aMyUploads2']['size'] > $MaxSize)
{
$error_message = "ERROR: File too big!";

}
$aMyUploads = array();
$password = createRandomPassword();
foreach($_FILES as $aFile)
{
$newLocation = 'uploads/'.$password .$aFile["name"];
if(0 === $aFile['error'] && (false !== move_uploaded_file($aFile['tmp_name'], $newLocation)))
{
$aMyUploads[] = $newLocation;
}
else
{
$aMyUploads[] = '';
}
}
$error_message="Journal successfully saved.";
$connection = mysql_connect("localhost", "????", "???");
mysql_select_db("????", $connection);
$insert = "INSERT INTO photos (image1, image2, image3) VALUES
(
' ".$aMyUploads[0]." ',
' ".$aMyUploads[1]." ',
' ".$aMyUploads[2]." '
)";
$add_member = mysql_query($insert) or die(mysql_error());
}

code im trying to add with no luck:



 //ERROR HANDLING CODE:

    if(empty($aMyUploads[0]) || empty($aMyUploads[1]) || empty($aMyUploads[2]))
    {
    $error_message="Please fill in all fields.";
    }
    else
    {
    $error_message="Journal successfully saved.";


//IMAGE TYPE CODE:

$allowed_filetypes = array(".jpg", ".gif", ".jpeg", ".png");

$ext = substr($newLocation, strpos($newLocation,'.'), strlen($newLocation)-1);
if(!in_array($ext,$allowed_filetypes))
{
die('The file you attempted to upload is not allowed.');
}
4

1 に答える 1

0

ファイルサイズをチェックするコードの前に挿入された必須フィールドをチェックするためにこれを試してください。

// ERROR HANDLING CODE:
if (empty($_FILES) || empty($_FILES['aMyUploads0']) || empty($_FILES['aMyUploads1']) || empty($_FILES['aMyUploads2']))
{
    // Handle error
}

そして、これはファイルタイプを検証するためのもので、foreach.

// IMAGE TYPE CODE:

$allowed_filetypes = array("jpg", "gif", "jpeg", "png");

$ext = pathinfo($aFile['name'], PATHINFO_EXTENSION);
if (!in_array($ext, $allowed_filetypes))
{
    // Handle error
}
于 2012-05-22T20:12:48.703 に答える