Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zmiana wartości zmiennej - session
Forum PHP.pl > Forum > Przedszkole
kleszcz12
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...
PiXel2.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...
kleszcz12
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...
PiXel2.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. ?>
kleszcz12
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
PiXel2.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.
kleszcz12
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,
Danone
Łą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
kleszcz12
nie bardzo raczej jestem zielony
Danone
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
kleszcz12
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
Danone
Chcesz sobie zapisywać do pliku a później wyświetlać?
kleszcz12
w sumie tak...(może nie tyle zapisywać co zmieniać wartość zmiennej.)
Danone
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
kleszcz12
dzięki...smile.gif
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.