Vorrei che quando uppo un file che già è presente nel server con lo stesso nome, invece di bloccarsi dicendo che già esiste un file con lo stesso nome, rinomini il nuovo file aggiungendo prima dell'estensione un codice casuale, e così se provo ancora una terza volta a riuploadare un file con lo stesso nome la possibilità che crei lo stesso codice sono quasi nulle...
Codice PHP:
<?
//user defined variables
$abpath "/home/web/public_html/upload"//Absolute path to where images are uploaded. No trailing slash
$sizelim "yes"//Do you want size limit, yes or no
$size "50000000"//What do you want size limited to be if there is one

//all image types to upload
$cert1 "image/pjpeg"//Jpeg type 1
$cert2 "image/jpeg"//Jpeg type 2

$log "";

//begin upload 1

//checks if file exists
if ($img1_name == "") {
$log .= "No file selected for upload 1
"
;
}
if (
$img1_name != "") {
//checks if file exists
if (file_exists("$abpath/$img1_name")) {
$log .= "File 1 already existed
"
;
} else {

//checks if files to big
if ($sizelim == "yes") {
if (
$img1_size $size) {
$log .= "File 1 was too big
"
;
}
}

//Checks if file is an image
if (($img1_type == $cert1) or ($img1_type == $cert2) or ($img1_type == $cert3) or ($img1_type == $cert4) or ($img1_type == $cert5) or ($img1_type == $cert6) or ($img1_type == $cert7) or ($img1_type == $cert8) or ($img1_type == $cert9) or ($img1_type == $cert10) or ($img1_type == $cert11) or ($img1_type == $cert12) or ($img1_type == $cert13) or ($img1_type == $cert14) or ($img1_type == $cert15) or ($img1_type == $cert16) or ($img1_type == $cert17)) {
@
copy($img1"$abpath/$img1_name") or $log .= "Couldn't copy image 1 to server
"
;
if (
file_exists("$abpath/$img1_name")) {
$log .= "File 1 $img1_name was uploaded
"
;
}
} else {
$log .= "File 1 is not an image
"
;
}
}
}
//checks if file exists
if ($img2_name == "") {
$log .= "No file selected for upload 2
"
;
}
if (
$img2_name != "") {

//checks if file exists
if (file_exists("$abpath/$img2_name")) {
$log .= "File 2 already existed
"
;
} else {

//checks if files to big
if ($sizelim == "yes") {
if (
$img2_size $size) {
$log .= "File 2 was too big]
"
;
}
}

//Checks if file is an image
if (($img2_type == $cert1) or ($img2_type == $cert2) or ($img2_type == $cert3) or ($img2_type == $cert4) or ($img2_type == $cert5) or ($img2_type == $cert6) or ($img2_type == $cert7) or ($img2_type == $cert8) or ($img2_type == $cert9) or ($img2_type == $cert10) or ($img2_type == $cert11) or ($img2_type == $cert12) or ($img2_type == $cert13) or ($img2_type == $cert14) or ($img2_type == $cert15) or ($img2_type == $cert16) or ($img2_type == $cert17)) {
@
copy($img2"$abpath/$img2_name") or $log .= "Couldn't copy image 2 to server
"
;
if (
file_exists("$abpath/$img2_name")) {
$log .= "File 2 was uploaded
"
;
}
} else {
$log .= "File 2 is not an image
"
;
}
}
}
if (
$img3_name == "") {
$log .= "No file selected for upload 3
"
;
}
if (
$img3_name != "") {

//checks if file exists
if (file_exists("$abpath/$img3_name")) {
$log .= "File 3 already existed
"
;
} else {

//checks if files to big
if ($sizelim == "yes") {
if (
$img3_size $size) {
$log .= "File 3 was too big
"
;
}
}

//Checks if file is an image
if (($img3_type == $cert1) or ($img3_type == $cert2) or ($img3_type == $cert3) or ($img3_type == $cert4) or ($img3_type == $cert5) or ($img3_type == $cert6) or ($img3_type == $cert7) or ($img3_type == $cert8) or ($img3_type == $cert9) or ($img3_type == $cert10) or ($img3_type == $cert11) or ($img3_type == $cert12) or ($img3_type == $cert13) or ($img3_type == $cert14) or ($img3_type == $cert15) or ($img3_type == $cert16) or ($img3_type == $cert17)) {
@
copy($img3"$abpath/$img3_name") or $log .= "Couldn't copy image 3 to server
"
;
if (
file_exists("$abpath/$img3_name")) {
$log .= "File 3 was uploaded
"
;
}
} else {
$log .= "File 3 is not an image
"
;
}
}
}
if (
$img4_name == "") {
$log .= "No file selected for upload 4
"
;
}
if (
$img4_name != "") {

//checks if file exists
if (file_exists("$abpath/$img4_name")) {
$log .= "File 4 already existed
"
;
} else {

//checks if files to big
if ($sizelim == "yes") {
if (
$img4_size $size) {
$log .= "File 4 was too big
"
;
}
}

//Checks if file is an image
if (($img4_type == $cert1) or ($img4_type == $cert2) or ($img4_type == $cert3) or ($img4_type == $cert4) or ($img4_type == $cert5) or ($img4_type == $cert6) or ($img4_type == $cert7) or ($img4_type == $cert8) or ($img4_type == $cert9) or ($img4_type == $cert10) or ($img4_type == $cert11) or ($img4_type == $cert12) or ($img4_type == $cert13) or ($img4_type == $cert14) or ($img4_type == $cert15) or ($img4_type == $cert16) or ($img4_type == $cert17)) {
@
copy($img4"$abpath/$img4_name") or $log .= "Couldn't copy image 4 to server
"
;
if (
file_exists("$abpath/$img4_name")) {
$log .= "File 4 was uploaded
"
;
}
} else {
$log .= "File 4 is not an image
"
;
}
}
}

if (
$img5_name == "") {
$log .= "No file selected for upload 5
"
;
}
if (
$img5_name != "") {
//checks if file exists
if (file_exists("$abpath/$img5_name")) {
$log .= "File 5 already existed
"
;
} else {

//checks if files to big
if ($sizelim == "yes") {
if (
$img5_size $size) {
$log .= "File 5 was too big
"
;
}
}

//Checks if file is an image
if (($img5_type == $cert1) or ($img5_type == $cert2) or ($img5_type == $cert3) or ($img5_type == $cert4) or ($img5_type == $cert5) or ($img5_type == $cert6) or ($img5_type == $cert7) or ($img5_type == $cert8) or ($img5_type == $cert9) or ($img5_type == $cert10) or ($img5_type == $cert11) or ($img5_type == $cert12) or ($img5_type == $cert13) or ($img5_type == $cert14) or ($img5_type == $cert15) or ($img5_type == $cert16) or ($img5_type == $cert17)) {
@
copy($img5"$abpath/$img5_name") or $log .= "Couldn't copy image 5 to server
"
;
if (
file_exists("$abpath/$img5_name")) {
$log .= "File 5 was uploaded
"
;
}

} else {
$log .= "File 5 is not an image
"
;
}
}
}
?>
<html>
<head>


Log:

<?

echo "$log";

?>
Inoltre (l'ho fatto per il primo solamente) voglio che dica "file 1 [nome file] uploaded", però voglio che stampi il nuovo nome del file rinominato quando lo rinomina!
Grazie in anticipo.