Codice PHP:
<?php
// ---------------
// INITIALIZE PAGE
// ---------------
require_once('scripts/sb_functions.php');
global $logged_in;
$logged_in = logged_in( true, true );
read_config();
require_once('languages/' . $blog_config[ 'blog_language' ] . '/strings.php');
sb_language( 'upload_img' );
// ---------------
// POST PROCESSING
// ---------------
for ($i=0;$i<count($_FILES['userfile']);$i++) {
if ($ok == null) {
$ok = false;
}
if (is_uploaded_file($_FILES['userfile']['tmp_name'][$i])) {
if ( $_FILES[ 'userfile' ][ 'error' ][$i] == 0 ) { // se folder non esiste lo crea ndrob
if (!file_exists(IMAGES_DIR)) {
$oldumask = umask(0);
@mkdir(IMAGES_DIR, 0777 );
@umask($oldumask);
}
// Mod rob: aggiunte le parentesi quadre alla sostituzione con underscore (le parentesi quadre nell'immagine vanno in // conflitto con il tag per inserire l'immagine nel post)
// Old: $uploadfile = $uploaddir . preg_replace("/ /","_",$_FILES['userfile']['name'][$i]);
$uploaddir = IMAGES_DIR;
$char = array(' ',"]","[");
$uploadfile = $uploaddir . str_replace($char,"_",$_FILES['userfile']['name'][$i]);
// Mod rob: controllo presenza altro file con lo stesso nome.
if (file_exists($uploadfile)) {
echo('Esiste già un immagine con lo stesso nome.'.'</a>
');
echo('Rinomina il file che vuoi inserire e ');
echo( '[url="upload_img.php"]' . 'riprova nuovamente' . '[/url]
' );
exit;
}
// Controllo dimensioni
$size_bytes =500000; //51200000 bytes = 50000KB.
//$file_size = $new_file['size'];
//$new_file = $_FILES['file'.$i];
if ($uploadfile > $size_bytes){
echo "Immagine troppogrande";
exit;
}
if ( @getimagesize($_FILES['userfile']['tmp_name'][$i]) == FALSE ){
echo('Il file selezionato non è un file immagine valido');
exit;
}
if (strpos($uploadfile, ".") === false) {
echo('File does not have an extension');
exit;
}
if (strpos($uploadfile, ".") == 0) {
echo('File begins with "."');
exit;
}
if (strrpos($uploadfile, ".") == strlen($uploadfile)-1) {
echo('File ends with "."');
exit;
}
$extension = strtolower(substr(strrchr($uploadfile, "."), 1));
if (strlen($extension) == 0) { // Not really needed...
echo('File ends with "." and does not have an extension');
exit;
}
// Allowed files
$upload_valid_extentions = array( "jpg", "gif", "png" );
$extension = strtolower(substr(strrchr($uploadfile, "."), 1));
if (!in_array($extension, $upload_valid_extentions)) {
echo('That filetype is not allowed');
exit;
}
// Explicitly denied files (we don't really need this anymore...) - provided by ReZEN (rezen@xorcrew.net)
$upload_denied_extentions = array( "exe", "pl", "php", "php3", "php4", "php5", "phps", "asp","cgi", "html", "htm", "dll", "bat", "cmd" );
foreach ($upload_denied_extentions AS $denied_extention) {
if($denied_extention == $extension) {
echo('That filetype is not allowed');
exit;
}
}
// if ( move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploadfile.rand(1,1000)) ) {
// $day = date("d",time());
// $month = date("m",time());
$year = date("y",time());
// $hourH = date("H",time());
// $houri = date("i",time());
// $hours = date("s",time());
if ( move_uploaded_file($_FILES['userfile']['tmp_name'][$i], $uploadfile) ) {
chmod( $uploadfile, 0777 );
$ok = true;
} else {
$ok = false;
}
}
}
}
if ( $ok === true ) {
redirect_to_url( 'add.php' );
}
// ------------
// PAGE CONTENT
// ------------
function page_content() {
global $lang_string, $user_colors;
if ( $ok !== true ) {
echo( $lang_string[ 'error' ] . $ok . '
' );
}
//echo(count($_FILES['userfile']));
//print_r($_FILES['userfile']);
//echo($_FILES['userfile']['name'][0]);
echo( '[url="index.php"]' . $lang_string[ 'home' ] . '[/url]
' );
}
// ----
// HTML
// ----
?>
<?php echo( get_init_code() ); ?>
<?php require_once('themes/' . $blog_theme . '/user_style.php'); ?>
<title><?php echo($blog_config[ 'blog_title' ]); ?> - <?php echo( $lang_string[ 'title' ] ); ?></title>
</head>
<?php
// ------------
// BEGIN OUTPUT
// ------------
theme_pagelayout();
?>
</html>