Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Zmienna sie nie zmienia
Forum PHP.pl > Forum > Przedszkole
Kuaczor
Od wczoraj zacząłem się bawić PHP i mam taki problem, mam galerie zdjęć, przy każdym zdjęciu jest checkbox, który po zaznaczeniu i zatwierdzeniu powinien generować nową galerie z zaznaczonym checkboxami mam taki skrypt, który sprawdza mi czy checkbox jest zaznaczony:
  1. <?php
  2. $dir = 'images/miniaturki';
  3. $dir2 = 'images/znakiwodne';
  4. $imagesExtensions = array('jpg', 'jpeg', 'png');
  5. $files = scandir($dir2);
  6. $liczbazdjec = 0;
  7.  
  8. for ($a = 0; $a < 6; $a++){
  9. $_SESSION['zdjecie'][$a] = 1;
  10. }
  11.  
  12. //ile zdjec jest w sumie w galerii
  13. foreach($files AS $file) {
  14. $fileinfo = pathinfo($file);
  15. if(is_file($dir2.'/'.$file) AND in_array($fileinfo['extension'], $imagesExtensions)) {
  16. $liczbazdjec++;
  17. }
  18. }
  19.  
  20. for ($i = 0; $i < $liczbazdjec;$i++){
  21. $number = count($_POST[''.$i.'']);
  22. if($number == 1){
  23. $_SESSION['zdjecie'][$i] = 1;
  24. }else{
  25. $_SESSION['zdjecie'][$i] = 0;
  26. }
  27. }
  28.  
  29. for ($i = 0; $i < $liczbazdjec; $i++){
  30. echo $_SESSION['zdjecie'][$i];
  31. }
  32.  
  33. header( 'Location: index.php' )
  34. ?>


A to Galeria:

  1. <form action="wyborzdjec.php" method="post">
  2. <?php
  3. $dir = 'images/miniaturki';
  4. $dir2 = 'images/znakiwodne';
  5. $imagesExtensions = array('jpg', 'jpeg', 'gif', 'png');
  6. $files = scandir($dir2);
  7. $_SESSION['pozycja'] = 0;
  8.  
  9. foreach($files AS $file) {
  10. $fileinfo = pathinfo($file);
  11. if(is_file($dir2.'/'.$file) AND in_array($fileinfo['extension'], $imagesExtensions)) {
  12. //echo '<a href="'.$dir2.'/'.$file.'"><img src="'.$dir.'/'.$file.'" alt="miniaturka" /></a><br />';
  13. //echo $_SESSION['zdjecie'][$_SESSION['pozycja']];
  14. if($_SESSION['zdjecie'][$_SESSION['pozycja']]==1){
  15. echo '<input type="checkbox" name="'.$_SESSION['pozycja'].'" value="'.$_SESSION['pozycja'].'" /><a href="'.$dir2.'/'.$file.'"><img src="'.$dir.'/'.$file.'" alt="miniaturka" /></a><br /><br />';
  16. }
  17. $_SESSION['pozycja']++;
  18. }
  19. }
  20. for ($i = 0; $i < 6; $i++){
  21. echo $_SESSION['zdjecie'][$i];
  22. }
  23. ?>
  24. <input type="submit" value="Wyslij">
  25. </form>

w indeksie mam:
  1. <?php
  2.  
  3. if(!isset($_SESSION['licznik'])){
  4. $_SESSION['licznik'] = 0;
  5. for ($a = 0; $a < 6; $a++){
  6. $_SESSION['zdjecie'][$a] = 1;
  7. }
  8. }else{
  9. $_SESSION['licznik']++;
  10. }
  11.  
  12.  
  13. echo 'Odwiedziles juz '.$_SESSION['licznik'].' podstron! <br/>';
  14.  
  15. require_once('galeria.php');
  16.  
  17. ?>


Problem jest taki, że zmienna $_SESSION['zdjecie'][$i] w skrypcie ze sprawdzaniem checkboxow jest zmodyfikowana, a w skrypcie z galeria już nie ( ma podstawowe wartości = 1 nadane w indeksie na samym początku). Jakieś rady? Przypominam, że to mój drugi dzień z PHP ^^.
Kshyhoo
A inicjujesz sesje?
Kuaczor
Tak, dodałem co mam w indeksie jeszcze.

Okej poradziłem sobie, po prostu nie wiedziałem, że na początku KAŻDEGO pliku musi być Session_start(); ;s. Mam nowy problem ( znowu z nie zmieniajaca sie zmienna ) mam taki kod w indeksie:
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3.  
  4.  
  5. <head>
  6. <title>Szablon Strony</title>
  7. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  8. </head>
  9.  
  10. <body>
  11.  
  12. <form action="upload.php" method="post" enctype="multipart/form-data">
  13. <h2>Tytul zdjecia</h2><br/>
  14. <input type="text" name="nazwa"><br/>
  15. <h2>Znak wodny</h2><br/>
  16. <input type="text" name="znakWodny"><br/>
  17. <input type="file" name="plik"><br>
  18. <input type="submit" value="Wyslij">
  19. </form>
  20. <br/>
  21.  
  22. <?php
  23. if(!isset($_SESSION['licznik'])){
  24. $_SESSION['licznik'] = 0;
  25. $_SESSION['identyfikator'] = 0;
  26.  
  27. $dir = 'images/miniaturki';
  28. $dir2 = 'images/znakiwodne';
  29. $imagesExtensions = array('jpg', 'jpeg', 'gif', 'png');
  30. $files = scandir($dir2);
  31. $ilezdjec = 0;
  32.  
  33. foreach($files AS $file) {
  34. $fileinfo = pathinfo($file);
  35. if(is_file($dir2.'/'.$file) AND in_array($fileinfo['extension'], $imagesExtensions)) {
  36. $ilezdjec++;
  37. }
  38. }
  39. for ($a = 0; $a < $ilezdjec; $a++){
  40. $_SESSION['zdjecie'][$a] = 1;
  41. }
  42. }else{
  43. $_SESSION['licznik']++;
  44. }
  45.  
  46.  
  47. echo 'Odwiedziles juz '.$_SESSION['licznik'].' podstron! <br/>';
  48. require_once('galeria.php');
  49. require_once('logowanie.php');
  50. echo 'Identyfikator: '.$_SESSION['identyfikator'].'<br/>';
  51. ?>
  52.  
  53.  
  54.  
  55. </body>
  56. </html>

logowanie.php:
  1. <form action="login.php" method="post">
  2. <input type="text" name="login"><br/>
  3. <input type="text" name="haslo"><br>
  4. <input type="submit" value="Loguj">
  5. </form>

login.php:
  1. <?php
  2. $xml = simplexml_load_file("uzytkownicy.xml");
  3. $login = $_POST['login'];
  4. $haslo = $_POST['haslo'];
  5. $_SESSION['id'] = 0;
  6.  
  7. foreach ($xml->uzytkownik as $uzytkownik) {
  8. echo "Appeared: ".$uzytkownik->identyfikator; echo '<br/>';
  9. echo "Appeared: ".$uzytkownik->nazwa; echo '<br/>';
  10. echo $uzytkownik->haslo; echo '<br/>';
  11. if($login == $uzytkownik->nazwa && $uzytkownik->haslo == MD5($haslo)){
  12. echo 'zalogowany!'; echo '<br/>';
  13.  
  14. $_SESSION['identyfikator'] = $uzytkownik->identyfikator;
  15.  
  16. echo 'identyfikator to:'; echo $_SESSION['identyfikator']; echo '<br/>';
  17. break;
  18. }else{
  19. echo 'Bledny login';
  20. }
  21. }
  22. ?>


Wszystkie dane z pliku czyta mi dobrze, przypisuje wartosc do identyfikatora, ale gdy wracam do indeksu to znowu identyfikator wynosi 0. Jeden problem rozwiazalem, a teraz drugi. Jakies rady?
Kshyhoo
Cytat(Kuaczor @ 20.01.2014, 17:35:45 ) *
Wszystkie dane z pliku czyta mi dobrze, przypisuje wartosc do identyfikatora, ale gdy wracam do indeksu to znowu identyfikator wynosi 0. Jeden problem rozwiazalem, a teraz drugi. Jakies rady?

A ile ma wynosić, skoro:
  1. $_SESSION['id'] = 0;
Kuaczor
Zauwaz, ze id =/= identyfikator. To jest pozostalosc po tym jak probowalem przepisac do innej zmiennej i ta zmienna przekazywac.
com
zacznijmy od tego że session_start(); masz mieć na początku pliku przed wysłaniem danych do przeglądarki a w index tak nie masz, pewnie masz błąd o modyfikacji nagłówka, ale masz zapewne wyłączone raportowanie błędów wink.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.