• User

    [AIUTO] Problema con carrello php

    Un saluto a tutti

    Passo subito al problema:

    1. memorizzo i prodotti acquistati (con $_SESSION[...]) tramite pagina di appoggio che poi rimanda, con il Redirect, alla home.php dove sulla colonna di sinistra appare un mini carrello

    2. sul mio pc uso easyphp 1.8 e tutto funziona correttamente mentre quando inserisco le pagine nello spazio web che ho acquistato (Aruba) questo passaggio mi va in loop e il prodotto viene inserito all'infinito finchè non termino la pagina.

    Ho pensato fosse un problema di sessioni ma non credo perchè tutto il resto del sito funziona e tra le pagine passo alcune variabili di sessioni. Quindi non saprei proprio...
    qualcuno a qualche spunto?

    Grazie a tutti


  • User

    Giustamente è meglio che aggiunga il codice...

    allora queste sono le variabili che creo nella pagina default.php che reindirizza alla home.php

    <?php
    session_start();
    $_SESSION['enabled'] = 0; // 0 = DISABILITATO --- 1 = ABILITATO
    $_SESSION['riga'] = 0;
    $_SESSION['codice[0]'] = "Il carrello è vuoto";
    $_SESSION['quantita[0]'] = "";
    $_SESSION['prezzo[0]'] = "";
    $_SESSION'] = "";
    $_SESSION['tipologia[0]'] = "";
    $_SESSION['testomarca[0]'] = "";
    $_SESSION['descrizione[0]'] = "";
    $_SESSION['immagine[0]'] = "";
    ?>
    Questo sono le variabili che spedisco quando inserisco il prodotto nel carrello da stp3.php

    <div align="center" style="padding-top:25">
    <form method="POST" action="memorizzaprodotto.php">
    <input type="image" name="aggiungi" src="images/carrello.jpg" border="0">

    <input type="hidden" name="codice" value="<? printf($codicicartucce[$a]); ?>">
    <input type="text" name="quantita" maxlength="2" style="width:35; text-align:center">
    <input type="hidden" name="prezzo" value="<? printf($row["PREZZO"]); ?>">
    <input type="hidden" name="colore" value="<? printf($row); ?>">
    <input type="hidden" name="tipologia" value="<? printf($row["TIPOLOGIA"]); ?>">
    <input type="hidden" name="testomarca" value="<? printf($testomarca); ?>">
    <input type="hidden" name="descrizione" value="<? printf($row["DESCRIZIONE"]); ?>">
    <input type="hidden" name="immagine" value="<? printf($row["IMMAGINE"]); ?>">
    </form>

    Questi sono i passagi compiuti da memeorizzaprodotto.php

    <?php
    session_start();

    if (ctype_digit($_REQUEST['quantita']))
    {
    $riga = $_SESSION["riga"];
    $riga++;

    $_SESSION["codice[$riga]"] = $_REQUEST["codice"]; // memorizzo il codice nel vettore SESSIONE codice
    $_SESSION["quantita[$riga]"] = $_REQUEST["quantita"]; // memorizzo la quantita nel vettore SESSIONE quantita
    $_SESSION["prezzo[$riga]"] = $_REQUEST["prezzo"]; // memorizzo il prezzo nel vettore SESSIONE prezzo
    $_SESSION"] = $_REQUEST; // memorizzo il colore nel vettore SESSIONE colore
    $_SESSION["tipologia[$riga]"] = $_REQUEST["tipologia"]; // memorizzo la tipologia nel vettore SESSIONE tipologia
    $_SESSION["testomarca[$riga]"] = $_REQUEST["testomarca"]; // memorizzo il testomarca nel vettore SESSIONE testomarca
    $_SESSION["descrizione[$riga]"] = $_REQUEST["descrizione"]; // memorizzo il testomarca nel vettore SESSIONE descrizione
    $_SESSION["immagine[$riga]"] = $_REQUEST["immagine"]; // memorizzo il testomarca nel vettore SESSIONE descrizione

    $_SESSION["riga"] = $riga;
    }
    header("Location: home.php");
    ?>

    Questa è la parte di codice della home.php che dovrebbe visualizzarmi il mini carrello..

    <?php
    if ($_SESSION["riga"] == 0) printf($_SESSION["codice[0]"]);
    if ($_SESSION["riga"] > 0)
    {
    // stampa dei prodotti scelti
    for ($riga = 1; $riga <= $_SESSION["riga"]; $riga++)
    { printf($_SESSION["codice[$riga]"]);?>
    ![image](images/<? printf($_SESSION[).gif" align="absmiddle" />
    x<? printf($_SESSION["quantita[$riga]"]); ?>

    <? } } ?>

    Ricordo il problema: usando easyphp 1.8 in locale funziona tutto mentre quando metto il tutto sullo spazio di Aruba, la visualizzazione del mini carello mi va in loop finchè non termino la pagina.

    Un'altra domanda che differenza c'è se scrivo una variabile così -> $_SESSION"] con i doppi apici o così -> $_SESSION'] con apice singolo?

    😞 😢


  • Super User

    C'è un underscore di troppo dopo $_SESSION in default.php, mi pare.


  • User

    @ArkaneFactors said:

    C'è un underscore di troppo dopo $_SESSION in default.php, mi pare.

    Ho sbagliato a trascrivere il codice ma nei file non è così... :arrabbiato: