- Home
- Categorie
- Coding e Sistemistica
- Coding
- carrello spesa
-
carrello spesa
Ciao a tutti
ho impostato una specie di carrello spesa, però fa i capricci, nel senso che non memorizza gli input che invio e quindi risulta sempre vuoto.Qualcuno mi dice p.f. dove sbaglio?
Invio il codice delle pagine ( session start è sempre in riga 1)
Pagina indice<?php
session_start();
?><?php
print("ID: " . session_id() . "<br>\n");
?>
<body>
<a href="prodotto.php">prodotto</a>
</body>
</html>Pagina prodotto
<?php
session_start();
?>
<p>
<?php
print("ID: " . session_id() . "<br>\n");
?>
</p>
<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label>
<input type="textfield" name="codice" value="CASSETTO INOX FIORE 1000" />
</label>
<label>
<input type="submit" name="Submit" value="Submit" />
</label>
</form>
<form id="form2" name="form2" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label>
<input type="textfield" name="codice" value="CASSETTO TERMOPLASTICA" />
</label>
<label>
<input type="submit" name="Submit2" value="Submit" />
</label>
</form>
<p><a href="carrello.php">carrello </a></p>
<p> Il tuo carrello contiene <?php echo count($_SESSION['cart']); ?> articoli.</p>
</body>
</html>Pagina carrello
<?php
session_start();
if (!isset($_SESSION['codice'])) {
$_SESSION['codice'] = array();
}
$_SESSION['codice'] = $_REQUEST['codice'];
?><?php
if ($_SESSION['codice'] == 0)
{
print "Il tuo carrello è vuoto";
}
else
{
foreach($_SESSION['codice'] as $chiave => $valore)
echo " $valore. \n";
}
?>
</body>
</html>Grazie
-
non ho analizzato tutto il codice ma questa riga
<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">manca echo oppure =
scrivila così:
<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">
-
@Tymba said:
non ho analizzato tutto il codice ma questa riga
<form id="form1" name="form1" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">manca echo oppure =
scrivila così:
<form id="form1" name="form1" method="post" action="<?=$_SERVER['PHP_SELF']?>">Ti ringrazio per il suggerimento, purtroppo però credo che l'errore sia altrove, in quanto mi visualizza ancora
Notice: Undefined index: codice in c:\programmi\easyphp1-8\www\suggerimenti\carrello.php on line 6
dopo aver cliccato sul submit ed essere entrato nella pagina carrello,
per la cronaca mi indica 0 prodotti nel carrelloHelp, grazie:bho:
-
hai due input con lo stesso nome, 'codice'!
-
@joey santiago said:
hai due input con lo stesso nome, 'codice'!
Grazie, ma purtroppo non cambia nulla.
Ho sostituito tutte le chiamate di $_SESSION['codice'] con 'cart'
ma contina a non memorizzare, infatti il messaggio è sempre
Notice: Undefined index: codice in c:\programmi\easyphp1-8\www\suggerimenti\carrello.php on line 6.
Dopo aver effettuato il submit mi resa sempre l'indicazione 0 articoli nel carrello e la pagina carrello da il messaggio di prima.
Ho anche provato a sostituire $_REQUEST con $_POST, ma il risultato è sempre lo stesso.
:bho:
-
dunque... il problema è in riga 6...
perché tu non passi nulla a carrello.php!
dovresti inviare a questa pagina i dati del form tramite un <input type='submit'> ed un <form action='carrello.php'>, se poi vuoi recuperarti il codice tramite $_POST['codice']!!
tu in questo momento arrivi a carrello.php tramite un link... per passare dei dati tramite link devi metterli in questa forma: <a href="pippo.php?codice=<?=$codice?>" > ed a questo punto recuperi il codice in questa forma: $codice=$_GET['codice'];
-
Dunque Joey innanzitutto grazie, ho provato modificando l'action ed in effetti accade questo : invio con post l'articolo, se rientro nella pagina prodotto la mi viene indicato 1 articolo nel carrello, però se poi rientro nel carrello ho sempre
Notice: Undefined index: codice in c:\programmi\easyphp1-8\www\suggerimenti\carrello.php on line 6Ora provo la tua seconda soluzione
grazie
-
@Caffeluca said:
Dunque Joey innanzitutto grazie, ho provato modificando l'action ed in effetti accade questo : invio con post l'articolo, se rientro nella pagina prodotto la mi viene indicato 1 articolo nel carrello, però se poi rientro nel carrello ho sempre
Notice: Undefined index: codice in c:\programmi\easyphp1-8\www\suggerimenti\carrello.php on line 6Ora provo la tua seconda soluzione
grazie
Purtroppo con l'href non ottengo nulla.
Però ho effettuato una modifica che migliora un pò le cose,
ho aggiunto una pagina intermedia (memorizza.php).
Grazie a questa pagina ora l'articolo inviato rimane in memoria.
Purtroppo però resta il problema che se inserisco il secondo articolo vine visualizzato solo il secondo.
Help, sto impazzendo
-
mhm... prova a guardarti cosa ti salva nella variabile di sessione (dovrebbe essere sotto la cartella tmp)
potrebbe essere che tu memorizzi $_SESSION[$codice] dove $codice è un numero... in questo caso di sicuro non funziona, devi inserire una stringa letterale.
Altra possibilità è che tu ti memorizzi $_SESSION['codice'] ed in questo caso lo sovrascrivi ogni volta che uno si aggiunge un articolo!
-
@joey santiago said:
ti mando il codice di una cosa simile che ho fatto, spero sia utile...
Sei gentilissimo, provo a vedere se capisco qualche cosa ti faroò sapere, grazie.:)