Ciao,
mi sono approcciato al PHP da poco comunque sto cercando di scrivere un portale di e-commerce in PHP e HTML che lavora in locale con base dati MySQL collegato all'ERP AbanQ. Il mio approccio è stato, html per le pagine (mostrare immagini, informazioni..) e php per gestire le varie funzioni delle pagine (si fa così, no?).
Ho due problemi fondamentali che riguardano entrambi l'utilizzo delle variabili di sessione: il carrello e il sistema di login.
Gli ho implementati entrambi ma appena cambio pagina perdo tutti i dati che avevo salvato nella prima.
Spiego con un po' più di dettaglio il problema del carrello che penso quando avrò risolto questo il comportamento da usare nel login sarà esattamente identico:
- carrello.php rappresenta il concetto di carrello, con la possibilità di aggiungere/togliere articoli (costruito anche grazie alla guida su questo sito!)
- carico i prodotti presenti su una base dati MySql. Il cliente può selezionare il prodotto che desidera e verrà indirizzato ad una pagina html con le caratteristiche del prodotto che contiene un form per l'aggiunta di una determinata quantità di prodotto nel carrello
- cesta.html dovrebbe mostrare i contenuti del carrello
Per intenderci:
Prodotti [.html] --> Pagina delle specifiche prodotto con Form [.html] --> form [.php] --> stampaCarrello [.html]
Ho letto molto sull'argomento, ma non riesco ancora a capire dove è carente ciò che ho programmato. Qualche consiglio?
Dubbi amletici:
1) La funzione session_start() va eseguita anche se non sono necessari i dati all'interno della pagina html?
2) Sbaglio perchè sto usando troppo html (non so, è davvero poco che programmo con php, magari alcune funzioni non sono supportate in html)? Devo rifare tutto con estension php?
3) Sto lavorando in locale, c'è qualcosa che devo cambiare nelle impostazioni del file php.ini??
4) Perchè sono sbagliati i pezzi commentati in cesta.html? (vedi codice che segue)
5) è un errore creare un nuovo elemento carrello nel php? credo che lì dovrei aggiungere un controllo..
Inserisco un po' di codice per farvi capire meglio:
* specificheProdotto.html (solo parte col form):
aggCamDom.php
Cesta.html
Se eseguo queste istruzioni pari pari mi appare su cesta.html il contenuto del carrello che deve avere.. Se poi però mi metto a navigare e quindi dalla pagina cesta.htlm passo, non so, nuovamente all'index.html ritornando a cesta.html mi da quest'errore:
mi sono approcciato al PHP da poco comunque sto cercando di scrivere un portale di e-commerce in PHP e HTML che lavora in locale con base dati MySQL collegato all'ERP AbanQ. Il mio approccio è stato, html per le pagine (mostrare immagini, informazioni..) e php per gestire le varie funzioni delle pagine (si fa così, no?).
Ho due problemi fondamentali che riguardano entrambi l'utilizzo delle variabili di sessione: il carrello e il sistema di login.
Gli ho implementati entrambi ma appena cambio pagina perdo tutti i dati che avevo salvato nella prima.
Spiego con un po' più di dettaglio il problema del carrello che penso quando avrò risolto questo il comportamento da usare nel login sarà esattamente identico:
- carrello.php rappresenta il concetto di carrello, con la possibilità di aggiungere/togliere articoli (costruito anche grazie alla guida su questo sito!)
- carico i prodotti presenti su una base dati MySql. Il cliente può selezionare il prodotto che desidera e verrà indirizzato ad una pagina html con le caratteristiche del prodotto che contiene un form per l'aggiunta di una determinata quantità di prodotto nel carrello
- cesta.html dovrebbe mostrare i contenuti del carrello
Per intenderci:
Prodotti [.html] --> Pagina delle specifiche prodotto con Form [.html] --> form [.php] --> stampaCarrello [.html]
Ho letto molto sull'argomento, ma non riesco ancora a capire dove è carente ciò che ho programmato. Qualche consiglio?
Dubbi amletici:
1) La funzione session_start() va eseguita anche se non sono necessari i dati all'interno della pagina html?
2) Sbaglio perchè sto usando troppo html (non so, è davvero poco che programmo con php, magari alcune funzioni non sono supportate in html)? Devo rifare tutto con estension php?
3) Sto lavorando in locale, c'è qualcosa che devo cambiare nelle impostazioni del file php.ini??
4) Perchè sono sbagliati i pezzi commentati in cesta.html? (vedi codice che segue)
5) è un errore creare un nuovo elemento carrello nel php? credo che lì dovrei aggiungere un controllo..
Inserisco un po' di codice per farvi capire meglio:
* specificheProdotto.html (solo parte col form):
HTML:
<!--- parte grafica --->
<FORM action="aggCamDom.php" method="post">
<font size="3pt">PRECIO: 1200 euro </font><br/>
<font size="3pt">Número de unidades </font>
<input type="text" name="cantidad" size="20"><BR>
<INPUT type="submit" value="Anadir a la cesta"><BR></p>
</FORM>
aggCamDom.php
PHP:
<?php
session_start();
include("carrello.php");
$cart = new carrello();
$cantidad= $_POST['cantidad'];
$cart->add("PR00",$cantidad,0,1200);
$_SESSION["carrello"]= $cart;
include('cesta.html');
?>
Cesta.html
HTML:
<?php session_start(); ?>
<!------ vario per implementare interfaccia HTML --------->
<?php
//Qui se metto:
// import("carrello.php"); $cesta= new carrello();
//mi da errore (mi dice che non posso richiamare carrello.php) ma pensavo si dovesse fare così!
$cesta= $_SESSION['carrello'];
$cesta->printcart();
?>
Se eseguo queste istruzioni pari pari mi appare su cesta.html il contenuto del carrello che deve avere.. Se poi però mi metto a navigare e quindi dalla pagina cesta.htlm passo, non so, nuovamente all'index.html ritornando a cesta.html mi da quest'errore:
Codice:
Fatal error: main() [function.main]: The script tried to execute a method or access a property of an incomplete object.
Please ensure that the class definition "carrello" of the object you are trying to operate on was loaded _before_ unserialize() gets called or
provide a __autoload() function to load the class definition in C:\Portale\wamp\www\segurafinal\cesta.html on line 25
Ultima modifica: