Ciao raga, ho due domande da farvi, ho creato un form per fare l'upload delle immagini nel server, ma ho una serie di problemi, in parole povere vorrei sapere se mettendo mano al codice è possibile implementare una funzionalità un pos trana per me, ho notato che dopo l'upload le immagini nel server vengono settate col chmod 600 e non posso visualizzarle nel web se non con una pagina php che le richiama e inoltre non posso neanche scaricarle con un ftp manager, quello che vorrei fare è settarle a 644 ma non posso certo sbattermi via ftp a modificare ogni singola immagine che l'utente richiama, vi allego il codice:
La seconda domanda è relativa alla visualizzazione di un circuito banner, ho creato una pagina in php che ad ogni refresh carica un'immagine diversa, mi sapete dire invece se posso creare uno slider in php senza database?<?php
//Funzioni utili...
//Funzione Replace " " in "_" (evitiamo possibili errori)
function fSpace($string)
{
return str_replace(" ", "_", $string);
}
//Funzione per ricavare l' estensione di un File
function fExt($string)
{
//Controllo il file
$trova_punto = explode(".", $string);
$estensione = $trova_punto[count($trova_punto) - 1];
$estensione = strtolower($estensione);
// Se non ci sono estensioni
if (isset($trova_punto[1]) == FALSE)
{
return '';
}
//Ritorno il valore dell' estensione
return $estensione;
}
//Fine funzioni
//Effettuo l' upload dell' immagine...
$uploaddir = 'images/clan/';
$uploadfile = fspace($_FILES['txt_file']['name']);
$upload = $uploaddir . $uploadfile;
//Controllo che sia stato specificato un file
if(!strlen($uploadfile) == 0)
{
//Controllo l' estensione del file
if((fExt($uploadfile) == 'gif') or (fExt($uploadfile) == 'jpg'))
{
//Eseguo l' upload
if(move_uploaded_file($_FILES['txt_file']['tmp_name'], $upload))
{
//Upload eseguito con successo
echo "<p align=\"center\"><font color=\"green\">Upload eseguito correttamente</font>";
echo "<p align=\"center\">[img]". $upload ."[/img]";
echo "<p align=\"center\"><font color=\"#FF0000\">Grazie per aver caricato il banner!</font></span></p>";
echo "<p align=\"left\">NB: Puoi sostituire il tuo banner in qualsiasi momento con uno nuovo, devi solo rispettare la regola del nome assegnato al file <font color=\"#FF0000\">clan_nometuoclan.jpg</font>";
echo "<p align=\"left\">Gli amministratori!";
}else{
//Upload fallito
echo "<p align=\"center\">Upload fallito !";
echo "
<p align=\"center\">Torna dietro";
}
}else{
//Messaggio di errore
echo "<p align=\"center\">File non valido";
echo "
<p align=\"center\">Torna dietro";
}
}else{
//Messaggio di errore
echo "<p align=\"center\">Specificare un file !";
echo "<p align=\"center\">
Torna dietro";
}
?>
Questo è il codice, e a volte capita che l'immagine non viene caricata e mi mette il classico rettangolino con la X poi cliccando col destro del mouse e mostra immagine, dopo 3 o quattro volte la vedo:
<?php
################################################## #
# #
# Chameleon v0.1 #
# #
# Autore: Gabriele Cannizzaro aka Scitrek #
# #
# L'utilizzo è libero per scopi NON commerciali #
# #
################################################## #
/* Percorso relativo della directory contenente le immagini (vuoto = directory corrente) */
$dir = "";
################################################
############## ATTENZIONE ##############
# Qualsiasi modifica al codice sottostante #
# può comprometterne il buon funzionamento #
################################################
if ($dir !== "") {$opendir = opendir($dir);}
else {$opendir = opendir('.');}
while (($file = readdir($opendir)) !== FALSE) {$avatars[] = $file;}
mt_srand((double)microtime()*1000000);
$num = mt_rand(0,count($avatars));
$ext = explode(".", $avatars[$num]);
$type = $ext[1];
if ($dir !== "") {$name = $dir."/".$avatars[$num];}
else {$name = $avatars[$num];}
header("Expires: ".gmdate("D, d M Y H:i:s")." GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header("Content-Type: image/".$type);
header("Content-Disposition: inline; filename=".$name);
readfile($name);
exit();
?>