Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    97

    Recupero dati da pagina php

    Ciao a tutti!
    Sto modificando uno script (libero) che mi permetta di recuperare i dati da un form e di inviarli ad un indirizzo email specifico. Fino a qui tutto funziona. Il problema è che vorrei stampare a video, in un'altra pagina php, alcuni di questi dati. Come posso fare?

    Lo script è cosi composto:

    Form.php (qui inseriamo i vari dati)
    invia_mail (pagina che recupera i dati, invia la mail e mi reindirizza ad un'altra pagina)
    visualizza.php (pagina che dovrebbe visualizzarmi alcuni dati del form)

    Come ho già detto le prime 2 funzionano, non so cosa inserire nella terza pagina in modo da recuperare solo alcuni dati.

    Grazie
    "perchè la vita è un brivido che vola via...è tutto un'equilibrio sopra la follia!"

  2. #2
    Il problema è nel passarti i dati dall'invio della mail alla pagina di visualizzazione.

    Opzione 1) Salvi parte dei dati a database e poi li mostri.

    Opzione 2) Salvi parte dei dati in un file di testo e poi li mostri.

    Opzione 3) Salvi parte dei dati in variabili di sessione e poi li mostri.

    Esiste anche la possibilità di passarti i valori tramite Get ma ha un limite di caratteri mi pare e poi è poco sicuro.

    Queste sono solo alcune opzioni... ne esistono altre, ma dipende il tuo sistema su che tipologia di sito è, se le email le possono mandare tutti allora ti conviene la sessione.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    97
    Ciao! intanto ti ringrazio per la risposta

    Vado a specificare meglio cosa voglio fare:

    l'utente deve compilare un form, quando preme "invio" viene inviata una mail all'amministratore e, nel frattempo, vengono visualizzati a video solo alcuni dati.

    Ora, il sistema form + invio email funziona alla perfezione, non so però come recuperare alcuni di questi dati e mostrarli in una terza pagina. Credo che sia più facile farlo che spiegarlo :P ma ancora non sono riuscito a trovare una soluzione.

    Se necessario posso postare i codici.

    Grazie
    "perchè la vita è un brivido che vola via...è tutto un'equilibrio sopra la follia!"

  4. #4
    Non è necessario che sposti la persona ad una terza pagina.

    Dopo l'invio avvenuto con successo fai che stampare nella stessa pagina che ha inviato i dati. In questo caso hai ancora tutti i dati nei $_POST

  5. #5
    posta il codice e ti aiuto con piacere...

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    97
    Allora, vi posto i vari codici:

    form.php
    codice:
    <table> <tr> <td> <form name="prestifin" method="post" action="invia_form.php">  Nome e Cognome: </td> <td>  <input type="text" name="nome_e_cognome" size="30">
     </td> </tr> <tr> <td> Email: </td> <td>  <input type="text" name="email" size="30">
     </td> </tr> <tr> <td> Informativa sulla Privacy: </td> <td> <textarea name="infoprivacy" rows="5" cols="40">   qui puoi scrivere il tuo testo </textarea>
     </td> </tr> <tr> <td> Accetti le condizioni?:  </td> <td> Si<input type="radio" name="trattamento_dati" value="accetto">   No <input type="radio" name="trattamento_dati" value="non_accetto">
     </td> <tr> <td> Capitale finanziato:</td> <td><input type=text name=M></input> €</td>
     <tr><td>Durata del mutuo:</td><td> <select name=durata>  <option value=5>5 anni</option>  <option value=7>7 anni</option>  <option value=10>10 anni</option>  <option value=15>15 anni</option>  <option value=20>20 anni</option>  <option value=25>25 anni</option>  <option value=30>30 anni</option>  <option value=35>35 anni</option>  <option value=40>40 anni</option> </select></td>
     <tr><td>Frequenza della rata:</td><td> <select name=cadenza>  <option value=12>mensile</option>  </select></td>
      <tr><td> tasso d'interesse: </td><td><input type=text name=tasso size=1 value=6></input> %</td>
     <tr><td> <input type="submit" value="Invia" name="cccio"> </td> </tr> </table> </form>
    invia_form.php:
    codice:
    <?php //email del destinatario del modulo $destinatario = "marcellogbr@libero.it";  //nome mittente per la corretta intestazione del modulo $nome_mittente = "Prestifin Form";  //email mittente per per la corretta intestazione del modulo $email_mittente = "marcello@marcellogabrielli.it";  //oggetto dell'email $oggetto_email = "Modulo inviato dal tuo sito";  //se si vogliono rendere tutti i campi NON OBBLIGATORI impostare su "y". valori possibili: "y" e "n" $all_free = "y";  //se invece avete messo "n" inserire tra virgolette, separati da virgola, i nomi dei campi da rendere OBBLIGATORI //Esempio: $campi_req = array("telefono","via"); $campi_req = array("nome_e_cognome","cellulare");  //controllo del campo email? valori possibili: "y" e "n" $obbligo_email = "y";  //obbligare l'utente ad accettare le condizioni? valori possibili: "y" e "n" $accetta_condizioni = "y";  //url della pagina di ringraziamento $pagina_grazie = "http://marcellogabrielli.it/test77/prestifin/thanks.php";  //url della pagina errore campi vuoti $pagina_error_empty = "http://www.sito.it/campi_vuoti.htm";  //url della pagina errore email $pagina_error_email = "http://www.sito.it/errore_email.htm";  //url della pagina errore condizioni non accettate $pagina_error_condizioni = "http://www.sito.it/errore_condizioni.htm";  //orario e data $ora = date ("H:i:s");  $data = date ("d/m/Y");  //intestazione dell'email (arriva al destinatario) $corpo = " Modulo inviato il $data alle ore $ora\n Riepilogo dati:\n  ____________________________________________________________\n";  //======================= NON TOCCARE NULLA... SE NON VUOI INCASINARE QUALCOSA =======================\   ########### CODICE VARIO ###########  //variabili per rendere lo script compatibile anche con PHP 4.2 - copyright di Chris if(!isset($_SERVER) OR !$_SERVER OR !is_array($_SERVER) OR count(array_diff($_SERVER, $HTTP_SERVER_VARS))){   $_POST = &$HTTP_POST_VARS;  }  //prendo il numero IP if(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){ 	 	if ($_SERVER["HTTP_X_FORWARDED_FOR"] == "") {  $ipnumb = getenv("REMOTE_ADDR");  		}else {  $ipnumb = getenv("HTTP_X_FORWARDED_FOR");  			}  		} else {  $ipnumb = getenv("REMOTE_ADDR"); 		} ###################################   ########### CONTROLLO DEI CAMPI ########### $control_campi = 0;  if($all_free != "y"){      foreach($_POST as $key => $valore){          if(in_array($key,$campi_req)){              if(trim($valore) == ""){              $control_campi++;                                                  }                                   }                              }                          } else {              $control_campi = 0;                                      }                      ########### CONTROLLO EMAIL ########### $control_email = 0;  if($obbligo_email == "y"){      if(isset($_POST['email'])){          //espressione regolare a cura dell'esimio dott. Grande Minchia - http://www.myphp.it         if(!eregi("^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9_-])+.)+[a-z]{2,6}$", $_POST['email'])){          $control_email++;                              }                          } else {          $control_email = 0;                              }                          }  ########### CONTROLLO CONDIZIONI ########### $control_condizioni = 0;  if($accetta_condizioni == "y"){      if(isset($_POST['trattamento_dati']) && $_POST['trattamento_dati'] == "accetto"){          $control_condizioni = 0;              } else {          $control_condizioni ++;              }          }  ########### VAI CON L'INVIO DELL'EMAIL ########### if($control_campi == 0){          if($control_email == 0){              if($control_condizioni == 0){  foreach($_POST as $key => $valore){  $key = ucfirst(stripslashes(trim($key))); $valore = stripslashes(trim($valore)); $key = str_replace("_"," ",$key);              if(trim($valore) == "") $valore = "Non compilato";                              $corpo .= $key .": ". $valore ."\n\n";              } 			 				$corpo .= "Numero IP: $ipnumb"."\n\n";  $corpo .= "  ____________________________________________________________ \n\n  Grazie per aver utilizzato un MG Script - Buona giornata!";       //inizio l'invio dell'email mail("$destinatario","$oggetto_email","$corpo", "From: $nome_mittente <$email_mittente>");                  header ("Location: $pagina_grazie");                                  } else {                  header ("Location: $pagina_error_condizioni");                              }                          } else {                  header ("Location: $pagina_error_email");                          }                      } else {                                       header ("Location: $pagina_error_empty");                      }  ?>
    Io vorrei che l'ultima parte del form, da "capitale finanziato" in poi, mi venga restituito in un'altra pagina, con i dati inseriti dall'utente ovviamente.

    Grazie mille
    "perchè la vita è un brivido che vola via...è tutto un'equilibrio sopra la follia!"

  7. #7
    Quando posti del codice i tag [CODE] scrivili manualmente altrimenti nn di capisce nulla!!

    Premessa: lo script che utilizzi è ben fatto ma un pò complesso. la mia soluzione non è raffinatissima ma funzionante... se poi sei bravo puoi "raffinare" tu la mia soluzione.
    Ho preferito (per semplicità) adottare le sessioni.

    Nella pagina invia_form.php dopo il tag <?php inserisci il seguente codice:

    Codice PHP:
    session_start();

    $_SESSION['messaggio']= "
                Capitale finanziario: "
    $_POST['M'] ."

                Durata del prestito: "
    $_POST['durata'] ."

                Frequesnza data: "
    $_POST['scadenza'] ." mesi

                Tasso di interesse: "
    $_POST['tasso']; 
    ATTENZIONE: prima del tag <?php non deve esserci scritto nulla nemmeno un rigo vuoto!!.

    Nella pagina thanks.php al primo rigo scrivi questo codice:
    Codice PHP:
    <?php session_start(); ?>
    e sempre in quella pagina nel punto in cui vuoi far comparire il messaggio scrivi così:
    Codice PHP:
    <?php echo $_SESSION['messaggio']; ?>

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    97
    Ti ringrazio, funziona tutto alla perfezione! Volevo chiederti, se possibile, solo un'ultima cosa: ho modificato la pagina invia_form in questo modo (ti posto solo la parte modificata, il resto del codice è invariato):

    codice:
    $capitale = $_POST["capitale"];
    $N = $_POST["durata"]*$_POST["cadenza"];
    $t = $_POST["tasso"]/(100*$_POST["cadenza"]);
    
    $T = $t + 1; 
    $n = $N - 1; 
    
    $a = array();
    $i = 0; 
    while ($i <= $n) {
    $pow = pow($T,$i);
    array_push($a,$pow);
    $i = $i + 1;
    }
    
    $somma = array_sum($a);
    $pot = pow($T,$N);
    $rata = $capitale*$pot/$somma;
    $tot = $rata*$N;
    $interessi = $tot - $capitale;
    
    //formattazione cifre
    $capitale = number_format($capitale,2,',','.');
    $rata = number_format($rata,2,',','.');
    $tot = number_format($tot,2,',','.');
    $interessi = number_format($interessi,2,',','.');
    //fine formattazione
    $freq="mensile";
    
    session_start();
    
    $_SESSION['messaggio']= "
                Capitale finanziario: ". $_POST['capitale'] ." €
    
                Durata del prestito: ". $_POST['durata'] ." anni
    
                Frequenza rata: ". $freq ."
    
                Tasso di interesse: ". $_POST['tasso'] ." %
    
    			importo della rata: ".$rata ."
    
    			numero di rate: ".$N ." rate
    
    			totale rate: ".$tot ." €
    
    			interessi: ".$interessi;
    Premettendo che la modifica funziona, quindi ho a video gli altri dati richiesti, però volevo sapere se potevo aggiungere, alla mail che viene inviata, questi nuovi dati ($rata, $N, $tot, $interessi. Se è molto complicato non fa niente, non voglio rubarti tempo

    Intanto grazie mille!
    "perchè la vita è un brivido che vola via...è tutto un'equilibrio sopra la follia!"

  9. #9
    Originariamente inviato da moncicci
    Ti ringrazio, funziona tutto alla perfezione! Volevo chiederti, se possibile, solo un'ultima cosa: ho modificato la pagina invia_form in questo modo (ti posto solo la parte modificata, il resto del codice è invariato):
    session_start(); deve essere sempre il primo output della pagina altrimenti può generare comportamenti anomali... questo è l'errore più evidente... poi non ho ben capito cosa hai modificato.

    cmq nn ti conviene mettere mano in quello script perchè è ben fatto e le tue modifiche (presumo grossolane) facendo copia e incolla da altri script possono renderlo nn funzionante

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    97
    Ciao!
    allora, innanzitutto se guardi il codice che avevo postato prima, non c'era tutta la parte che ho postato adesso prima di session_start (ho già fatto la correzione da te suggerita mettendolo all'inizio ).
    Come ho scritto prima volevo aggiungere al corpo della mail il contenuto delle seguenti variabili: $rata, $N, $tot, $interessi. Tu dici che è fattibile?

    Ciao e grazie
    "perchè la vita è un brivido che vola via...è tutto un'equilibrio sopra la follia!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.