Ir para conteúdo
Fórum Script Brasil
  • 0

Gravando dados em sessão


cobrinha

Pergunta

Olá pessoal!

Estou precisando de um help em um sisteminha que grava dados de array em sessão, esses dados seram enviados um de cada vez.

Ex.: temos o pequeno script abaixo:

$session[1]["NOME"] = "2";
$session[2]["NOME"] = "-1";
$session[3]["NOME"] = "2";
$session[4]["NOME"] = "1";

// coloca o array na sessão
$_SESSION["session"] = $session;

// obtém o array gravado na sessão
$recebeSession = $_SESSION["session"];

// obtém os valores do array e printa na tela
for( $i = 0; $i < count( $recebeSession ); $i++ )
{
    echo $recebeSession[$i]["NOME"] = $_SESSION["session"][$i]["NOME"] . "<br />";
}
Com esse script acima, printará na tela os valores:
2
-1
2
1
O que estou querendo é enviar os dados um por um e gravando nas sessões... Ex.:
// entro com os dados: 
$session[1]["NOME"] = "2";

printará:
"2"

Depois entro com os dados:
$session[2]["NOME"] = "-1";
.
.
.
$session[42]["NOME"] = "1";

Assim quero que printe na tela:
2
-1
.
.
.
1

"O script do jeito que se encontra, ele não mostra todos os dados enviados mais sobreescreve com o ultimo dado enviado "

Preciso desse pequeno script urgentemente!

Agradeço desde já.

Abraço a todos!

Editado por cobrinha
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Guest tonzinhu

não entendi muito o que você quer.. mas pelo que entendi você quer criar uns sessions de alguns valores e resgatar em outra pagina certo?

bom se for isso, eu fiz um esqueminha bem simples.

registrando os dados

session_start();

$session[]= 2;
$session[]= -1;
$session[]= 2;
$session[] = 1;

// coloca o array na sessão
$_SESSION["session"] = $session;

// obtém o array gravado na sessão
$recebeSession = $_SESSION["session"];

// obtém os valores do array e printa na tela
resgatando os dados
session_start();

foreach($_SESSION['session'] as $session[]){

$nome0 = $session[0];
$nome1 = $session[1];
$nome2 = $session[2];

}

print $nome1;

coloquei como se você quisesse pegar cada valor separado, dando um nome pra cada um.

se não for isso avisa ai.

falora

Link para o comentário
Compartilhar em outros sites

  • 0

Olá tonzinhu!

Seria mais ou menos isso. Eu não seu o número de sessões que será criada e muito menos o valor de cada uma, só sei que os valores de entrada são 1, -1, 0 ou "vazio".

Peguei um exemplo de carrinho de compras usando sessões...

// VERIFICA SE HÁ SESSÕES
if(count($_SESSION[nAcertosLE]) > 0) 
{ 
   //PEGA A CHAVE DO ARRAY
   $chaveLE   =   array_keys($_SESSION[nAcertosLE]);
   
   //PEGA OS DADOS DA SESSÃO
   
   if ( $chaveLE != array_keys($_SESSION[nAcertosLE]) )
   {
           for($i=0; $i<sizeof($chave); $i++) 
       { 
          //ÍNDICE
          $indiceLE   =   $chaveLE[$i]; 
          
          //ATRIBUI
          $nAcertosLE[$indiceLE][ACERTO]  =    $_SESSION[nAcertosLE][$indiceLE][ACERTO];
       }//FECHA FOR
   }
   
}//FECHA IF




//VERIFICA SE A OPÇÃO EXCLUIR FOI SELECIONADA
if($_POST[opc_excluir]) 
{
   
   //RECEBE OS PRODUTOS CHECADOS PARA EXCLUSÃO
   $excluir  =  $_POST[check];
   
   //EXIBE
   for($i=0; $i<sizeof($excluir); $i++) 
   {
      //PEGA O INDICE DO PRODUTO
      $indice   =   $excluir[$i];
      //DESTRÓI A VARIÁVEL ESPECIFICADA
      unset($_SESSION[cesta][$indice]);
   }//FECHA FOR
}//FECHA IF



//RECEBE OS DADOS PASSADOS
elseif(isset( $acerto )) 
{
   //RECEBE AS VARIÁVEIS
   
   
   $resgataAcertosLE[$numQuestao][ACERTO] = $acerto;    
   
   
   //PEGA A CHAVE DO ARRAY
   $chaveLE  =  array_keys($resgataAcertosLE);
   
   $objResponse -> addAlert( $chaveLE );
   
   //EXIBE
   for($i=0; $i<sizeof($chaveLE); $i++) 
   {
      $indiceLE  =  $chaveLE[$i];
      
      //VERIFICA
      if(1==1 ) 
      {
      
         //GRAVA NO ARRAY
         $nAcertosLE[$indiceLE ][ACERTO]  =    $resgataAcertosLE[$indiceLE][ACERTO];

      }//FECHA IF
   }//FECHA FOR
   
   //GRAVA NA SESSÃO
   $_SESSION[nAcertosLE]        =   $nAcertosLE;
}//FECHA ELSE


    // SE TIVER SESSÃO, EXIBE
    if(count($_SESSION[nAcertosLE]) > 0)
    {
    


      //PEGA A CHAVE
      $chave_cesta  =  @array_keys($_SESSION[nAcertosLE]);
      
      //EXIBE AS SESSÕES
      for($i=0; $i<sizeof($chave_cesta); $i++) 
      { 
         $indiceLE   =   $chave_cesta[$i]; 


       echo $_SESSION[nAcertosLE][$indiceLE][ACERTO] . "<br />";


      }
        
    }//FECHA IF(count)
O script a cima funciona corretamente usando um form via POST passando os dados para colocar em sessão. Ex.:
//MONTA O ARRAY DE PRODUTOS
$item[1][ACERTO]     =   "00001";
$item[2][ACERTO]     =   "00002";
$item[3][ACERTO]     =   "00003";
$item[4][ACERTO]     =   "00004";
$item[5][ACERTO]     =   "00005";


$chave = array_keys($item);

//EXIBE OS PRODUTOS
for($i=0; $i<sizeof($chave); $i++) 
{
    $chave[$i];
            
        $indice    =   $chave[$i];
    $codigo    =   $produto[$indice][ACERTO];

      // Guarda os dados em um campo do tipo hidden

      $campo = ''<input type="hidden" name="txtprod[$indice][ACERTO]"  value="$codigo">;

Se mandar todos os os dados de uma vez o programa grava os dados separados por sessão, mais se eu mandar um por um, não funciona!!!

Posso postar a URL do script para analisar e o código. Lembrando que não uso formulário e é feito com a biblioteca Xajax.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...