Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* Php:visualizzare una conferma prima dell'invio di una form
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
ZapoTeX
Dio maturo
Dio maturo


Registrato: 04/06/04 17:18
Messaggi: 2627
Residenza: Universo conosciuto

MessaggioInviato: 17 Giu 2008 12:28    Oggetto: * Php:visualizzare una conferma prima dell'invio di una form Rispondi citando

Carissimi, dovrei sviluppare uno script in PHP che fa la seguente cosa:

1) Viene "chiamato" da una pagina con dentro un form riempito dall'utente
2) Mi manda una mail con le cose inserite dall'utente
3) Mostra una pagina di conferma all'utente che ha riempito il form e cliccato "Submit" e in questa pagina mostra il risultato di un banale calcolo aritmetico e di una banale concatenazione di stringhe basati su dati che l'utente ha inserito.

Se si trattasse solo di 1 e 2, non avrei dubbi e userei il Form2mail di Giuseppe Calbi, che conosco bene e che funziona alla grande. Ma il 3 mi spiazza un pochino...

La questione è: è una cosa che riesco a fare (magari a partire dal Form2mail modificandolo un po') io in un giorno di lavoro o conviene che chieda a qualcuno di farmelo? Io al momento di php non so nulla, ho solo copiencollato codice di altri e rinominato una pagina che avevo scritto da ".html" a ".php".

Ciao e grazie!
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 17 Giu 2008 15:42    Oggetto: Rispondi citando

Bhe, secondo me conviene che ti scriva tu il codice. Non mi sembra una cosa molto complessa quindi assumere qualcuno per farlo è un'esagerazione.
Se hai tempo di aspettare qualche giorno ti scrivo io due righe che fanno quello che ti serve, magari specifica un po' meglio i conti che deve fare lo script.

Saluti
Top
Profilo Invia messaggio privato
ZapoTeX
Dio maturo
Dio maturo


Registrato: 04/06/04 17:18
Messaggi: 2627
Residenza: Universo conosciuto

MessaggioInviato: 18 Giu 2008 12:28    Oggetto: Rispondi citando

Assolutamente sì, è una cosa a lungo termine... GRAZIE!

Il mio problema non sono tanto le operazioni che deve fare (trattasi di concatenare qualche stringa, che si fa con il . giusto?, e di fare una moltiplicazione), ma il passaggio dei dati dallo script php alla pagaina di conferma.

Ho provato a guardare lo script di Giuseppe Calbi e non ho capito molto, ma penso che sia fattibile modificare il codice del messaggio di conferma (quello che viene prima della pagina di conferma) in modo da riportare non solo i dati inseriti ma anche quelli calcolati.

Ovviamente se hai da suggerirmi un form2mail migliore di quello (o semplicemente più facile da modificare), sarò felice di cambiare script e seguire il tuo consiglio!

Grazie mille e a presto!
Top
Profilo Invia messaggio privato HomePage
horus
Macchinista
Macchinista


Registrato: 22/03/05 10:48
Messaggi: 2554
Residenza: Sirio e dintorni

MessaggioInviato: 19 Giu 2008 08:32    Oggetto: Rispondi citando

Sì, il punto è giusto.

Se c'è il messaggio di conferma in qualche modo lo script passa dei dati, quindi basta trovare quel punto e aggiungere quello che ti serve.

Aggiunta: dopo un primo sguardo al codice direi che devi lavorare sulla funzione getHtmlOutput che mostra in forma tabellare quali sono i dati inseriti.
Top
Profilo Invia messaggio privato
ZapoTeX
Dio maturo
Dio maturo


Registrato: 04/06/04 17:18
Messaggi: 2627
Residenza: Universo conosciuto

MessaggioInviato: 19 Giu 2008 10:58    Oggetto: Rispondi citando

Grazie, sei gentilissimo!

Mi metto subito al lavoro!
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 20 Giu 2008 01:22    Oggetto: Rispondi citando

Ciao,
ho scritto qualche riga per darti un'idea schematica di quello che hai bisogno.
Ho anche dato un'occhiata allo script che hai segnalato però seppur carino, mi sa che se sei alle prime armi farai un po' fatica a
personalizzarti il comportamento.
L'esempio che ti porto io è una semplice pagina senza ne stile ne niente che però in maniera semplice rende l'idea del processo che vuoi
implementare tu.
Lo script è commentato, se hai bisogno di aiuto scrivi qui.
Il mio script non vuole essere un generatore di form/conferma/invio mail ma un'idea di implementazione della pagina.
Codice:

<?
/**
 * Esempio di creazione di una form per spedire una mail con elaborazioni sulle vars e visualizzazione
 * del riepilogo sulla conferma.
 *
 * La pagina ha 4 comandi:
 * 1) DF: Display Form: è il comando di default e indica alla pagina di visualizzare il form.
 *         Se in querystring sono settate le vars dei campi, questi vengono riempiti.
 *         Il nuovo comanda sarà DC
 * 2) DC: Display Confirm: visualizza la conferma creando una form con campi hidden.
 *         Il comando che viene spedito alla pagina è SEND
 * 3) SEND: Invia la mail: se submmit vale Ok c'è la spedizione; se vale Annulla si ritorna a DF
 *           (Vedi i commenti dentro alla if (*)
 * 4) BYE: Notifica della spedizione.
 *   
 */

/**
 * Inizializzo le vars
 */
   $command=(isset($_REQUEST['command']) ? $_REQUEST['command'] : 'DF');
   
/**
 * Possibili colori
 * Se usi altre tendine o serie di radio/check ti consiglio di crearti dei vettori come questo
 */
   $colori = array
   (
      'Rosso',
      'Verde',
      'Blu'
   );
   
   $from=(isset($_REQUEST['from']) ? $_REQUEST['from'] : '');
   $nome=(isset($_REQUEST['nome']) ? $_REQUEST['nome'] : '');
   $cognome=(isset($_REQUEST['cognome']) ? $_REQUEST['cognome'] : '');
   $eta=(isset($_REQUEST['eta']) ? $_REQUEST['eta'] : '');
   $colore=(isset($_REQUEST['colore']) ? $_REQUEST['colore'] : 0);
   
/**
 * Questa if decide se si deve spedire la mail oppure annullare l'invio.
 * Ho fatto questa scelta per non giocare con js e barbatrucchi vari; poco elegante me semplice.
 * Si arriva qui se si clicca su ok o su annulla (nel caso di annulla solo se si
 * sta visualizzando la pagina di conferma)
 */
   if (isset($_REQUEST['submit']))   // (*)
   {
   // ho un ok alla conferma
      if ($_REQUEST['submit']=='Ok')
      {
      /*
       * e effettivamente voglio spedire.
       * In teoria se entro nella precedente if vuol dire che voglio spedire
       * ma magari tu vuoi poter gestire altre possibilità;
       * in questo modo è abbastanza semplice aggiungere comandi che fanno altro
       * o che decidono a chi inviare.
       */
         if ($command=='SEND')
         {
            $oggetto='Oggetto della mail';
            $destinatario='xxx@xxx.xxx';   // Setta qui il tuo indirizzo
            
         // qui puoi sbizzarrirti a creare il testo della mail
            $testo
               = $nome . "\n"
               . $cognome . "\n"
               . ($eta*$colore);
         // è importante settare questo header nella mail
            $mailHeader
               = "From: <" . $from . ">";
               
            mail($destinatario,$oggetto,$testo,$mailHeader);
            
         // la prossima operazione è notificare l'invio
            $command='BYE';
         }
      }
      elseif ($_REQUEST['submit']=='Annulla')  // se non confermo
      {
      // riporto l'operazione a DF
         $command='DF';
      }
   }
   
/**
 * Visualizza il form
 * sia nella parte di pagina che in queste due funzioni
 * dovresti impostare lo stile corretto degli oggetti.
 * Se vuoi intabellare invece di usare i <p> basta che modifichi le due funzioni.
 *
 * @return String: form da visualizzare
 */
   function displayForm()
   {
      global $from,$nome,$cognome,$eta,$colori,$colore;
      
      $html
         = '<p>La tua mail: <input type="text" name="from" value="' . $from . '" /></p>' . "\n"
         . '<p>Il tuo nome: <input type="text" name="nome" value="' . $nome . '" /></p>' . "\n"
         . '<p>Il tuo cognome: <input type="text" name="cognome" value="' . $cognome . '" /></p>' . "\n"
         . '<p>La tua et&agrave;: <input type="text" name="eta" value="' . $eta . '" /></p>' . "\n"
         . '<p>Il tuo colore: '
         . '<select name="colore">' . "\n";
      
   // con i vettori è facile creare le tendine   
      foreach ($colori as $key => $value)
      {
         $html.='<option value="' . $key . '"' . ($key==$colore ? ' selected' : '') . '>' . $value . '</option>' . "\n";
      }
         
      $html
         .='</select>' . "\n"
         . '</p>' . "\n";
      
      return $html;
   }
   
/**
 * Visualizza la conferma
 * Qui devi fare le modifiche che riguardano i conti e le concatenazioni
 * di cui parlavi ed eventualmente creare altri hidden così poi non devi duplicare il codice
 * nella if (*) quando crei la mail
 *
 * @return String: il testo di conferma
 */
   function displayConfirm()
   {
      global $from,$nome,$cognome,$eta,$colori,$colore;
      
      $html
         = '<input type="hidden" name="from" value="' . $from . '" />' . "\n"
         . '<input type="hidden" name="nome" value="' . $nome . '" />' . "\n"
         . '<input type="hidden" name="cognome" value="' . $cognome . '" />' . "\n"
         . '<input type="hidden" name="eta" value="' . $eta . '" />' . "\n"
         . '<input type="hidden" name="colore" value="' . $colore . '" />' . "\n"
         
         . '<p>La tua mail: ' . $from . '</p>' . "\n"
         . '<p>Il tuo nome: ' . $nome . '</p>' . "\n"
         . '<p>Il tuo cognome: ' . $cognome . '</p>' . "\n"
         . '<p>Et&agrave; X colore: ' . ($eta*$colore) . '</p>' . "\n";
         
      return $html;
   }
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <title>Esempio di mail</title>
</head>
<body>
<!--
   Qui visualizzo la form.
   Ovviamente i campi devono essere coerenti con le var settate all'inizio.
   In questo punto vanno le modifiche che riguardano la dispozione della form e quelle dei
   campi della stessa.
-->
<?
   $titolo='';
   $display='';
   $newCommand='';
   $cancel='';
/**
 * In base al comando decido che cosa fare e setto il comando successivo
 */
   switch($command)
   {
      case 'DF':
         $titolo='Operazione: Visualizzazione della form';
         $display=displayForm();
         $newCommand='DC';
         $cancel='<input type="reset" name="cancel" value="Annulla" />';
         break;
      case 'DC':
         $titolo='Operazione: Visualizzazione della conferma';
         $display=displayConfirm();
         $newCommand='SEND';
         $cancel='<input type="submit" name="submit" value="Annulla" />';
         break;
      case 'BYE':
         $titolo='Notifica invio';
         $display='';
         $newCommand='';
         $cancel='';
   }
?>
   <p><? print $titolo; ?></p>
   <form name="frm" method="get" action="<? print $_SERVER['PHP_SELF']; ?>">
      <input type="hidden" name="command" value="<? print $newCommand; ?>" />
      <? print $display; ?>
      <? if ($command!='BYE') { ?>
         <input type="submit" name="submit" value="Ok" />
         &nbsp;
         <? print $cancel; ?>
      <? } ?>
   </form>
</body>
</html>

Spero di esserti stato utile.
Con questo codice volevo darti un'idea di come funziona la cosa, non è scritto in maniera elegante come il generatore che hai proposto
ma qui non tiro in ballo cose strane ed un po' esoteriche per cui non dovresti faticare a ravanarci dentro.

Adesso vado a nanna...
Top
Profilo Invia messaggio privato
ZapoTeX
Dio maturo
Dio maturo


Registrato: 04/06/04 17:18
Messaggi: 2627
Residenza: Universo conosciuto

MessaggioInviato: 20 Giu 2008 16:26    Oggetto: Rispondi citando

Quando vedo delle cose così MI VIENE DA RIFLETTERE SULLA NATURA UMANA... Se al mondo ci sono persone così, come è possibile che vada tutto a schifio?

Davvero, non so proprio che dire, sei stato fantastico! Non solo hai risolto il problema, ma hai anche inserito degli utilissimi commenti che mi danno una lezioncina di php elementare... E' incredibile quanto aiuto si può trovare se si incontra la persona giusta!

Sper tu non ci abbia perso troppo tempo! Grazie, sei stato davvero FANTASTICO! Complimenti per la tua bravura e la tua disponibilità! Grazie di cuore e buona giornata!

Ciao!
Top
Profilo Invia messaggio privato HomePage
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11802
Residenza: Tokelau

MessaggioInviato: 20 Giu 2008 16:28    Oggetto: Rispondi citando

ZapoTeX ha scritto:
Se al mondo ci sono persone così, come è possibile che vada tutto a schifio?


Perchè al mondo ci sono anche persone che approfittano delle persone 'così'... e ci fanno pure dei soldi, magari... Mad
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 20 Giu 2008 16:29    Oggetto: Rispondi

E' stato un piacere!
Sono contento di aiutare qui sul forum perchè tutte le volte che qualcuno mi posta un grazie significa che ho fatto del mio meglio...
Se fosse così anche al lavoro sarebbe tutto più bello!
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi