Ciao a tutti,
Innanzitutto, vi ringrazio in anticipo, le vostre discussioni mi hanno risolto migliaia di volte i problemi di programmazione!
Devo fare una pagina HTML che gestisce una contact form e che invia mail, tramite PHPMailer lato server (requisito non cambiabile).
Era tutto funzionante, prima dell'aggiunta della richiesta di dare la possibilità, agli utenti, di inserire degli allegati alla loro contact form...
Sono molto arrugginito sulla programmazione web, quindi vi prego di perdonare grandi sviste!
questa è la form che ho fatto su html (purificata da dati maggiormente aziendali):
all'invio della submit, richiamo alcune funzioni javascript, che fanno dei controlli e, in caso di errori, fanno comparire dei div di segnalazione errore.codice HTML:<form id = 'modulo' method='post' onsubmit='return false;' enctype="multipart/form-data"> <fieldset><!--<table border="0" cellspacing="5" cellpadding="5">--><!-- padding : top, right, bottom, left style="padding:0em 0em 1em 0em;" --> <!-- TABELLA--><!-- riga dell'indirizzo mail--><div><span style="text-align:left; font-weight:bold; display:inline-block; width:150px !important;">Il tuo indirizzo e-mail</span><span style="text-align:left; font-weight:bold; display:inline-block; width:230px !important;"><input type="email" id = "email" size="30" maxlength="40" value=""></input></span><span id="notificaErroreMail" style = "display:inline-block; width:10px;"></span></div><p /> <!-- riga dell'option list--><div><span style="text-align:left; font-weight:bold; display:inline-block; width:150px !important;"> Scegliere un'opzione per richiedere</span><span style="text-align:left; font-weight:bold; display:inline-block; width:230px !important;"><select id="categoria" onchange="popola(getSelected(categoria))"><option value="01">01</option><option value="02">02</option><option value="03">03</option></select></span></div><p /> <!-- Riga del codice fiscale --><div id="codFiscaleSpan"><span style="text-align:left; font-weight:bold; display:inline-block; width:150px !important;">Codice Fiscale</span><span style = "display:inline-block; width:230px !important;"><input id="codFiscale" value = "Dato obbligatorio" onfocus="if (this.value == 'Dato obbligatorio') this.value = ''" onblur="if(this.value== '') this.value='Dato obbligatorio'"></input></span><span id="notificaErroreCF" style = "display:inline-block; width:10px;"></span></div><p /> <!-- Riga del numero di documento --><div id="numDocumentoSpan"><span style="text-align:left; font-weight:bold; display:inline-block; width:150px !important;">Numero del documento</span><span style = "display:inline-block; width:230px !important;"><input id="numDocumento" value = "Dato obbligatorio" onfocus="if (this.value == 'Dato obbligatorio') this.value = ''" onblur="if(this.value== '') this.value='Dato obbligatorio'"></input></span><span id="notificaErroreNumDoc" style = "display:inline-block; width:10px;"></span></div><p /> <!-- Riga dei dettagli della richiesta --><div><span style = "vertical-align: top; text-align:left; font-weight:bold; display:inline-block; width:150px !important;">Dettagli della tua richiesta</span><span style = "display:inline-block; width:230px !important;"><textarea id="richiesta" rows="5" cols="25"></textarea></span><span id="notificaErroreRichiesta" style = "vertical-align: top; display:inline-block; width:10px;"></span></div><p /> <!-- Riga degli allegati --><div><span style = "vertical-align: top; text-align:left; font-weight:bold; display:inline-block; width:150px !important;">Allega file:</span><span style = "display:inline-block; width:230px !important;"><input type="file" id="allegato" name="allegato" /></span></div><p /> <!-- Riga dei bottoni --><div style="text-align:center;"><input name="submit" type="submit" class="button" id="submit" value="Invia" onclick = "checkcompilazione(getSelected(categoria))"></input><input name="cancella" type="reset" class="button" value="Cancella" /></div><p /> <p><div id="notificaErrore"></div> </p><!-- FINE TABELLA --> </fieldset></form>
Se non ci sono errori, richiamo la seguente funzione javascript in questo modo:
qui, la funzione javascript che crea la form da inviarecodice:post_to_url('elabora_mail_contatti.php', { 'email':document.getElementById('email').value,'categoria':document.getElementById('categoria').value,'richiesta':document.getElementById('richiesta').value, 'allegato':document.getElementById('allegato').value}, 'post');
MA, quando da PHP provo a vedere il contenuto di $_FILES['allegato'] mi dà "Could not access file", e se provo a stampare il $_POST['allegato'] mi dà un "C:\fakepath\nomefile"codice:function post_to_url(path, params, method) { method = method || "post"; // Set method to post by default if not specified. var form = document.createElement("form"); form.setAttribute("method", method); form.setAttribute("action", path); for(var key in params) { if(params.hasOwnProperty(key)) { var hiddenField = document.createElement("input"); hiddenField.setAttribute("type", "hidden"); hiddenField.setAttribute("name", key); hiddenField.setAttribute("value", params[key]); form.appendChild(hiddenField); } } form.enctype = "multipart/form-data"; document.body.appendChild(form); form.submit(); }
Credo di sbagliare nella form, per il submit dell'allegato, ma non riesco a capire dove, per caso qualcuno di voi può aiutarmi? Grazie mille e scusate per il disturbo!

Rispondi quotando

