Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sesja nie jest przekazywana
Forum PHP.pl > Forum > Przedszkole
jamil1
mad.gif Mam następujący problem z sesjami na 1.php mam napisane tak
  1. <?php
  2.  
  3. foreach($_POST as $k->$v){
  4. $_SESSION[$k]=$v;
  5. }
  6. echo "<p>ID sesji:".session_id()."</p>";
  7.  
  8.  
  9. ?>

<br><br><br><br><form name="Sample" method="POST" action="2.php">
<br><input type="text" name="co" size="15" maxlength="15" value="a">
<br><input type="submit" name="Login1" value="Loguj1"></form>>

w drugim pliku o nazwie 2.php mam tak

  1. <?php
  2.  
  3. $_SESSION['co'];
  4.  
  5. echo "to co zawiera sesja : $co<br>";
  6. echo "to co jest poza sesją : $co1";
  7.  
  8. ?>

<form method="post" action="3.php">
<input type="submit" value="next">

a w trzecim pliku o nazwie 3.php mam coś takiego

  1. <?php
  2.  
  3. $_SESSION['co'];
  4. echo "$co";
  5. echo "ba";
  6.  
  7. ?>


No i tu pojawia sie istota problemu gdyż pomiędzy plikiem 1.php a 2.php jest przekazywane to co ma być w sesji ale gdzy klikne na przycisk na drugiej stronie 2.php i otworzy się strona 3.php to nic już tak jakby nie było w tej sesji.

Prosze o jakąś pomoc exclamation.gif!
mike
1. Pierwszy problem jaki masz to z podstawowa składnią.
Nie tak:
  1. <?php
  2.  
  3. //...
  4. foreach($_POST as $k->$v){
  5. //...
  6.  
  7. ?>

tylko tak:
  1. <?php
  2.  
  3. //...
  4. foreach($_POST as $k => $v){
  5. //...
  6.  
  7. ?>

Doczytaj: foreach
2. Zawsze powinno się startować sesję na początku, o tak:
  1. <?php
  2.  
  3. foreach($_POST as $k =>$v ){
  4. $_SESSION[$k]=$v;
  5. }
  6.  
  7. echo "<p>ID sesji:".session_id()."</p>";
  8.  
  9. ?>

3. Korzystasz z niezadeklarowanych zmiennych:
  1. <?php
  2.  
  3. $_SESSION['co'];
  4. echo "$co"; // po co średniki ?
  5. echo $co; // powinno byc tak
  6. echo "ba";
  7.  
  8. ?>
Skąd masz zmienną $co że chcesz jej użyć?

P.S.
Proszę poprawić temat wątku stosując odpowiedni prefiks.
jamil1
Dzięki wielkie za szybą odpowiedź.

Zmienna $co.
Na pierwszzej stronie mam pole tekstowe o nazwie co i jest to przekazywane do sesji to co się znajdze w tym polu domyślnie jest wstawiana wartość a. Na pozostałych stonach jest pobranie z sesji $_SESSION['co ']; a zmienna $co ma przyjąć tą postać jaka została pobrana z sesji.
mike
To nie jest pobranie:
  1. <?php
  2.  
  3. //...
  4. $_SESSION[ 'co' ];
  5. echo $co; // nic się nie stanie
  6. //...
  7.  
  8. ?>

To jest po prostu: nic :-)
Możesz przypisać do zmiennej:
  1. <?php
  2.  
  3. //...
  4. $co = $_SESSION[ 'co' ];
  5. echo $co; // wyświetli wartość, ale takie przypisania sa bez sensu i nie powinno się tak rob
  6. // skoro można:
  7. echo $_SESSION[ 'co' ];
  8. //...
  9.  
  10. ?>


P.S.
Drugi raz przypominam o temacie wątku. Brakuje mu prefiksu. Popraw proszę.
jamil1
sad.gif Zrobiłem tak jak jest poniżej ale niestety klops jest nadal na 3.php sesja taj jakby była pusta. Co to może być !
Pomocy exclamation.gif!!.
  1. <?php
  2.  
  3.  
  4. //...
  5. $co = $_SESSION[ 'co' ];
  6. echo $co; // wyświetli wartość, ale takie przypisania sa bez sensu i nie powinno się tak rob
  7. // skoro można:
  8. echo $_SESSION[ 'co' ];
  9. //...
  10.  
  11.  
  12. ?>
DeyV
Ale czy w tym 3 pliku również pamietałeś o tym, że trzeba zrobić session_start() ?
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.