Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. gholdenboy
    3. Post
    G

    gholdenboy

    @gholdenboy

    • Profilo
    • Chi segue 0
    • Da chi è seguito 0
    • Discussioni 1
    • Post 8
    • Migliore 0
    • Gruppi 0
    Iscrizione Ultimo Accesso
    Località Bologna Età 36
    0
    Reputazione
    8
    Post
    0
    Visite al profilo
    0
    Da chi è seguito
    0
    Chi segue
    User Newbie

    Post creati da gholdenboy

    • RE: Dubbi e problemi gestione sessioni

      anche io sto lavorando in locale ed è così che deve funzionare il mio portale per l'esame!
      Io sto utilizzando WAMP server con Apache, MySQL e PHP, mi sembra che tutto mi funzioni a parte questo della gestione delle sessioni!!
      Non so cosa può essere, devo fare delle modifiche ai file dei programmi (httpd.conf, php.ini, my.ini) ???

      Io la seriazizzazione l'avevo fatta così:

      caricaprodotto.php
      [php]
      <?php
      include_once("cart.php");
      session_start();
      $cart= new cart();
      //questo non me lo stampa mai!
      if (isset($_SESSION["carrello"])) {
      $cart= unserialize($_SESSION["carrello"]);
      $cart->add("PR00",$cantidad,0,1200);
      $resul= serialize($cart);
      $_SESSION["carrello"]= $resul;
      }else{
      $cantidad= $_POST['cantidad'];
      $cart->add("PR00",$cantidad,0,1200);
      $resul= serialize($cart);
      $_SESSION["carrello"]= $resul; }
      include('cesta.html');

      ?>
      [/php]

      stampacarello.php
      [php]
      <?php
      include_once("cart.php");
      include_once("startSess.php");
      $cest= new cart();
      if(isset($_SESSION["carrello"])){
      print_r($_SESSION["carrello"]);
      $cest= unserialize($_SESSION["carrello"]);
      $cest->printcart();
      } else {
      $cest->printcart(); }
      ?>
      [/php]

      ma ottengo come risultato*
      ( ! ) Warning: unserialize() expects parameter 1 to be string, object given in C:\Portale\wamp\www\segurafinal\aggCamDom.php on line 7

      ! ) Fatal error: Call to a member function add() on a non-object in C:\Portale\wamp\www\segurafinal\aggCamDom.php on line 8

      e non continua..* Ho sbagliato qualcosa io??

      postato in Coding
      G
      gholdenboy
    • RE: Dubbi e problemi gestione sessioni

      se con serializzare intendi fare serialize() sul dato prima di inserirlo e su unserialize() sul $_SESSION si si ci ho provato ma non va..

      Esistono altri modi?

      postato in Coding
      G
      gholdenboy
    • RE: Dubbi e problemi gestione sessioni

      sisi.. la chiamata aggiungiProdotto è così:
      [php]
      <?php
      include_once("cart.php");
      include_once("startSess.php");
      //necessario sennò non riconosce il metodo add
      $cart= new cart();
      //questo non me lo stampa mai!
      if (isset($_SESSIO["carrello"])) echo "carrello riconosciuto";
      $cantidad= $_POST['cantidad'];
      $cart->add("PR00",$cantidad,0,1200);
      $_SESSION["carrello"]= $cart;
      include('cesta.html');

      ?>
      [/php]e la stampaCarrello.pho inclusa in cesta.html è
      [php]
      <?php
      include_once("cart.php");
      include_once("startSess.php");
      $cest= new cart();
      if(isset($_SESSION["carrello"])){
      print_r($_SESSION["carrello"]);
      print_r($_SESSION["carrello"]);
      $cest= $_SESSION["carrello"];
      $cest->printcart();
      } else {
      $cest->printcart(); }
      ?>
      [/php]ed è questa che stampa l'errore che riferivo

      postato in Coding
      G
      gholdenboy
    • RE: Dubbi e problemi gestione sessioni

      Penso di aver individuato la fonte di problema! Se seguo l'iter normale di vendita quindi:
      Pagina con dettagli --> Form per la quantita --> Cesta riassuntiva
      mi da la tabella che mi deve stampare. Ho messo un messaggio di stampa del carrello (print_r($_SESSION["carrello"]) prima della stampa dei prodotti se il carrello risultava con alcuni oggetti. Il risultato è:

      cart Object ( [id] => Array ( [0] => PR00 ) => Array ( [0] => 3 ) => Array ( [0] => 0 ) [precio] => Array ( [0] => 1200 ) )

      Se subito dopo riclicco sul bottone che mi dovrebbe riportare alla stessa pagina html (la solita cesta) ottengo come risultato:

      __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => cart [id] => Array ( [0] => PR00 ) => Array ( [0] => ) => Array ( [0] => 0 ) [precio] => Array ( [0] => 1200 ) )

      e un bel messaggio d'errore

      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 "cart" 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\stampCarr.php on line 8

      il problema è quindi che lui si ricorda le caratteristiche del'oggetto, ma non ricorda che è un elemento della classe cart.php!!

      Può essere questa la fonte di tutto il problema?? consigli per risolverlo??

      postato in Coding
      G
      gholdenboy
    • RE: Dubbi e problemi gestione sessioni

      Ah ok, non devo creare un istanza della classe per poterci passare il valore (il mio era un approccio molto Java)!!

      La classe del carrello non dovrebbe essere nell' include_once("cart.php");

      Ora modifico qualcosa e tengo aggiornato il post!

      Grazie per l'interessamento

      postato in Coding
      G
      gholdenboy
    • RE: Dubbi e problemi gestione sessioni

      ma in teoria dentro $_SESSION["carrello"] non ho un elemento di tipo carrello?? io volevo recuperare i dati di QUEL carrello, aggiungerci i prodotti, e aggiornarlo nuovamente alla fine con $_SESSION["carrello"]=$cart ..

      ci deve essere qualcosa che non ho capito bene..

      postato in Coding
      G
      gholdenboy
    • RE: Dubbi e problemi gestione sessioni

      ho provato a modificare qualcosa ma sono ancora più confuso!! Ho pensato che era possibile gestire la stampa del carrello non da cesta.html ma con un altra funzione in .php e ho pensato di modificare i php dei form per l'aggiunta del preciso prodotto al carrello per effettuare un miglior controllo:

      *aggiungiProdotto.php
      [PHP]
      <?php
      session_start();
      //controllo se già esiste un carrello
      if(isset($_SESSION["carrello"])){
      print_r($_SESSION["carrello"]);
      include("cart.php");
      $cest = new cart();
      //esiste quindi modifico il carrello esistente
      $cest= $_SESSION["carrello"];
      $cantidad= $_POST['cantidad'];
      $cest->add("SE00",1,0,50);
      $_SESSION["carrello"]= $cest;
      include('cesta.html');
      }else{
      //non esiste, creo un nuovo carrello
      include("cart.php");
      $cest = new cart();
      $cantidad= $_POST['cantidad'];
      $cest->add("SE00",1,0,50);
      $_SESSION["carrello"]= $cest;
      include('cesta.html');
      }
      ?>
      [/PHP]

      stampaCest.php inclusa in cesta.html
      [PHP]
      <?php
      session_start();
      if(isset($_SESSION["carrello"])){
      include_once("cart.php");
      $cest = new cart();
      $cest= $_SESSION["carrello"];
      $cest->printcart();
      } else {
      echo "carrello vuoto!"; }
      ?>
      [/PHP]

      Con queste modifiche, non mi stampa più nemmeno il primo carrello, non mi aggiunge proprio i prodotti.. Perchè?
      Il print_r($_SESSION["carrello"]) in aggiungiProd.php dopo il controllo dell'esistenza del carrello mi da come risultato:

      __PHP_Incomplete_Class Object ( [__PHP_Incomplete_Class_Name] => cart [id] => Array ( [0] => PR01 )  => Array ( [0] => 5 )  => Array ( [0] => 0 ) [precio] => Array ( [0] => 70 ) ) 
      
      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 "cart" 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\aggCamEst.php on line 9
      
      

      anche se è la prima volta che effettuo un acquisto.. come mai???

      postato in Coding
      G
      gholdenboy
    • Dubbi e problemi gestione sessioni

      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
      • 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:

      *caratteristicheProdotto.html
      [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>[/html]

      • 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');
      ?>

      [/php]

      *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(); ?>[/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:

      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
      
      
      postato in Coding
      G
      gholdenboy