ImEmailForm_Name.php
Autor: Roberto B.
Besucht 1524,
Followers 1,
Geteilt 0
Salve,
vorrei sapere perchè il nome dei vari form imEmaiForm_Name.php creati assume nella parte Name un codice random ogni volta che si salva un progetto (e se si può evitare).
Lavorando alla creazione di un sito ho la necessità di personalizzare i form di invio e-mail, inserendo dei dati che ricavo da un database, a seconda dell'utente, cosa che faccio modificando con html editor i vari imEmailForm_Name.php e sostituendoli a quelli caricati nel server (a ogni modifica pubblicando il sito vado a sostituire quelli nel server con quelli che contengono le modifiche) . Solo che ogni volta il nome del imEmailForm cambia e devo aprirli tutti per capire quale file pubblicato va sostituito con il corrispondente che ha le modifiche.
Grazie
Gepostet am
forse se spieghi meglio cosa intendi per "personalizzare i form di invio e-mail, inserendo dei dati che ricavo da un database, a seconda dell'utente" qualcuno potrebbe trovare il modo di fare tutto da programma, tramite codici esterni, senza tutto quel lavoro che fai ogni volta.....
Autor
Grazie Mirko, ti posto un piccolo esempio:
ImEmailForm originale:
<?php
if(substr(basename($_SERVER['PHP_SELF']), 0, 11) == "imEmailForm") {
include '../res/x5engine.php';
$form = new ImForm();
$form->setField('Scegli una delle seguenti opzioni', $_POST['imObjectForm_4_1'], '', false);
$form->setField('', $_POST['imObjectForm_4_2'], '', true);
$form->setField('Codice 1', $_POST['Codice1'], 'Codice1', false);
$form->setField('Quantità', $_POST['Qty1'], 'Qty1', false);
$form->setField('Codice 2', $_POST['Codice2'], 'Codice2', false);
$form->setField('Quantità', $_POST['Qty2'], 'Qty2', false);
$form->setField('Codice 3', $_POST['Codice3'], 'Codice3', false);
$form->setField('Quantità', $_POST['Qty3'], 'Qty3', false);
$form->setField('Codice 4', $_POST['Codice4'], 'Codice4', false);
$form->setField('Quantità', $_POST['Qty4'], 'Qty4', false);
$form->setField('Codice 5', $_POST['Codice5'], 'Codice5', false);
$form->setField('Quantità', $_POST['Qty5'], 'Qty5', false);
$form->setField('Note: se vuoi specificare qualcosa (max. 1000 caratteri)', $_POST['NoteOrdine'], 'NoteOrdine', false);
$form->setField('', $_POST['imObjectForm_4_15'], '', true);
$form->setField('Indirizzo e-mail alternativo', $_POST['imObjectForm_4_17'], '', false);
$form->setField('Nr. Telefono alternativo', $_POST['imObjectForm_4_18'], '', false);
$form->setField('', $_POST['imObjectForm_4_19'], '', true);
if(@$_POST['action'] != 'check_answer') {
if(!isset($_POST['imJsCheck']) || $_POST['imJsCheck'] != 'jsactive' || (isset($_POST['imSpProt']) && $_POST['imSpProt'] != ""))
die(imPrintJsError());
$form->mailToOwner('***', '***', 'Richiesta da utente registrato di CoseKarine', 'Ti è stata inviata la seguente richiesta di informazioni', true);
@header('Location: ../conferma_operazione_eseguita.html');
exit();
} else {
echo $form->checkAnswer(@$_POST['id'], @$_POST['answer']) ? 1 : 0;
}
}
// End of file
imEmailForm come lo modifico io:
<?php
session_start();
$_Nome = $_SESSION['username'];
$_TelFisso= $_SESSION['TelFisso'];
$_TelCell=$_SESSION['TelCell'];
$_EmailUtente= $_SESSION['EmailUtente'];
$_Testo_Messaggio = "Ti è stata inviata la seguente richiesta di informazioni da:
$_Nome
$_TelFisso
$_TelCell
$_EmailUtente";
if(substr(basename($_SERVER['PHP_SELF']), 0, 11) == "imEmailForm") {
include '../res/x5engine.php';
$form = new ImForm();
$form->setField('Scegli una delle seguenti opzioni', $_POST['imObjectForm_4_1'], '', false);
$form->setField('', $_POST['imObjectForm_4_2'], '', true);
$form->setField('Codice 1', $_POST['Codice1'], 'Codice1', false);
$form->setField('Quantità', $_POST['Qty1'], 'Qty1', false);
$form->setField('Codice 2', $_POST['Codice2'], 'Codice2', false);
$form->setField('Quantità', $_POST['Qty2'], 'Qty2', false);
$form->setField('Codice 3', $_POST['Codice3'], 'Codice3', false);
$form->setField('Quantità', $_POST['Qty3'], 'Qty3', false);
$form->setField('Codice 4', $_POST['Codice4'], 'Codice4', false);
$form->setField('Quantità', $_POST['Qty4'], 'Qty4', false);
$form->setField('Codice 5', $_POST['Codice5'], 'Codice5', false);
$form->setField('Quantità', $_POST['Qty5'], 'Qty5', false);
$form->setField('Note: se vuoi specificare qualcosa (max. 1000 caratteri)', $_POST['NoteOrdine'], 'NoteOrdine', false);
$form->setField('', $_POST['imObjectForm_4_15'], '', true);
$form->setField('Indirizzo e-mail alternativo', $_POST['imObjectForm_4_17'], '', false);
$form->setField('Nr. Telefono alternativo', $_POST['imObjectForm_4_18'], '', false);
$form->setField('', $_POST['imObjectForm_4_19'], '', true);
if(@$_POST['action'] != 'check_answer') {
if(!isset($_POST['imJsCheck']) || $_POST['imJsCheck'] != 'jsactive' || (isset($_POST['imSpProt']) && $_POST['imSpProt'] != ""))
die(imPrintJsError());
$form->mailToOwner('***', '***', 'Richiesta da utente registrato di CoseKarine', $_Testo_Messaggio, true);
@header('Location: ../conferma_operazione_eseguita.html');
exit();
} else {
echo $form->checkAnswer(@$_POST['id'], @$_POST['answer']) ? 1 : 0;
}
}
// End of file
Se qualcuno mi sa dire come modificare il modulo senza editare il file php lo ringrazio fin d'ora.
X
non ti ho chiesto il codice, ma cosa vorresti ottenere dopo la modifica...
... io non ho il programma e non posso provare, e per me sarebbe utile vedere il LINK di un semplice esempio, con form_mail funzionante...
... comunque si potrebbe cercare di dirottare l'azione del pulsante invio tramite jQuery, ... per esempio basterebbe provare con questo codice in HEAD:
<script> $(document).ready(function() {$("#imObjectForm_1").attr("action","https://www.google.it/"); }); </script>
... dove al posto di "1" ...andrebbe il vero numero dell'oggetto presente nella pagina...
... dovrebbe aprirsi GOOGLE, e se funziona, tutto il resto vien da se, ...cioè indirizzare al relativo file PHP ovviamente da allegare al progetto...
.
Autor
Provo a spiegare meglio.
Io uso WebsiteX5 per creare un sito web; in alcune pagine do la possibilità agli utenti di inviare dati, caricandoli su un database o inviandoli per e-mail. Nella pagina del sito uso l'oggetto Modulo invio E-mail messo a disposizione da WebsiteX5, che nel caso di invio dati permette di creare se si vuole un messaggio che compare nella mail inviata automaticamente in risposta all'utente.
Però l'oggetto Modulo invio E-mail permette di creare dei messaggi solo di testo, fissi; io invece voglio che contengano parti variabili, come ad esempio il nome e cognome dell'utente che si è loggato e che ricavo da un database.
Nessun problema nel far questo; WebsiteX5 crea dei file .php in una directory imemail che contengono il codice per effettuare l'invio con anche il messaggio etc ... modificandoli come nell'esempio che ho postato in precedenza tutto funziona.
Sostituisco allora al file imEmailform generato da WebsiteX5 quello da me modificato (chiamiamolo imEmailForm_mio.php) e tutto è OK.
Dove sta il problema? ciascun file nella directory imemail ha un nome ... random, ad esempio imEmailForm_6z1ej820.php generato da WebsiteX5 al momento della creazione. La prima volta che carico il sito sul server ho questo file, ok lo sostituisco con imEmailForm_mio.php rinominandolo ovviamente con lo stesso nome imEmailForm_6z1ej820.php (perchè altrimenti non funziona il sito).
Se però faccio una qualsiasi modifica al mio sito e carico l'aggiornamento sul server, sia che la modifica riguardi la pagina che contiene l'oggetto Modulo invio E-mail sia che no, viene generato un nuovo file, ad es. imEmailForm_ave2eu9b.php identico al precedente, senza ovviamente le modifiche che mi interessano.
Ora perchè tutto funzioni come voglio io, devo sostituire il file imEmailForm_ave2eu9b.php generato da WebsiteX5 con imEmailForm_mio.php che va rinominato in imEmailForm_ave2eu9b.php .
6 di questi moduli ... l'operazione va fatta sei volte, ma siccome il nome non è parlante ... devo aprirli con editor html uno a uno per capire di che modulo si tratta e sostituirlo con il mio corrispondente modifcato.
Alla fine (e vi ringrazio per la pazienza di aver letto fino a qui) la domanda in sè è semplice: è possibile fare in modo che WebsiteX5 non generi ogni volta che si salva un file php nuovo con nome random?
Probabilmente si deve modificare qualcosa in x5engine.php ... ma vorrei evitare di addentrami in ciò.
Autor
Scusate, ho visto che manca una parte in ciò che ho postato, integrate con il testo in neretto sottolineato:
........
Ora perchè tutto funzioni come voglio io, devo sostituire il file imEmailForm_ave2eu9b.php generato da WebsiteX5 con imEmailForm_mio.php che va rinominato in imEmailForm_ave2eu9b.php .
Nel mio sito uso 6 di questi moduli ... l'operazione va fatta sei volte, ma siccome il nome non è parlante ... devo aprirli con editor .......
... se hai già qualcosa online , metti il link , è più semplice vedendolo , per poterti aiutare ...
con il formmail da te modificato ...
è probabile che il formmail si possa integrare coi dati che ti servono senza dover post-editare ogni volta ...
Autor
Ok, online al seguente indirizzo:
http://cosekarine.com/Professionale/index.html
rovate il sito (ancora in fase di completamento).
Comunque se entrate nell'area riservata con l'utente fake: Rubino e password Rubino
e andate in gestione account vedete un esempio di modulo imemail che ho modificato per gestire il database degli utenti, potete usarlo per completare con dati vostri per provare.
Il fatto è che la prossima volta che carico un aggiornamento del sito, websitex5 genera un nuovo modulo (ovviamente senza le mie modifiche) e per riavere la funzionalità che desidero devo sostituirlo con il mio (ovviamente rinominato come quello appena generato da websiteX5). Questo è quello che vorrei evitare.
Autor
Scusate, dimenticavo, selezionate la bandiera italiana, quello in inglese non ha le funzionalità descritte, come detto il sito lo sto completando
La domanda sorge spontanea: visto che hai modificato il file .php che genera WS, perché non usi l'Oggetto Codice HTML per scrivere il tuo form?
Copi il codice HTML del form generato da WS e lo incolli in un Oggetto Codice HTML, apportando le dovute modifiche.
Infine, hai provato il suggerimento di KolAsim? Dovrebbe funzionare.
Autor
Grazie lemonsong, proverò il tuo primo suggerimento.
Autor
OK, dopo un pò di giorni ho potuto lavorarci e facendo come suggerito da lemonsong (primo suggerimento) ho risolto. Resto con la domanda irrisolta perchè WS5 ad ogni salvataggio generi dei file imemailform con nomi diversi random ... nella cartella imemail del server questi si aggiungono ai precedenti e dopo un pò di aggiornamenti questa cartella è piena di file con nomi diversi e uno copia dell'altro ... magari da prendere in considerazione la cosa per un prossimo aggiornamento di WS5.