Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494

    Notice: Undefined index carrello

    Salve a tutti, come da titolo mi sono scontrato con questa notice, precisamente è un carrello della spesa che memorizza gli acquisti in una sessione.
    In questo script vi sono varie funzioni, nel mio caso quella che fa i capricci è usaCarello:

    Codice PHP:
    function usaCarrello()
    {
    $carrello $_SESSION['carrello'];
      if(
    $carrello)
      {
        return 
    'Il carrello è vuoto.
    '
    ;
      }else{
        
    $prodotti = @explode(',',$carrello);
        return 
    'Ci sono <a href="carrello.php">'.
        @
    count($prodotti). ' prodotti nel carrello.</a>
    '
    ;
      }

    che ho corretto con un isset cosi:

    Codice PHP:
    function usaCarrello()
    {
      if(!isset(
    $_SESSION['carrello']))
      {
        return 
    'Il carrello è vuoto.
    '
    ;
      }else{
        
    $prodotti = @explode(',',$carrello);
        return 
    'Ci sono <a href="carrello.php">'.
        @
    count($prodotti). ' prodotti nel carrello.</a>
    '
    ;
      }

    In questo modo la notice sparisce, però il numero di prodotti non si incrementa ad esempio metto due, tre prodotti nel carrello ma il count me ne legge sempre 1, sapete aiutarmi?

    Un'altra cosa non meno importante è che la notice appare solo se incremento il sistema di login, senza, il carrello funziona benissimo.

    Grazie anticipatamente

  2. #2
    se avessi tolto quelle @ avresti forse avresti individuato da solo l'errore...
    Codice PHP:
    function usaCarrello() 

      if(!isset(
    $_SESSION['carrello'])) 
      { 
        return 
    'Il carrello è vuoto.
    '

      }else{ 
    $carrello $_SESSION['carrello']; 

        
    $prodotti explode(',',$carrello); 
        return 
    'Ci sono <a href="carrello.php">'
        
    count($prodotti). ' prodotti nel carrello.</a>
    '

      } 

    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    semmai volevi fare cosi

    Codice PHP:
    function usaCarrello() 

      if(!isset(
    $_SESSION['carrello'])) 
      { 
        return 
    'Il carrello è vuoto.
    '

      }else{ 
        
    $prodotti explode(',',$_SESSION['carrello']); 
        return 
    'Ci sono <a href="carrello.php">'
        
    count($prodotti). ' prodotti nel carrello.</a>
    '

      } 


  4. #4
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Togliendo la @ non mi da errori!

  5. #5
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Risolto! ignorantemente avevo risolto in parte, il count lo faceva sulla variabile carrello! grazie Roteam ^^

  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Altro problema!
    Se cancello i prodotti dal carrello mi rimane sempre che ho 1 prodotto come mai?

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Originariamente inviato da lukezz
    Altro problema!
    Se cancello i prodotti dal carrello mi rimane sempre che ho 1 prodotto come mai?
    Posta la funzione con cui cancelli

  8. #8
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Codice PHP:
    $carrello $_SESSION['carrello'];
    if(@isset(
    $_GET['action']))
    {
      
    $action $_GET['action'];
      
      switch (
    $action)
      {
        case 
    'cancella':
        if (
    $carrello)
        {
          
    $prodotti = @explode(',',$carrello);
          
    $acquisto '';
          foreach (
    $prodotti as $prodotto)
          {
            if (
    $_GET['id'] != $prodotto)
            {
              if (
    $acquisto != '')
              {
                
    $acquisto .= ','.$prodotto;
              }else{
                
    $acquisto $prodotto;
              }
            }
          }
          
    $carrello $acquisto;
        }
        break; 

  9. #9
    Hai la pessima abitudine di disseminare @ nel tuo codice.... cmq sia
    Codice PHP:
    $carrello $_SESSION['carrello']; 
    if(@isset(
    $_GET['action'])) 

      
    $action $_GET['action']; 
       
      switch (
    $action
      { 
        case 
    'cancella'
        if (
    $carrello
        { 
          
    $prodotti = @explode(',',$carrello); 
          
    $acquisto ''
          foreach (
    $prodotti as $prodotto
          { 
            if (
    $_GET['id'] != $prodotto
            { 
              if (
    $acquisto != ''
              { 
                
    $acquisto .= ','.$prodotto
              }else{ 
                
    $acquisto $prodotto
              } 
            } 
          } 
          
    $_SESSION['carrello'] = $acquisto
        } 
        break; 
    ... ma ci sarebbe molto altro da sistemare...
    http://www.miniscript.it
    Se ti sono stato di aiuto in qualche modo in questo forum iscriviti alla fan page di Miniscript - il mio blog di programmazione web.

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2012
    Messaggi
    1,453
    Beh quella funzione non elimina tutti gli elementi perciò se ne hai altri è ovvio che rimangano

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.