Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sesje nadpisywanie
Forum PHP.pl > Forum > Przedszkole
sidkoz
Witam mam funkcję która np sumuje dwie tablice dwuwymiarowe, jesli w skrypcie głównym nacisnę przycisk zapamiętaj ta funkcja zostanie wywołana a dodatkowo i dodatkowo zostanie zapisana w pwmięci za pomocą sesji
Kod
if(isset($_POST['remember'])) {//jesli opcja jest zaznaczona
     $_SESSION['dane'] = $cookies;//ustawia wartosci
     $_SESSION['ilewierszy'] = $wymA;//ustawia wiersze
     $_SESSION['ilekolumn'] = $wymB;//ustawia kolumny
     }
teraz jak zmienię dane w tablicach i nacisnę jeszcze raz przyciska zapamiętaj to zapamięta już pustą tablie czy ktos ma pomysł jak się z tym uporać?

Wiem że tak się nie robi ale to mój błąd oczywiście tablica się nadpisuje za każdym razem i wszystko jest ok. Jednak gdyż chce wyświetlić zapamiętaną tablice na serwerze to mi jej nie wyświetla raczej wyświetla ale zerami natomiast używajać tej samej tablicy do dalszych obliczeń dane są poprawnie przekazywane.
Kod
<?php if(!empty($_SESSION['dane'])) {
   $w=$_SESSION['ilewierszy'];//ustawia wiersze
   $k=$_SESSION['ilekolumn'];
    echo "<table  border=\"1\" align=\"center\"><caption>Macierz M</caption>";
    for ($i =0; $i <$w; $i++)
    {
        echo "<tr>";
        for ($j = 0; $j<$k; $j++)
            echo "<td width=\"35\">" . round($dane[$i][$j],3) . "</td>";
        echo "</tr>";
    }
    echo "</table>";
   }?>

działa na lokalu a na serwerze już nie
erix
Cytat
działa na lokalu a na serwerze już nie

A coś oprócz tego? Jakieś błędy?
sidkoz
Nie po prostu nie wyświetla zawartości tablicy, ale poprawnie używa tą zawartość do dalszych obliczeń

Wiem już gdzie jest przyczyna okazało się że mam register globlas na localhoscie no on natomiast pewnie na serwerze są na off i w związku z tym pytanko jak pozbyć sie tego problemu ?
erix
Używać odpowiednich zmiennych z tablic predefioniowanych ($_GET/$_POST).
sidkoz
Lub z sesji
Kod
$dane=$_SESSION['dane'];
załatwiło sprawę dzięki i pozdrawiam

jednak musze wrócić jeszcze raz do tematu ostatnio okazało sie że mam zmienne źle wywoływane i ok to naprawiłem natomiast teraz mam podobny problem ale chciałbym aby odwrócenie macierzy zapisało ją do pamięci i tak
Kod
echo "<table align=\"center\" class=\"komorka\"><caption>A<sup>-1</sup>:</caption>";
    for ($a =0; $a <$n; $a++)
    {
        echo "<tr>";
        for ($b = $n; $b<$w; $b++)
         {
                 echo "<td><input type='text' size='3' maxlength='1' value='".round($M_W[$a][$b],2)."' /></td>";
         $od = $M_W[$a][$b];
         $memory[$a][$b]=$od;
                 }        
        echo "</tr>";
    }
    echo "<table align=\"center\" class=\"komorka\"><caption>A<sup>-1</sup>:</caption>";
    for ($o =0; $o <$n; $o++)
    {
        echo "<tr>";
        for ($t = $n; $t<$w; $t++)
         {
                 echo "<td><input type='text' size='3' maxlength='1' value='".round($memory[$o][$t],2)."' /></td>";
    
                 }        
        echo "</tr>";
    }
    //ustawianie danych sesyjnych jesli zostala zaznaczona taka opcja
    if(isset($_POST['Odwr'])) {//jesli opcja jest zaznaczona
    $_SESSION['dane'] = $memory;//ustawia wartosci
    $_SESSION['ilewierszy'] = $n;//ustawia wiersze
    $_SESSION['ilekolumn'] = $n;//ustawia kolumny
    }
    echo "</table>";
         }
natomiast kod na stronie głównej się nie zmienił i co dziwnego w tym przypadku tworzy macierz o zadanych wymiarach ale już jej nie uzupełnia, specialnie wypisana jest w kodzie macierz memory i taka jest stworzona ale już jej wyświetlenie na ekran powoduje wypełnienie zerami.

Pomocy
Kod
var_dump($_SESSION);
pokazuje że w tablicy sesyjnej są dane natomiast
Kod
<?php
var_dump($_SESSION);
  if(!empty($_SESSION['dane'])){
$dane=$_SESSION['dane'];
   $w=$_SESSION['ilewierszy'];//ustawia wiersze
   $k=$_SESSION['ilekolumn'];
    echo "<table  border=\"1\" align=\"center\"><caption>Macierz M</caption>";
    for ($iw =0; $iw <$w; $iw++)
    {
        echo "<tr>";
        for ($jk = 0; $jk<$k; $jk++)
            echo "<td width=\"35\">" . round($dane[$iw][$jk],3) . "</td>";
        echo "</tr>";
    }
    echo "</table>";
   }?>
nie wyświetla tego już kto widzi bład pliska
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.