Ho provato ma non và....ora non mi accetta nemmeno zip e rar, in pratica non accetta nulla e dà sempre errore di estensione
peekaboo
@peekaboo
Post creati da peekaboo
-
RE: form contatti con allegato: problemi con estensione allegato
-
form contatti con allegato: problemi con estensione allegato
Buonasera a tutti!
Premettendo che sono una capra con il PHP (parlatemi come avessi 2 anni :)!), mi serviva un form con dei campi+allegato che una volta inviati, andassero dritti ad un indirizzo mail.Fin qui, ho trovato ciò che cercavo e l'ho fatto funzionare (anche se ciò che ricevo mi và nella posta indesiderata, c'è un modo per evitare ciò?)...ma...
Vorrei mettere una restrizione per quanto riguarda le estensioni del file che si può allegare (che si possano allegare solo zip e rar)..
Vi allego il codice, la stringa della restrizione c'è ma non và, riesco a spedire anche i jpeg ad esempio....
// prints form function print_form(){ ?> <form method="post" action="<?php echo $_SERVER[?PHP_SELF?];?>" id="form" enctype="multipart/form-data"> <label for="nome">nome / nome gruppo</label> <input name="nome" id="nome" type="text" value="<?= $_SESSION['myForm']['nome']; ?>" tabindex="1"/> <label for="email">e-mail</label> <input name="email" id="email" type="text" value="<?= $_SESSION['myForm']['email']; ?>" tabindex="2"/> <label for="citta">città</label> <input name="citta" id="citta" type="text" value="<?= $_SESSION['myForm']['citta']; ?>" tabindex="3"/> <label for="titolo">titolo opera</label> <input name="titolo" id="titolo" type="text" value="<?= $_SESSION['myForm']['titolo']; ?>" tabindex="4"/> <label for="descrizione">breve descrizione dell'opera</span></label> <textarea name="descrizione" id="descrizione" cols="45" rows="7" tabindex="5"/><?= $_SESSION['myForm']['descrizione']; ?></textarea> <label for="scheda">scheda tecnica</label> <textarea name="scheda" id="scheda" rows="7" cols="45" tabindex="6"><?= $_SESSION['myForm']['scheda']; ?></textarea> <label for="curriculum">breve curriculum</label> <textarea name="curriculum" id="curriculum" rows="7" cols="45" tabindex="7"><?= $_SESSION['myForm']['curriculum']; ?></textarea> <label for="allegato">carica immagine della tua opera e la liberatoria firmata che trovi nel bando (<a class="black" href="02_01.html">qui</a>)<br /> <span class="grey">(sono ammessi solo file .zip<br />o .rar, max 3mb)</span></label> <input name="allegato" id="allegato" type="file" tabindex="8"> <input class="pulsante" type="submit" name="submit" id="submit" value="INVIA" tabindex="9"/> <input type="hidden" name="submitted" value="true" /> </form> <?php } // enquiry form validation function process_form() { // Read POST request params into global vars // FILL IN YOUR EMAIL $to = "indirizzoalqualearriverà@mail dot it"; $subject = 'nuovo iscritto al contest'; $nome = trim($_POST['nome']); $email = trim($_POST['email']); $citta = trim($_POST['citta']); $titolo = trim($_POST['titolo']); $descrizione = trim($_POST['descrizione']); $scheda = trim($_POST['scheda']); $curriculum = trim($_POST['curriculum']); // Require a file to be attached: false = Do not allow attachments true = allow only 1 file to be attached $requirefile="true"; // Allowed file types. add file extensions WITHOUT the dot. $allowtypes=array("zip", "rar"); // Require a file to be attached: false = Do not allow attachments true = allow only 1 file to be attached $requirefile="true"; // Maximum file size for attachments in KB NOT Bytes for simplicity. MAKE SURE your php.ini can handel it, // post_max_size, upload_max_filesize, file_uploads, max_execution_time! // 2048kb = 2MB, 1024kb = 1MB, 512kb = 1/2MB etc.. $max_file_size="3072"; $max_execution_time="360"; // Thank you message $thanksmessage="Grazie per aver partecipato! Riceverai a breve la nostra conferma di avvenuta ricezione del materiale. In caso contrario, mandaci una mail. <hr />"; $errors = array(); //Initialize error array //checks for a nome if (empty($_POST['nome']) ) { $errors[]='Hai dimenticato di inserire il tuo nome o il nome del gruppo.'; } //checks for an email if (empty($_POST['email']) ) { $errors[]='Hai dimenticato di inserire il tuo indirizzo e-mail.<hr />'; } else { if (!eregi ('^[[:alnum:]][a-z0-9_\.\-]*@[a-z0-9\.\-]+\.[a-z]{2,4}$', stripslashes(trim($_POST['email'])))) { $errors[]='Per favore, inserisci un indirizzo mail valido.'; } // if eregi } // if empty email //checks for a citta if (empty($_POST['citta']) ) { $errors[]='Hai dimenticato di inserire la tua città di provenienza.'; } //checks for a titolo if (empty($_POST['titolo']) ) { $errors[]='Hai dimenticato di inserire il titolo della tua opera.'; } //checks for a descrizione if (empty($_POST['descrizione']) ) { $errors[]='Hai dimenticato di inserire una descrizione della tua opera.'; } //checks for a scheda if (empty($_POST['scheda']) ) { $errors[]='Hai dimenticato di inserire una scheda della tua opera.'; } //checks for a curriculum if (empty($_POST['curriculum']) ) { $errors[]='Hai dimenticato di inserire il tuo curriculum.'; } // checks for required file // htt://amiworks.co.in/talk/handling-file-uploads-in-php/ if($requirefile=="true") { if($_FILES['allegato']['error']==4) { $errors[]='Hai dimenticato di allegare la tua opera.'; } } //checks attachment file // checks that we have a file if((!empty($_FILES["allegato"])) && ($_FILES['allegato']['error'] == 0)) { // basename -- Returns filename component of path $filename = basename($_FILES['allegato']['nome']); $ext = substr($filename, strrpos($filename, '.') + 1); $filesize=$_FILES['allegato']; $max_bytes=$max_file_size*1024; if($filesize > $max_bytes) { $errors[]= "Il tuo file è troppo grande. La dimensione max consentita è di 3mb!"; } } // if !empty FILES if (empty($errors)) { //If everything is OK // send an email // Obtain file upload vars $fileatt = $_FILES['allegato']['tmp_name']; $fileatt_type = $_FILES['allegato']['type']; $fileatt_name = $_FILES['allegato']['name']; // Headers $headers = "From: $emailfrom"; // create a boundary string. It must be unique $semi_rand = md5(time()); $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; // Add the headers for a file attachment $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; // Add a multipart boundary above the plain message $message ="This is a multi-part message in MIME format.\n\n"; $message.="--{$mime_boundary}\n"; $message.="Content-Type: text/plain; charset=\"iso-8859-1\"\n"; $message.="Content-Transfer-Encoding: 7bit\n\n"; $message.="Da: ".$nome."\n"; $message.="E-mail: ".$email."\n"; $message.="Città: ".$citta."\n"; $message.="Titolo opera: ".$titolo."\n"; $message.="Descrizione: ".$descrizione."\n"; $message.="Scheda tecnica: ".$scheda."\n"; $message.="Curriculum: ".$curriculum."\n\n"; if (is_uploaded_file($fileatt)) { // Read the file to be attached ('rb' = read binary) $file = fopen($fileatt,'rb'); $data = fread($file,filesize($fileatt)); fclose($file); // Base64 encode the file data $data = chunk_split(base64_encode($data)); // Add file attachment to the message $message .= "--{$mime_boundary}\n" . "Content-Type: {$fileatt_type};\n" . " name=\"{$fileatt_name}\"\n" . //"Content-Disposition: attachment;\n" . //" filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; } // Send the completed message $envs = array("HTTP_USER_AGENT", "REMOTE_ADDR", "REMOTE_HOST"); foreach ($envs as $env) $message .= "$env: $_SERVER[$env]\n"; if(!mail($to,$subject,$message,$headers)) { exit("Spiacenti, ma non siamo riusciti a spedire la tua candidatura. Per favore, riprova o spediscici il tutto via mail, segnalandoci il problema.\n"); } else { echo '<div id="formfeedback"><h3>Grazie!</h3><p>'. $thanksmessage .'</p></div>'; unset($_SESSION['myForm']); print_form(); } // end of if !mail } else { //report the errors echo '<div id="formfeedback"><h3>Errore!</h3><p>Si sono riscontrati i seguenti errori:<br />'; foreach ($errors as $msg) { //prints each error echo " - $msg<br />\n"; } // end of foreach echo '</p><p>Riprova</p><hr /><p></p></div>'; print_form(); } //end of if(empty($errors)) } // end of process_form() ?>
Altra cosa, per la limitazione del peso, vorrei far sì che l'annuncio del file troppo pesante compaia subito appena si tenta di caricare il file, e non una volta a file caricato...
Chiedo troppo?
-
problemi jquery toggle+header fisso
Buonasera a tutti!
Premettendo che sono alle prime armi, quindi perdonatemi gli eventuali strafalcioni e assurdità che posso scrivere..Ho un problema con un sito: ho un menu orizzontale (nell'header) formato da tre voci cliccando su ognuna delle quali si apre al di sotto, scorrendo a cascata, una specie di sottopagina alta circa un 200px con ulteriori info; aprendosi questa "sottopagina" mi scorre in giù anche tutto il resto del sito..ho ottenuto il tutto con il toggle di jquery.
Ora...vorrei che il resto della pagina (quindi tutto quello sotto l'header, piuttosto lunga) andasse sotto l'header quando si muove la toolbar del browser, ma che al tempo stesso, se io volessi aprire una delle sottopagine dal menu nell'header con il toggle, questa sottopagina non andasse sopra al contenuto della pagina, ma la facesse scorrere in giù
Spero sia chiaro..nel frattempo se non è chiaro, provo a cercare un esempio...
Grazie