passaggio variabili da form dopo verifiche: tutte meno una!?!?

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
Buongiorno a tutti,
ho un problema che magari è stupido ma non riesco a capire dove sbaglio.
ho una pagina con un form, due o tre script che controllano e fanno cose a seconda di quanto viene inserito nei vari campi, dopo di che l'ultimo script manda tutte le variabili a un'altra pagina php, che recupera le variabili _POST.
Tutto normale, tranne che passano i valori di tutte le variabili tranne "posti" che mi rimane misteriosamente vuota.
Naturalmente ho controllato e ricontrollato il nome della variabile, la punteggiatura ecc...
Ecco i codici delle due pagine.
1) la pagina col form:
Codice:
<?php
session_start();


	?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Regala un corso di cucina presso teatro7 | Lab</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />


<script type="text/javascript">
<!--

var q;

function Modulo() {
	var nomecliente = document.modulone.nomecliente.value;
	var cognomecliente = document.modulone.cognomecliente.value;
	var telefono = document.modulone.telefono.value;
	var email = document.modulone.email.value;
	var pagato = document.modulone.pagato.value;
	var decimali = document.modulone.decimali.value;
	var decok = "00";
	var destinatario = document.modulone.destinatario.value;
	var cognomedestinatario = document.modulone.cognomedestinatario.value;
	var id_lezione = document.modulone.id_lezione.value;
	var posti = document.modulone.postiprenotati.value;
	

	var email_reg_exp = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/;

	if (nomecliente == "") {
		alert("Il campo NOME è obbligatorio!");
		document.modulone.nomecliente.focus();
		return false;
	}
	if (cognomecliente == "") {
		alert("Il campo COGNOME è obbligatorio!");
		document.modulone.cognomecliente.focus();
		return false;
	}

	if (pagato == "" || pagato == 0) {
		alert("Il campo IMPORTO PAGATO è obbligatorio! SE HAI INSERITO UN CODICE LEZIONE CONTROLLA CHE SIA ESATTO!");
		document.modulone.pagato.focus();
		return false;
	}

	if (isNaN(pagato)) {
		alert("Nel campo IMPORTO PAGATO devono esserci solo numeri!");
		document.modulone.pagato.focus();
		return false;
	}

	if (isNaN(decimali)) {
		alert("Nel campo dei decimali devono esserci solo numeri!");
		document.modulone.decimali.value = decok;
		document.modulone.decimali.select();
		return false;
	}
	
	if (destinatario == "") {
		alert("IDevi inserire sia il nome che il cognome del destinatario del regalo!");
		document.modulone.destinatario.focus();
		return false;
	}

	if (cognomedestinatario == "") {
		alert("Devi inserire sia il nome che il cognome del destinatario del regalo!");
		document.modulone.cognomedestinatario.focus();
		return false;
	}

	if (q) {
		posti = q;
	};

	if (email == "") {
		alert("Il campo Email è obbligatorio! Dobbiamo poterti contattare in caso di problemi...");
		document.modulone.cognomedestinatario.focus();
		return false;
	};
	
	if(email) {
		if(!email_reg_exp.test(email)) {
			alert("ATTENZIONE: La mail inserita non è corretta!");
			document.modulone.email.select();
			return false;
			}

	}
	

	document.modulone.action = "acquista_regalo.php";
	document.modulone.submit();

}
var prezzolezione;


function nposti() {
	
	q = document.modulone.postiprenotati.value;

	document.getElementById("idid").value = prezzolezione * q;
	
}

function prosegui() {
	document.getElementById("asterischi").style.display = "none";
	document.getElementById("bottone").style.display = "block";
	document.getElementById("bottcontinua").style.display = "none";
}

// QUI GESTISCO LA RICHIESTA ASINCRONA CON AJAX

var xmlhttp;

function prendiprezzo(str) {
	xmlhttp = GetXmlHttpObject();

	if (xmlhttp == null) {
		alert ("Il browser non supporta le richieste HTTP");
		return;
	}

	var url="corri.php";
	url = url+"?q="+str;
	xmlhttp.onreadystatechange=stateChanged;
	xmlhttp.open("GET",url,true);
	xmlhttp.send(null);
}

function stateChanged() {
	if (xmlhttp.readyState==4) {
		if (xmlhttp.responseText == 0) {
			alert("CONTROLLA IL CODICE DELLA LEZIONE SCELTA! probabilmente non hai inserito il codice esatto");
			document.modulone.id_lezione.focus();
			document.modulone.id_lezione.select();
			return;
		}
		document.getElementById("idid").value = xmlhttp.responseText;
		var p = document.getElementById("posticini").value;
		if (p > 1) {document.getElementById("idid").value = xmlhttp.responseText * p};
		prezzolezione = xmlhttp.responseText;

	}
}

function GetXmlHttpObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	}
	if (window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	}
	return null;
}
//-->

</script>



</head>

<body>

<div>
	<a href="../index.html"><img src="../immagini/t7logo.gif"></a>
</div>

<div id="divsinistra" class="testoPiccolo">
<p>Compila il modulo per ottenere il voucher regalo in PDF<br>
	Se preferisci, invia una mail a <a href="mailto:[email protected]?subject=Vorrei regalare un corso di cucina...">Silvia</a><br>
oppure chiamala direttamente al numero +39 366 666 4427</p>
<br>
<hr>
<br>

<div id="ciccio"></div>

<form method="post" name="modulone" target="_blank">
Nome*: <input tabindex="1" name="nomecliente" type="text" size="35" /> 
Cognome*: <input tabindex="2" name="cognomecliente" type="text" size="35" /> <br><br>
Telefono: <input tabindex="3" name="telefono" type="text" /> 
Email*: <input tabindex="4" name="email" type="text" /> <br><br>
ID Lezione regalata (OPZIONALE**): <input tabindex="5" name="id_lezione" type="text" size="4" onChange="prendiprezzo(this.value)"><br><br>
Numero posti (OPZIONALE): <input tabindex="6" id="posticini" name="postiprenotati" type="text" size="3" value="1" onBlur="nposti()"><br><br>
Importo del buono*: Euro <input tabindex="20" id="idid" name="pagato" type="text" readonly="readonly" size="4" value="80" /> , <input tabindex="21" name="decimali" type="text" readonly="readonly" size="2" value="00"><br><br>
Destinatario del regalo*: <br> 
Nome <input tabindex="7" name="destinatario" type="text" size="35" /> Cognome <input tabindex="8" name="cognomedestinatario" type="text" size="35" /> <br><br> 


<div id="bottcontinua" style="display: block">
<p align="center"><input type="button" name="continua" value=" CONTINUA " onClick="prosegui()" style="color: red;"></p>
</form>

</div>


<hr>
<br>

<div id="asterischi" name="asterischi" style="display: block">
	<p><b>* CAMPI OBBLIGATORI</b></p>
	<p><b>** Se inserisci l'ID della lezione il buono riporterà anche il nome e la data della lezione regalata</b></p>
</div>

<div id="bottone" name="bottone" style="display: none">
	<p>Se non si indica il codice della lezione si regala un buono "aperto" dell'importo di <b>80 Euro</b>, che sarà valido per tutte le lezioni 
		con un prezzo fino a <b>85 Euro</b>.<br>
		Nel caso il destinatario del regalo scelga un corso dal costo superiore, potrà integrare la parte mancante prima dell'inizio della lezione,
		direttamente alla scuola.</p>
		<p>
			Per regalare una lezione specifica, bisogna inserirne il codice, consultando l'elenco delle lezioni qui a fianco. 
		</p>

		<p>
		Controlla i dati inseriti e procedi cliccando sul bottone qui sotto.
		</p>

		<p align="center">
			<input type="button" name="capito" value=" OK, HO CAPITO " onClick="Modulo()" style="color: red;">
		</p>
</div>





</div>





<div id="divdestra">
	<iframe src="../corsi_elenco.php" width="100%" height="640px" frameborder="0"   ></iframe>

</div>


<div class="keepclear"></div>


</body>
</html>
2) la pagine che riceve (acquista_regalo.php):
Codice:
<?php
session_start();

$nomecliente = $_POST["nomecliente"];
$cognomecliente = $_POST["cognomecliente"];
$telefono = $_POST["telefono"];
$email = $_POST["email"];
$pagato = $_POST["pagato"];
$decimali = $_POST["decimali"];
$decok = $_POST["decok"];
$destinatario = $_POST["destinatario"];
$cognomedestinatario = $_POST["cognomedestinatario"];
$id_lezione = $_POST["id_lezione"];
$posti = $_POST["posti"];

$_SESSION['nomecliente'] = $nomecliente;
$_SESSION['cognomecliente'] = $cognomecliente;
$_SESSION['telefono'] = $telefono;
$_SESSION['email'] = $email;
$_SESSION['pagato'] = $pagato;
$_SESSION['decimali'] = $decimali;
$_SESSION['destinatario'] = $destinatario;
$_SESSION['cognomedestinatario'] = $cognomedestinatario;
$_SESSION['id_lezione'] = $id_lezione;
$_SESSION['posti'] = $posti;




?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Regala un corso di cucina presso teatro7 | Lab</title>
<link href="backoffice.css" rel="stylesheet" type="text/css" />

</head>

<body>

<div>
	<a href="../index.html"><img src="../immagini/t7logo.gif"></a>
</div>

<div>
	<p>Riepilogo dei dati per il voucher:</p>
	<hr>
	<p>Il regalo è acquistato da: <? echo $nomecliente . " " . $cognomecliente . "<br>"; ?></p>
	<p>
		Dati di contatto:<br>
		- telefono: <? echo $telefono; ?> <bR>
		- Email: <? echo $email; ?> <br>
	</p>
	<p>Importo da pagare: <? echo $pagato . "," . $decimali; ?></p>
	<p>Destinatario del regalo: <? echo $destinatario . " " . $cognomedestinatario; ?></p>
	<hr>
	<p>
		Lezione scelta per il regalo: <? echo $id_lezione; ?><br>
		
		Posti prenotati: <? echo $posti; ?><br>
	</p>
	<hr>

</div>

<div id="bottone2" name="bottone2">

	<p align="center">Verifica che i dati inseriti siano corretti e procedi con l'acquisto del buono</p>

	<p align="center">
		<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top" align="center">
			<input type="hidden" name="cmd" value="_xclick">
               <input type="hidden" name="currency_code" value="EUR" />
               <input type="hidden" name="lc" value="IT" />
               <input type="hidden" name="item_name" value="Corso <?php echo $titolo; ?> a teatro7 | Lab" />
               <input type="hidden" name="amount" value="<?php echo $euro; ?>" />
               <input type="hidden" name="notify_url" value="http://www.teatro7.com/backoffice/listener_t7_voucher.php" />
               <input type="hidden" name="business" value="[email protected]" />
               <input type="hidden" name="custom" value="<? echo $id; ?>" />
               <input class='rosso' type='submit' value='ACQUISTA IL VOUCHER' style="text-align: center;" />
		</form>
	</p>
</div>


</body>
</html>
Caccia all'errore?
:)
Grazie per l'aiuto. E' due giorni che ci sbatto la faccia e non ne vengo a capo...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, io non vedo un input con name "posti" nel tuo codice, c'è solo un name="postiprenotati"
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
nello script quando assegno le variabili:
Codice:
var posti = document.modulone.postiprenotati.value;
quindi mi aspettavo che da quel momento la variabile spedita fosse appunto "posti"... o no?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
no. passa con il nome che hai assegnato all'attributo name. Se vuoi essere sicuro dei dati che arrivano alla pagina php metti sempre a inizio pagina var_dump($_REQUEST)
 

gandalf1959

Utente Attivo
21 Nov 2013
208
1
18
GRAZIE!
Ho sempre utilizzato lo stesso nome per le variabili all'interno degli script e non mi ero mai reso conto che passassero le variabili in base all'attributo name e non in base a come chiamavo le variabili nello script... Qui "postiprenotati" mi veniva scomodo e l'ho abbreviato... e ho imparato una cosa in più!
Alla prossima
 
Discussioni simili
Autore Titolo Forum Risposte Data
P Passaggio di variabili con $_POST senza form PHP 4
T passaggio valori delle variabili da form jQuery 2
N Problema passaggio variabili tra pagine PHP 4
R passaggio variabili tra modulo genitore a figlio jQuery 3
zorro [PHP] passaggio di variabili PHP 7
B [Visual Basic] Passaggio variabili da un progetto all'altro (Visual Studio 2017 C#/SQL) Visual Basic 0
K [PHP] Passaggio Variabili Senza Refresh Di Pagina PHP 1
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP] Passaggio di dati tra variabili PHP 1
A Problema con getCurrentPosition e passaggio variabili da javascript a PHP Javascript 3
WebDr [ASP] Passaggio di variabili in un link tra apici ed & Classic ASP 5
gandalf1959 Passaggio di variabili con "global" PHP 1
R Problema passaggio variabili POST PHP 0
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 3
G Passaggio variabili tra pagine- Aiuto per maturità 2015 PHP 0
W Passaggio variabili da JS a PHP Javascript 3
B Passaggio di variabili a query in php PHP 3
N [RISOLTO]ancora ..passaggio variabili PHP 13
R Passaggio variabili php PHP 3
Emix Passaggio variabili GET in array PHP 1
K passaggio di variabili PHP 2
1 passaggio variabili php PHP 1
S NicEdit - Problemi nel passaggio variabili delle TEXTAREA PHP 6
T Passaggio di variabili da una pagina all'altra PHP 5
R Passaggio variabili da Javascript PHP 7
U Passaggio di variabili tra combo PHP 3
I passaggio variabili tra due cartelle in localhost PHP 8
J problema passaggio di variabili Classic ASP 0
S Passaggio variabili tra due pagine php PHP 5
D Problema Passaggio variabili Classic ASP 2
G Passaggio Variabili Javascript 1
M php e passaggio di variabili via get e post PHP 5
D Passaggio variabili POST PHP 2
S Flash & PHP - Problema passaggio variabili! Flash 1
O Passaggio Variabili da Url... Flash 1
B passaggio variabili php/javascript e vicerversa Javascript 0
M Problema passaggio variabili in asp Classic ASP 2
M Passaggio variabili PHP 2
I passaggio variabili HTML e CSS 3
M Passaggio Valori checbox in textarea Javascript 1
Barierta Testo a comparsa con passaggio del mouse Javascript 13
P Passaggio id php a javascript PHP 6
M errore dopo passaggio Php 7.2 PHP 6
P Passaggio di parametro al metodo: public void run() Java 3
T script jquery non funziona più dopo il passaggio a MVC jQuery 5
J Passaggio variabile tra 2 file php PHP 15
Z Passaggio php 5.6 a php 7 PHP 1
R [PHP] Testo su immagine al passaggio del mouse PHP 2
andreas88 Problema installazione passaggio 2 Magento Magento 0
gandalf1959 Passaggio da mysql a mysqli PHP 13

Discussioni simili