help - form php

joao_paulo

Nuovo Utente
18 Dic 2008
3
0
0
Ciao a tutti,

premetto di essere un principiante di php.

questo è il mio primo form, costituito da tre pagine: le prime due raccolgono i dati, mentre la terza segnala che i dati sono stati correttamente inviati all'indirizzo e-mail specificato.

Il mio problema è che i valori inseriti come input relativi alla prima pagina mi vengono restituiti nella mail finale solo con la prima stringa, ovvero se nel campo "indirizzo" scrivo "via garibaldi", nella mail leggerò
"indirizzo: via", senza garibaldi. Perchè?

Un grazie anticipato

Ecco le tre pagine del form:

1)

<form action="form_quest2.php" method="get">
Importo Richiesto (€):
<input type="text" name="importo"><br/><br/>
Nome:
<input type="text" name="nome"><br/><br/>
Cognome:
<input type="text" name="cognome"> <br/><br/>
Ragione sociale: <input type="text" name="r_sociale"><br/><br/>
Settore Attivit&agrave;:
<input type="text" name="settore"><br/><br/>
Indirizzo:
<input type="text" name="indirizzo"><br/><br/>
Cap:
<input type="text" name="cap"> <br/><br/>
E-mail:
<input type="text" name="email"><br/><br/>
Fax/Telefono:
<input type="text" name="fax"> <br/><br/>
Acconsento al trattamento dei miei dati personali secondo la <a href="" target="_blank" class="mainlinkmenu">normativa sulla privacy 30 giugno 2003, n.196 </a>
<input type="checkbox" name="check"><br/><br/>
<input type="submit" value="Vai alla seconda fase del questionario &raquo;">
</form>

2)

<FORM METHOD=POST ACTION="form_quest.php">

Pregiudizievoli:
<SELECT NAME="pregiudizievoli" >
<OPTION SELECTED>
<OPTION>Sì
<OPTION>No
</SELECT><br /> <br />
Segnalazioni di rate arretrate:
<SELECT NAME="rate" >
<OPTION SELECTED>
<OPTION>Sì
<OPTION>No
</SELECT><br /> <br />
Protesti:
<SELECT NAME="protesti" >
<OPTION SELECTED>
<OPTION>Sì
<OPTION>No
</SELECT><br /> <br />
Insolvenze:
<SELECT NAME="insolvenze" >
<OPTION SELECTED>
<OPTION>Sì
<OPTION>No
</SELECT><br /> <br />
Impegni finanziari in essere:
<SELECT NAME="impegni" >
<OPTION SELECTED>
<OPTION>Sì
<OPTION>No
</SELECT><br /> <br />
Spazio per altre comunicazioni del richiedente:<br />
<textarea rows="3" cols="40" name="segnalazioni">
</textarea>
<?php

$importo=$_GET["importo"];
$nome = urldecode($_GET["nome"]);
$cognome = urldecode($_GET["cognome"]);
$r_sociale = urldecode($_GET["r_sociale"]);
$settore = urldecode($_GET["settore"]);
$indirizzo = urldecode($_GET["indirizzo"]);
$cap = urldecode($_GET["cap"]);
$email = urldecode($_GET["email"]);
$fax = urldecode($_GET["fax"]);
$check = urldecode($_GET["check"]);
# $email = urldecode($_GET["email"]);
# ecco i campi nascosti all'interno del form
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"importo\" value=$importo>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"nome\" value=$nome>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"cognome\" value=$cognome>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"r_sociale\" value=$r_sociale>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"settore\" value=$settore>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"indirizzo\" value=$indirizzo>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"cap\" value=$cap>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"email\" value=$email>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"fax\" value=$fax>";
echo "<INPUT TYPE=\"HIDDEN\" NAME=\"check\" value=$check>";
?>
<br/><br/>
<input type="submit" value="Invia la tua domanda">
</FORM>

3)

<?php
$importo=$_POST["importo"];
$nome=$_POST["nome"];
$cognome=$_POST["cognome"];
$r_sociale=$_POST["r_sociale"];
$settore=$_POST["settore"];
$indirizzo=$_POST["indirizzo"];
$cap=$_POST["cap"];
$email=$_POST["email"];
$fax=$_POST["fax"];
$check=$_POST["check"];
$pregiudizievoli=$_POST["pregiudizievoli"];
$rate=$_POST["rate"];
$protesti=$_POST["protesti"];
$insolvenze=$_POST["insolvenze"];
$impegni=$_POST["impegni"];
$segnalazioni=$_POST["segnalazioni"];
$destinatario=".............";
$mittente="From: $email";
$oggetto="Nuova richiesta $nome $cognome";
$messaggio="Il sig. $nome $cognome richiede $importo € e ha comunicato i seguenti dati:
ragione sociale: $r_sociale
settore: $settore
indirizzo: $indirizzo
cap: $cap
email: $email
fax/telefono: $fax
privacy: $check
pregiudizievoli: $pregiudizievoli
rate arretrate: $rate
protesti: $protesti
insolvenze: $insolvenze
impegni finanziari in essere: $impegni
ulteriori comunicazioni: $segnalazioni";
mail($destinatario,$oggetto,$messaggio,$mittente);
echo "Grazie per aver inoltrato la tua richiesta, riceverai una risposta al pi&ugrave; presto.";
?>
 
ciao
garibaldi lo perdi tra la prima e la seconda pagina o tra la seconda e la terza?

spargi qualche var_dump o eco per visualizzare la variabile nei suoi passaggi
 
Ho avuto un problema simile pure io in passato, ho risolto così:

prima di inserire il valore in un input type hidden lo trasformavo con

$indirizzo = str_replace(" ", "%20", $indirizzo);
<input type="hidden" name="indirizzo" value=<?php echo "$indirizzo" ?>>


dove sostituisce %20 ad ogni spazio incontrato.

Nell'altra pagina, quella di destinazione, riconvertivo la stringa così

$indirizzo = $_POST['indirizzo'];
$indirizzo = str_replace("%20", " ", $indirizzo);


dove risistemava gli spazi al posto dei %20.

Se qualcuno ha una soluzione più raffinata ben venga :)

Ciao
 
help_form_php

Ciao,

adesso provo la soluzione di michele.

Per borgo italia: garibaldi lo perdo tra la seconda e la terza pagina...
 
ciao scusa dimenticavo
se non ho capito male (non è sempre semplice leggere gli script altrui) il tio "garibaldi" dalla prima lo trasmetti alla seconda e dalla seconda senza alcuna modifica lo ritrasmetti alla terza con gli hidden, perchè (non so se è una cavolata) non usi le sessioni?
 
Si è vero, si possono usare anche le sessioni, basta selvare in $_SESSION['indirizzo'] la stringa che ti serve.

Il corso che ti ha suggerito borgo roma è buono, rapido e semplice.
 

Discussioni simili