WebSite X5Help Center

 
Roberto B.
Roberto B.
User

ImEmailForm_Name.php  it

Auteur : Roberto B.
Visité 1202, Followers 1, Partagé 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

Posté le
12 RéPONSES - 1 UTILES - 1 CORRECT
Mirko Boschetti
Mirko Boschetti
Moderator

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.....

Lire plus
Posté le de Mirko Boschetti
Roberto B.
Roberto B.
User
Auteur

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

Lire plus
Posté le de Roberto B.
Mirko Boschetti
Mirko Boschetti
Moderator

non ti ho chiesto il codice, ma cosa vorresti ottenere dopo la modifica...

Lire plus
Posté le de Mirko Boschetti
 ‪ KolAsim ‪ ‪
 ‪ KolAsim ‪ ‪
Moderator
Meilleur utilisateur du mois FRMeilleur utilisateur du mois PL

... 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...

.

Lire plus
Posté le de  ‪ KolAsim ‪ ‪
Roberto B.
Roberto B.
User
Auteur

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ò.

Lire plus
Posté le de Roberto B.
Roberto B.
Roberto B.
User
Auteur

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 .......

Lire plus
Posté le de Roberto B.
Claudio D.
Claudio D.
Moderator
Meilleur utilisateur du mois IT

... 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 ...

Lire plus
Posté le de Claudio D.
Roberto B.
Roberto B.
User
Auteur

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.

Lire plus
Posté le de Roberto B.
Roberto B.
Roberto B.
User
Auteur

Scusate, dimenticavo, selezionate la bandiera italiana, quello in inglese non ha le funzionalità descritte, come detto il sito lo sto completando

Lire plus
Posté le de Roberto B.
 lemonsong  
 lemonsong  
User

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.

Lire plus
Posté le de  lemonsong  
Roberto B.
Roberto B.
User
Auteur

Grazie lemonsong, proverò il tuo primo suggerimento.

Lire plus
Posté le de Roberto B.
Roberto B.
Roberto B.
User
Auteur

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.

Lire plus
Posté le de Roberto B.