-
Form upload
ciao a tutti,
ho scaricato un form di upload in php ma ho notato che non funziona su altervista, mi chedo se non funziona per colpa di un errore mio oppure perchè non può funzionare qui.
Questo form include l'invio di due email una a me per avvertirmi che ho un nuovo file nella direcotry ed una di ringraziamento alla persona che ha spedito il file...vorrei sapere se è consentito inserire un form in php per l'invio di email oppure è sempre un problema mio dovuto all'errato settaggio...
a presto.
-
Il problema può essere dato dal fatto che AlterVista permette di spedire due e-mail ogni tre secondi. Il tuo script tenta di spedirne due sicuramente in meno di tre secondi. Comunque se scrivi qualcosa di più sullo script possiamo aiutarti a modificarlo, facendo in modo che gli indirizzi siano in BCC, così da spedire una sola e-mail.
P.S.: Sposto nella sezione dedicata al PHP.
-
ok grazie infinite...effettivamente il problema riguardante la mail potrebbe essere quello in quanto ho notato che il messaggio che mi avverte che è arrivato un nuovo file ora arriva ma quello di ringraziamento agli utenti che hanno madnato il file no.
Ma cosa mi dici riguardo l'upload del file?
Ho porvato lo script su un'altro spazio gratuito e funziona ma non manda le email...qui mi pare ke io abbia il problema contrario ora!!!
in ogni caso, ti incollo di seguito lo script in php con l'annesso form in html così lo puoi controllare meglio.
Questo è lo script già settato per lo spazio dove è indirizzato:
Codice PHP:
<?
/* Easy Uploader */
// set variables (SET THESE TO SUIT YOUR CIRCUMSTANCES):
// Upload directory (MUST HAVE TRAILING SLASH):
$uploaddir="/file_ricevuti/";
// Your email
$youremail="slam.mix@virgilio.it";
// Thank you page:
$thankspage="http://www.lautoitaliana.altervista.org/grazie.htm";
// Set Upload thanks message for USER
$uptymessage=$realname.", Grazie per aver mandato il file: $file_name\n\nWe alla redazione di \"lautoitaliana\".";
// Set Upload thanks message for OWNER
$ownermessage=$realname." [ ".$email." ] ha appena inviato il file $file_name\n\nCheck alla directori di \"lautoitaliana\".";
// Email message on or off ? 1 = on, 0 = off
$emailmessages = "1";
// start code (DO NOT CHANGE ANYTHING BELOW THIS LINE):
// Check for valid email address
$x = ereg("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,3}$",$email);
if($x==0)
// if no valid email address entered, display no email message
{
echo "<div align=center>You <b>must</b> specify a valid email address for yourself. <a href=javascript:history.back(-1)>Return to the form</a>.</div>";
}
else {
// Check to see if valid file
if ($file == "none") {
// if no valid email address entered, display no file message
echo "<div align=center>You <b>must</b> specify a file to upload. <a href=javascript:history.back(-1)>Return to the form</a>.</div>";
}
else {
//directory to upload to
copy($file, $uploaddir.$file_name);
unlink($file);
//return thank you page
Header("Location: $thankspage");
}
}
if ($emailmessages == "1") {
//mail you to let you know a new uploaded file
mail("$youremail", "Uploaded file", "$ownermessage");
//mail user to thank them
mail("$email", "Uploaded file", "$uptymessage");
exit;
}
?>
e questo invece è il form:
Codice HTML:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF">
<form action="upload.php" method="post" ENCTYPE="multipart/form-data">
File to upload:<input type="file" size=40 name="file"><br>
<input type="hidden" name="MAX_FILE_SIZE" value="1000">
Your Name<input type="text" name="realname"><br>
Your Email<input type="text" name="email"><br>
<input type="submit" value="upload">
</form>
</body>
</html>
Fatemi sapere qualcosa voi perchè io appresso a sto script sto diventando scemo...grazie infinite...a presto.
-
Prova a modificare questa riga:
Codice PHP:
$uploaddir="/file_ricevuti/";
In questo modo:
Codice PHP:
$uploaddir="file_ricevuti/";
Oppure in questo modo:
Codice PHP:
$uploaddir="/membri/lautoitaliana/file_ricevuti/";
-
ok, ora funziona grazie infinite!!!!!!
L'unico problema è l'email di ringraziamento come posso fare a sfare l'invio delle due email di 3 secondi l'una dall'altra?
Grazie ancora per la soluzione!!!!!
EDIT: Ho riscontrato un'altro problema.
qalche norme farabutto ha inviato nell'upoìload un php attraverso il quale è riuscito ad entrare nel mio spazio e a modificare la home page...come posso fare a bloccare i file in maniera tale che mi vengano solo inviati file immagini?
-
poi fare così:
Codice PHP:
$name = $_FILES['file']['name'];
$name = exlpode (".", $name);
if ($name[1] == "gif" || $name[1] == "jpg" || $name[1] == "png" etc...)
{
esegui il codice...
}
else
{
echo "Formato non valido";
}
-
Lo script di Silverseraph contiene un errore nel chiamare la funzione explode, potrebbe essere aggirabile chiamando i file "nome.gif.php" e non farebbe caricare immagini che hanno l'estensione in maiuscolo.
Quindi correggendolo:
Codice PHP:
$name=explode(".",$_FILES['file']['name']);
$estensione=strtolower($name[count($name)-1]);
if ($estensione=="gif" || $estensione=="jpg" || $estensione=="png") {
// Carica il file
}
else {
// Errore
}
Naturalmente è possibile aggiungere altre estensioni nell'if.
-
ho provato ad aggiungere lo script da voi proposto nel mio script di upload ma con la mia scarsa conoscenza in php non ce l'ho fatta...potete accorparli voi x me?
Penso che si un problema di nome di variabili!!!
Scusate se vi chiedo questo ma non lo so fare proprio!!
EDIT: Ok ho risolto il problema...l'ho integrato e funziona perfettamente.
volevo xò se è possibile inviare delle mail con allegati da altervista dal momento in cui vorrei che se un file viene inviato in un formato ke nno è un'immagine il sistema me lo mandi sull'email dopo poi lo posso esaminare!!
FunCool: Non scrivere due messaggi consecutivi, utilizza il tasto Edita.