Salve, spero che la parte di pagina php (con javascript) qui sotto possa essere chiara a qualcuno che possa aiutarmi.
Se qualcuno ha veramente la voglia di darmi una dritta può andare al seguente link e vedere in pratica di quanto sto per dire:
http://www.promiraweb.net/webshop/AEROSMITH.html
Il problema è il seguente:
la pagina MAIL.PHP ( QUI SOTTO ) viene visualizzata rispettivamente con i tre messaggi:
1-ERRORE IL TUO CARRELLO E' VUOTO
2-ERRORE, PER FAVORE TORNA INDIETRO E COMPLETA I CAMPI
3-GRAZIE, IL TUO ORDINE E' STATO INVIATO
CASO 1- QUANDO ERRONEAMENTE VIENE "INVIATO" L'ORDINE CON CARRELLO VUOTO (DALLA PAGINA CHECKOUT.PHP)
CASO 2- QUANDO ERRONEAMENTE VIENE "INVIATO" L'ORDINE CON I DATI DELL'UTENTE NON COMPLETI (DALLA PAGINA CHECKOUT.PHP)
CASO 3- QUANDO E' TUTTO OK E L'ORDINE VIENE INVIATO (DALLA PAGINA CHECKOUT.PHP)
Nel caso 1 è sufficiente caricare un item della lista prodotti
e tutto è ok, dato che si partiva con carrello vuoto.
Nel caso 2 c'è un bottone che riporta al carrello CON I PRODOTTI
INVARIATI , cioè nella condizione precedente all'invio del modulo
non compilato - o parzialmente compilato: QUESTO QUANDO
L'ULTIMO JAVASCRIPT DELLA PAGINA SOTTOSTANTE NON E'
PRESENTE ( LO SCRIPT "AZZERA" IL CARRELLO , NEL FILE VIEW.PHP)
Nel caso 3 avviene l'invio dei dati. SE LULTIMO SCRIPT E'
PRESENTE IL CARRELLO VIENE AZZERATO, GIUSTAMENTE
ESSENDOSI CONCLUSO IL CICLO, E NUOVI ACQUISTI RIPARTONO
CON CARRELLO VUOTO.
Il problema e' che se lo script è presente mi azzera la lista anche quando per errore si deve tornare indietro per la mancanza
di uno o più campi, e questo non va bene perchè uno deve "rifare la spesa per intero"; se non è presente non mi azzera il carrello
alla fine dell'acquisto e quando riparto con altri prodotti mi ritrovo nel carrello quelli già ordinati - e devo azzerare cliccando il bottone.
Quest'ultimo è certamente il male minore ma vorrei evitarlo.
Sono ancora "grezzo" su php e javascript e non vedo la soluzione.
Spero di non essere stato prolisso, forse questo è un caso comune. Posso inviare i sorgenti delle pagine php se volete.
Grazie in anticipo
Mirco Raiti
<table class="tableBackground" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><font class="titleFont"><b>Cassa - Check Out</font></td>
</tr>
</table>
<?
$numitems = sizeof($item);
if ($numitems == 0) {
?>
<p><b>Errore </b>
<p>Il tuo carrello è vuoto
<?
} else {
if ($contactname == "" || $billing_adr == "" || $delivery_adr == "" || $email == "") {
?>
<p><b>Errore</b>
<p>Per favore torna indietro completa tutti
campi
<form><input type="button" name="clear" value="Indietro - Back " onclick="javascript:history.go(-1);">
<?
} else {
for ($i=0;$i<$numitems;$i++) {
$items .= "$item[$i] x $quantity[$i] @ $priceeach[$i] each = $totalcost[$i]\n";
$subtotal += $totalcost[$i];
}
$total = $subtotal + $tax_calc + $freightop + $ex_am;
$subtotal = number_format("$subtotal",2);
$tax_calc = number_format("$tax_calc",2);
$freightop = number_format("$freightop",2);
$ex_am = number_format("$ex_am",2);
$total = number_format("$total",2);
$body .="Items Ordered:\n\n";
$body .="$items\n\n";
$body .="Sub Total.... $subtotal\n";
$body .="$tax_name............. $tax_calc\n";
$body .="Freight........ $freightop\n";
$body .="Extra........... $ex_am\n";
$body .="Total........... $total\n\n";
$body .="Delivery Details:\n\n";
$body .="Contact Name: $contactname\n";
$body .="Billing Address: $billing_adr\n";
$body .="Delivery Address: $delivery_adr\n";
$body .="Email: $email\n";
$body .="TELEFONO Phone: $phone\n\n";
$to = "$order_email";
$from = "Web Shop Manager <$order_email>";
$subject = "Web Store Order";
if ($pgpuser != "") {
$tmpfname = tempnam("/tmp","pgpfm").".asc";
putenv("PGPPATH=/home/nobody/.pgp");
$pp = popen("/usr/bin/pgpe -r \"$pgpuser\" -a -o $tmpfname","w");
fputs($pp,$body);
pclose($pp);
$body = trim(implode(file($tmpfname),""));
unlink($tmpfname);
}
mail($to,$subject,$body,"FROM: ".$from);
echo "<p>Grazie, il tuo ordine è stato inviato";
echo "<p>$post_order";
}
}
?>
<script language="javascript">
index = document.cookie.indexOf("ShopCart");
document.cookie="ShopCart=.";
</script>
Se qualcuno ha veramente la voglia di darmi una dritta può andare al seguente link e vedere in pratica di quanto sto per dire:
http://www.promiraweb.net/webshop/AEROSMITH.html
Il problema è il seguente:
la pagina MAIL.PHP ( QUI SOTTO ) viene visualizzata rispettivamente con i tre messaggi:
1-ERRORE IL TUO CARRELLO E' VUOTO
2-ERRORE, PER FAVORE TORNA INDIETRO E COMPLETA I CAMPI
3-GRAZIE, IL TUO ORDINE E' STATO INVIATO
CASO 1- QUANDO ERRONEAMENTE VIENE "INVIATO" L'ORDINE CON CARRELLO VUOTO (DALLA PAGINA CHECKOUT.PHP)
CASO 2- QUANDO ERRONEAMENTE VIENE "INVIATO" L'ORDINE CON I DATI DELL'UTENTE NON COMPLETI (DALLA PAGINA CHECKOUT.PHP)
CASO 3- QUANDO E' TUTTO OK E L'ORDINE VIENE INVIATO (DALLA PAGINA CHECKOUT.PHP)
Nel caso 1 è sufficiente caricare un item della lista prodotti
e tutto è ok, dato che si partiva con carrello vuoto.
Nel caso 2 c'è un bottone che riporta al carrello CON I PRODOTTI
INVARIATI , cioè nella condizione precedente all'invio del modulo
non compilato - o parzialmente compilato: QUESTO QUANDO
L'ULTIMO JAVASCRIPT DELLA PAGINA SOTTOSTANTE NON E'
PRESENTE ( LO SCRIPT "AZZERA" IL CARRELLO , NEL FILE VIEW.PHP)
Nel caso 3 avviene l'invio dei dati. SE LULTIMO SCRIPT E'
PRESENTE IL CARRELLO VIENE AZZERATO, GIUSTAMENTE
ESSENDOSI CONCLUSO IL CICLO, E NUOVI ACQUISTI RIPARTONO
CON CARRELLO VUOTO.
Il problema e' che se lo script è presente mi azzera la lista anche quando per errore si deve tornare indietro per la mancanza
di uno o più campi, e questo non va bene perchè uno deve "rifare la spesa per intero"; se non è presente non mi azzera il carrello
alla fine dell'acquisto e quando riparto con altri prodotti mi ritrovo nel carrello quelli già ordinati - e devo azzerare cliccando il bottone.
Quest'ultimo è certamente il male minore ma vorrei evitarlo.
Sono ancora "grezzo" su php e javascript e non vedo la soluzione.
Spero di non essere stato prolisso, forse questo è un caso comune. Posso inviare i sorgenti delle pagine php se volete.
Grazie in anticipo
Mirco Raiti
<table class="tableBackground" width="100%" cellspacing="0" cellpadding="2">
<tr>
<td><font class="titleFont"><b>Cassa - Check Out</font></td>
</tr>
</table>
<?
$numitems = sizeof($item);
if ($numitems == 0) {
?>
<p><b>Errore </b>
<p>Il tuo carrello è vuoto
<?
} else {
if ($contactname == "" || $billing_adr == "" || $delivery_adr == "" || $email == "") {
?>
<p><b>Errore</b>
<p>Per favore torna indietro completa tutti
campi
<form><input type="button" name="clear" value="Indietro - Back " onclick="javascript:history.go(-1);">
<?
} else {
for ($i=0;$i<$numitems;$i++) {
$items .= "$item[$i] x $quantity[$i] @ $priceeach[$i] each = $totalcost[$i]\n";
$subtotal += $totalcost[$i];
}
$total = $subtotal + $tax_calc + $freightop + $ex_am;
$subtotal = number_format("$subtotal",2);
$tax_calc = number_format("$tax_calc",2);
$freightop = number_format("$freightop",2);
$ex_am = number_format("$ex_am",2);
$total = number_format("$total",2);
$body .="Items Ordered:\n\n";
$body .="$items\n\n";
$body .="Sub Total.... $subtotal\n";
$body .="$tax_name............. $tax_calc\n";
$body .="Freight........ $freightop\n";
$body .="Extra........... $ex_am\n";
$body .="Total........... $total\n\n";
$body .="Delivery Details:\n\n";
$body .="Contact Name: $contactname\n";
$body .="Billing Address: $billing_adr\n";
$body .="Delivery Address: $delivery_adr\n";
$body .="Email: $email\n";
$body .="TELEFONO Phone: $phone\n\n";
$to = "$order_email";
$from = "Web Shop Manager <$order_email>";
$subject = "Web Store Order";
if ($pgpuser != "") {
$tmpfname = tempnam("/tmp","pgpfm").".asc";
putenv("PGPPATH=/home/nobody/.pgp");
$pp = popen("/usr/bin/pgpe -r \"$pgpuser\" -a -o $tmpfname","w");
fputs($pp,$body);
pclose($pp);
$body = trim(implode(file($tmpfname),""));
unlink($tmpfname);
}
mail($to,$subject,$body,"FROM: ".$from);
echo "<p>Grazie, il tuo ordine è stato inviato";
echo "<p>$post_order";
}
}
?>
<script language="javascript">
index = document.cookie.indexOf("ShopCart");
document.cookie="ShopCart=.";
</script>