Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]zmiana wartości zmiennej - session
kleszcz12
post 9.05.2008, 17:18:05
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


Witam, skrypt ma działać +/- tak:
Przykładowo:
Plik owoce.php
  1. <?php
  2. $zmienna1 = 'Pomarańcza'
  3. ?>


wchodzę w formularz (formularz_owoce.php)
mam formularz:
  1. <input type="text" name="zmienna1">
  2. <input type="submit" value="wyslij">
  3. </form>

wpisujemy w formularzu Jabłko, klikamy wyslij, i wartość zmiennej z pliku owoce.php z Pomarańcza zostaje zmieniona(zapisana) na Jabłko.
..
Użytkownik "sniezny_wilk" zaproponował żeby zrobić to na zmiennych sesyjnych:

owoce.php:
  1. <?php
  2. session_start();//inicjacja sesji, koniecznie na początku każdego plikui
  3. $_SESSION['zmienna1'] = 'Pomarańcza';
  4. echo 'przed: '.$_SESSION['zmienna1'];
  5. ?>

formularz_owoce.php
  1. <?php
  2. /*tutaj też możemy zobaczyć zmienną */
  3. echo 'przed: '.$_SESSION['zmienna1'];
  4. '
  5. <form name="testowy" action="zapisz.php" method="post"> /*? zapisz.php ? osobna podstrona która zmienia wartość zmiennej $zmienna1 z pliku owoce.php*/
  6. <input type="text" name="zmienna1">
  7. <input type="submit" value="wyslij">
  8. </form>'
  9. ?>

zapisz.php
  1. <?php
  2. echo 'przed: '.$_SESSION['zmienna1'].'<br>';
  3. $_SESSION['zmienna1'] = $_POST['zmienna1'];
  4. ?>

Cytat
I teraz wchodząc na owoce.php, inicjujesz zmienną, potem na formularz, zmieniasz (przekieruje Cię na zapisz.php) i teraz po wejściu na owoce.php (odświeżeniu strony), będzie nowa wartość.


Jednak skrypt nie zmienia wartości zmiennej z pomarańcza, na jabłko.

Proszę o pomoc...
Go to the top of the page
+Quote Post
PiXel2.0
post 9.05.2008, 17:28:19
Post #2





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


A sprobuj zmienic plik zapisz.php
  1. <?php
  2. echo 'przed: '.$_SESSION['zmienna1'].'<br>';
  3. if(isset($_POST['zmienna1'])){
  4.  $_SESSION['zmienna1'] = $_POST['zmienna1'];
  5.  echo 'po: '.$_SESSION['zmienna1'];
  6. }else
  7.  echo 'nie wyslano danych';
  8. ?>


Napisz co Ci po tym wyjdzie...

Ten post edytował PiXel2.0 9.05.2008, 17:29:49
Go to the top of the page
+Quote Post
kleszcz12
post 9.05.2008, 17:35:40
Post #3





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


nic...pojawia się przed: stara wartość, po: nowa wartość,
ale nie zapisuje do pliku w przykłądzie owoce.php

PS. w owoce.php, rodzeilam session start i daje na początek, a reszte w odpowiednim miejscu, nie wiem czy to ma jakieś znaczenie...
Go to the top of the page
+Quote Post
PiXel2.0
post 9.05.2008, 17:40:34
Post #4





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


Usun linie:
  1. <?php
  2. $_SESSION['zmienna1'] = 'Pomarańcza';
  3. ?>

z pliku owoce.php bo inaczej zawsze bedzie ustawialo na wartosc 'Pomarańcza'.

Albo zamien te linie na:
  1. <?php
  2. if(!isset($_SESSION['zmienna1']))
  3.  $_SESSION['zmienna1'] = 'Pomarańcza';
  4. ?>


Ten post edytował PiXel2.0 9.05.2008, 17:42:34
Go to the top of the page
+Quote Post
kleszcz12
post 9.05.2008, 17:46:28
Post #5





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


Ale...jak usune to nie będzie miało gdzie zapisać, i wyświetlić...to ma być dopisane do pliku...żeby każdy wchodzący na stronę to widział.


A nie... nie do końca działa - nie zapisuje w owoce.php, tylko wyświetla nową wartość, a po zrestartowaniu przeglądarki nadal stara...i w pliku tez stara

Ten post edytował kleszcz12 9.05.2008, 17:46:49
Go to the top of the page
+Quote Post
PiXel2.0
post 9.05.2008, 17:46:37
Post #6





Grupa: Zarejestrowani
Postów: 110
Pomógł: 13
Dołączył: 16.03.2007
Skąd: Łódź

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


Dane w sesji sa widoczne jedynie dla klienta ktory ja zainicjowal a nie dla kazdego i sesja nie jest trwala...

Jesli chcesz aby inni uzytkownicy widzieli wprowadzane dane to musisz je zapisac do pliku lub w bazie danych.

Po zamknieciu przegladarki sesja zostaje zakonczona i wszystkie dane zostaja utracone.

Ten post edytował PiXel2.0 9.05.2008, 17:47:50
Go to the top of the page
+Quote Post
kleszcz12
post 9.05.2008, 17:49:12
Post #7





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


właśnie o to mi od początku chodzi tongue.gif

 - sesja pobiera np. nazwe pliku, wprowadzam w formie nową wartość i jest zmieniana w danym pliku,
Go to the top of the page
+Quote Post
Danone
post 9.05.2008, 17:49:43
Post #8





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Łączysz się z bazą to zapewne wiesz jak:

  1. <?php
  2. $sql = "INSERT INTO owoce VALUES ('', '".$_SESSION['pierwszy_owoc']."','".$_SESSION['drugi_owoc']."')";
  3. ?>



A tabela ma budowę np taką:

id_owocu, pierwszy_owoc, drugi_owoc

Ten post edytował Danone 9.05.2008, 17:50:36
Go to the top of the page
+Quote Post
kleszcz12
post 9.05.2008, 17:53:18
Post #9





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


nie bardzo raczej jestem zielony

Ten post edytował kleszcz12 9.05.2008, 17:53:46
Go to the top of the page
+Quote Post
Danone
post 9.05.2008, 17:58:41
Post #10





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Tutaj masz dobry kurs MySQL:

http://webmade.org/kursy-online/kurs-mysql.php

a to przykład łączenia się z bazą przez php:

  1. <?php
  2. mysql_connect('localhost','uzytkownik','haslo');
  3. $polecenie = "SELECT * FROM owoce";
  4.  
  5. $wynik = mysql_query($polecenie);
  6.  
  7. while($row = mysql_fetch_array($wynik)){
  8. echo $row['owoc'];
  9. }
  10. ?>


To wyświetli Ci wszystkie owoce z twojej tabeli smile.gif

Czytaj a zrozumiesz smile.gif
Go to the top of the page
+Quote Post
kleszcz12
post 9.05.2008, 18:20:25
Post #11





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


ale...zmienna ma być zmieniana/zapisywana do pliku *.php nie w bazie mysql

Coś takiego jak tu, tylko bardziej zautomatyzowane...http://forum.php.pl/index.php?showtopic=93411&st=0&p=469176&#entry469176
Go to the top of the page
+Quote Post
Danone
post 9.05.2008, 20:56:13
Post #12





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Chcesz sobie zapisywać do pliku a później wyświetlać?
Go to the top of the page
+Quote Post
kleszcz12
post 9.05.2008, 21:04:41
Post #13





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


w sumie tak...(może nie tyle zapisywać co zmieniać wartość zmiennej.)
Go to the top of the page
+Quote Post
Danone
post 9.05.2008, 21:24:58
Post #14





Grupa: Zarejestrowani
Postów: 169
Pomógł: 16
Dołączył: 18.10.2006
Skąd: Olsztyn/Wrocław

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


Możesz sobie te wartości zapisywać np w cookie:


  1. <?php
  2. setcookie('owoc',$_SESSION['owoc'],time()+60*60*24*30);
  3.  
  4. echo $_COOKIE['owoc'];
  5. ?>



Akurat to cookie jest ustawione na 30 dni. Jak np sobie zamiast time()+60*60*24*30 wpiszesz 0 to cookie zostanie usunięte po zamknięciu przeglądarki. Widzę, że nie jesteś w temacie dość obeznany, to naprawdę odsyłam do kursu.

Temat: Kursy dla poczatkujacych

poczytaj sobie, nauczysz się i zapamiętasz na dłużej smile.gif

Ten post edytował Danone 9.05.2008, 21:25:56
Go to the top of the page
+Quote Post
kleszcz12
post 10.05.2008, 08:51:48
Post #15





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 16.03.2008

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


dzięki...smile.gif
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: 18.06.2025 - 08:37