PDA

View Full Version : Problema con form


Leopardi91
07-07-2009, 12:15
Ciao ragazzi.
Ho un problema con un form. Vi posto il codice e poi vi spiego.
<form name="ordini" method="GET" action="invia.php">
<input name="Invia" type="submit" value="Invia" style="position:absolute;left:352px;top:1151px;z-index:15">
<input name="Recapito telefonico" type="text" style="position:absolute;width:142px;left:596px;top:446px;z-index:16">
<input name="Ragione sociale" type="text" style="position:absolute;width:294px;left:446px;top:282px;z-index:17">
<input name="Via" type="text" style="position:absolute;width:253px;left:485px;top:373px;z-index:18">
<input name="P.IVA o CF" type="text" style="position:absolute;width:221px;left:518px;top:322px;z-index:19">
<input name="CAP" type="text" style="position:absolute;width:84px;left:485px;top:415px;z-index:20">
<input name="Città" type="text" style="position:absolute;width:253px;left:485px;top:394px;z-index:21">
<input name="Persona di riferimento" type="text" style="position:absolute;width:125px;left:613px;top:480px;z-index:22">
<input name="Cancella" type="reset" value="Cancella" style="position:absolute;left:412px;top:1151px;z-index:23">
<input name="N° Postepay" type="text" style="position:absolute;width:133px;left:127px;top:440px;z-index:24">
<input name="Intestata a" type="text" style="position:absolute;width:242px;left:127px;top:460px;z-index:25">
<input name="Data Ordine" type="text" style="position:absolute;width:125px;left:199px;top:622px;z-index:29">
<input name="Consegna Richiesta" type="text" style="position:absolute;width:125px;left:515px;top:622px;z-index:30">
<input name="Codice Cliente" type="text" style="position:absolute;width:125px;left:140px;top:548px;z-index:31">
<input name="Progressivo d'ordine" type="text" style="position:absolute;width:125px;left:462px;top:548px;z-index:33">
</form>
Allora questo è il form che una volta compilato, viene inviato alla mia mail tramite questo php:
<?php
$mail = "leopardi91@hotmail.it";
$oggetto = "Ordine";
$testo = "Ragione sociale: ".$_GET['Ragione sociale'];
$testo .= "\n P.IVA o CF: ".$_GET['P.IVA o CF'];
$testo .= "\n Via: ".$_GET['Via'];
$testo .= "\n Città: ".$_GET['Città'];
$testo .= "\n CAP: ".$_GET['CAP'];
$testo .= "\n Recapito telefonico: ".$_GET['Recapito telefonico'];
$testo .= "\n Persona di riferimento: ".$_GET['Persona di riferimento'];
$testo .= "\n N° Postepay: ".$_GET['N° Postepay'];
$testo .= "\n Intestata a: ".$_GET['Intestata a'];
$testo .= "\n Codice Cliente: ".$_GET['Codice Cliente'];
$testo .= "\n Progressivo d'ordine: ".$_GET['Progressivo di ordine'];
$testo .= "\n Data Ordine: ".$_GET['Data Ordine'];
$testo .= "\n Consegna Richiesta: ".$_GET['Consegna Richiesta'];
if(mail($mail,$oggetto,$testo))
{
echo ("Il messaggio è stato inviato con successo ");
}
else
{
echo ("Errore durante l'invio del messaggio");
}
?>
<p><a href="http://bfh.altervista.org/ordini.html">Torna Indietro</a></p>
Fin qui tutto ok solo che alla mia mail arrivano tutti i campi, ma solamente tre compilati, e sono
$testo .= "\n Via: ".$_GET['Via'];
$testo .= "\n Città: ".$_GET['Città'];
$testo .= "\n CAP: ".$_GET['CAP'];
Pensando che non potessi usare i nomi dei campi con spazi o che magari fossero lunghi o provato a cambiare i nomi in lettere ma niente...
Ecco ci sto impazzendo da 5 giorni e non riesco a venirne a capo...
Grazie mille per qualsiasi informazione...
CIAO!!!!!!!!

CwNd
07-07-2009, 13:43
Ecco ci sto impazzendo da 5 giorni e non riesco a venirne a capo...
Grazie mille per qualsiasi informazione...


Prova a mettere:


print_r($_GET);


E vedrai effettivamente come è stato popolato il tuo $_GET, magari riesci a capire se è un problema di indici :)
Comunque direi che è meglio evitare spazi e caratteri speciali, inoltre io per così tanti dati userei il metodo POST piuttosto che GET, anche perchè quest'ultimo sicuramente ha delle limitazioni sulla lunghezza :)

Leopardi91
07-07-2009, 13:55
Innanzitutto grazie mille!!
Allora al posto dell' echo ho messo ciò che mi hai detto e mi ha visualizzato questo:
Array ( [Invia] => Invia [Recapito_telefonico] => Prova [Ragione_sociale] => Prova [Via] => Prova [P_IVA_o_CF] => Prova [CAP] => Prova [Città] => Prova [Persona_di_riferimento] => Prova [N°_Postepay] => Prova [Intestata_a] => Prova [Data_Ordine] => Prova [Consegna_Richiesta] => Prova [Codice_Cliente] => Prova [Progressivo_d'ordine] => Prova )
Ho messo in tutti i campi prova e qui mi sono stati restituiti ma alla mail sempre il solito problema...:mc:
Attendo con ansia un vostro aiuto :D
Grazie!!!

Modifico per dire che fa la stessa cosa anche con il metodo POST.

CwNd
07-07-2009, 13:59
Come puoi vedere dal print_r, al posto degli spazi negli indici devi mettere l'undescore (_).

Immagino che se prima del codice metti un

error_reporting(E_ALL);


Ti darà un sacco di errore tipo "undefined index"..

Ciao!

Leopardi91
07-07-2009, 14:07
NON SO COME RINGRAZIARTI!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Mi hai sollevato da una pena enorme!!!!
Ancora Grazie Mille!!