Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [php]Problema con SESSIONI ed array

    In un sito di ricette dò la possibilità ad ogni utente di aggiungere una ricetta al proprio menù personale per poi poterselo stampare, pewr far ciò ho un link del tipo: Aggiungi la ricetta al tuo menù

    in add_menu.php ho:
    codice:
    <?
    session_start();
    
    if (!in_array($_GET['ricid'], $_SESSION['menu']){
    	$_SESSION['menu'][] .= $_GET['ricid'];
    	echo 'aggiunta';
    }
    else
    	echo 'ricetta già presente nel menù';
    
    foreach ($_SESSION['menu'] as $value)
    	echo $value.' ';
    ?>
    Finchè non mettevo il controllo sul fatto che la ricetta fosse già presente nel menù tutto funzionava, nel senso che mi aggiungeva la ricetta al menù e mi stampava l'elenco di tutte quelle già presenti, ma da quando ho messo il controllo mi restituisce una pagina completamente bianca, non entra nè nell'if nè nell'else e non mi entra nemmeno nel ciclo.
    A cosa può essere dovuto?

    Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Magari è solo un errore di copia incolla, ma manca la parentesi tonda di chiusura IF.

  3. #3
    Originariamente inviato da pierotto
    Magari è solo un errore di copia incolla, ma manca la parentesi tonda di chiusura IF.
    Sono un idiota!!Grazie mille, stavo perdendo tempo per una parentesi.

    Ma perché non mi dava errore?

    Grazie mille ancora!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  4. #4
    Riprendo un attimino la discussione perchè ho un altro problema, quando devo cancellare una ricetta mho fatto un link del tipo:

    codice:
    echo 'X';
    e mi passa a cancella_ricetta.php il titolo della ricetta da cancellare, e fin qui tutto ok. Il problema è che non mi cancella la ricetta; per cancellarla ho fatto così:

    codice:
    $_SESSION['menu'] = $_SESSION['menu'] - $_GET[ric'];
    ma quando torno per vedere se la ricetta è stata effettivamente cancellata la vedo ancora nell'elenco insieme a tutte.

    Dove sta la gabola ora?

    Grassssie
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    534
    Devi avere gli allarmi disabilitati nel file php.ini. A parte questo, parafrasando il tuo caso, di solito faccio così:
    codice:
    $_SESSION['menu'] = array_diff($_SESSION['menu'],$_GET);
    print_r($_SESSION);

  6. #6
    Originariamente inviato da pierotto
    Devi avere gli allarmi disabilitati nel file php.ini.
    Questo è probabile, il server non è il mio, ma gira su un altro server e non hop accesso al php.ini

    A parte questo, parafrasando il tuo caso, di solito faccio così:
    codice:
    $_SESSION['menu'] = array_diff($_SESSION['menu'],$_GET);
    print_r($_SESSION);
    Non mi era venuto in mente che $_GET è un array e che si poteva usare tranquillamente array_diff

    Grazie mille!
    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

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.