Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sesje nadpisywanie
sidkoz
post 16.06.2009, 14:07:14
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.01.2009

Ostrzeżenie: (0%)
-----


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

Ten post edytował sidkoz 14.06.2009, 14:25:04
Go to the top of the page
+Quote Post
erix
post 16.06.2009, 14:24:36
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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

A coś oprócz tego? Jakieś błędy?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
sidkoz
post 16.06.2009, 14:53:19
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.01.2009

Ostrzeżenie: (0%)
-----


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 ?
Go to the top of the page
+Quote Post
erix
post 16.06.2009, 15:09:19
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Używać odpowiednich zmiennych z tablic predefioniowanych ($_GET/$_POST).


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
sidkoz
post 17.06.2009, 17:17:55
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.01.2009

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:52