Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przesyłanie zmiennych między plikami
Forum PHP.pl > Forum > PHP
gibon1617
Witam Mówiąc w skrócie jestem w trakcie tworzenia skryptu dodającego zdjęcia do bazy danych. Sytuacja wygląda tak:
1. Wysyłam dane formularzem html z pliku galeria.php do pliku add_photos.php
2. Tutaj dane są sprawdzane i dodawane

I tu mam problem

3. Chcę zwrócić do pliku galeria.php wartości niektórych zmiennych z pliku add_photos.php

Myślałem, że da się to załatwić za pomocą zmiennych superglobalnych $_POST, ale to chyba tak nie działa. Po powrocie do galeria.php te zmienne takjakby giną.

chodiz o te zmienne :$_POST['rozmiar']; $_POST['nazwa']; $_POST['typ']; $_POST['info']; $_POST['komunikat'];

Z góry dzięki za pomoc smile.gif

  1. <?php
  2. header('Content-Type: text/html; charset=utf-8');
  3.  
  4. include("db_connect.php");
  5. db_connect();
  6.  
  7. $album=$_POST['album']; //odebranie wartosci z formularza galeria.php
  8. $nowy=$_POST['nowy'];
  9. $data=$_POST['data'];
  10.  
  11. $ile=count($_FILES['plik']['name']); //ilosc przyslanych zdjec
  12. $max_rozmiar = 3*1024*1024; // maksymalny rozmiar 3MB
  13. $komunikat='';
  14.  
  15. if($album=='Nowy album'&&isset($nowy)){ // warunek na utworzenie nowego albumu
  16. $query="INSERT INTO `albumy`(`id`, `nazwa`) VALUES (NULL, '$nowy')";
  17. $result=mysql_query($query); // dodanie nowego albumu do bazy
  18.  
  19. if(!$result){
  20. $komunikat.='Nie stworzono albumu w bazie danych!<br/>';
  21. return 0;
  22. }
  23. else{
  24. $query1="SELECT `id` FROM `albumy` WHERE `nazwa`='$nowy' ";
  25. $result1=mysql_query($query1); //wybranie id albumu z "albumy" aby ustalic id_albumu w "zdjecia"
  26. if(!$result1 || !mysql_num_rows($result1)){
  27. $komunikat.='Brak albumu w bazie!<br/>';
  28. return 0;
  29. }
  30. else{
  31. $id_albumu=mysql_result($result1,0,"id"); //odebranie id_albumu
  32.  
  33. if(!is_dir("img/$nowy")){ //sprawdza czy dany album istnieje
  34. mkdir("img/$nowy"); //jesli nie tworzy nowy
  35. }
  36. else{
  37. $komunikat.='Taki album juz istnieje!<br/>'; //jesli tak zwraca komunikat i konczy
  38. return 0;
  39. }
  40. }
  41.  
  42. for($i=0;$i<$ile;$i++){ //petla dodajaca zdjecia do tablicy
  43. $tmp_nazwa=$_FILES['plik']['tmp_name'][$i]; //nazwy zmiennych tablicy z plikami
  44. $nazwa=$_FILES['plik']['name'][$i];
  45. $rozmiar=$_FILES['plik']['size'][$i];
  46. $typ=$_FILES['plik']['type'][$i];
  47.  
  48. $_POST['rozmiar'][$i]=round($rozmiar/1024,1).'kB'; // tablica post przesylajaca info o zdjeciu do galeria.php
  49. $_POST['typ'][$i]=$typ;
  50. $_POST['nazwa'][$i]=$nazwa;
  51. $_POST['info'][$i]='Dodano pomyślnie.';
  52.  
  53. if(is_uploaded_file($tmp_nazwa)){ //sprawdza czy przyslano plik
  54. if($rozmiar>$max_rozmiar) { //sprawdza rozmiar, jesli plik jest za duzy zwraca komunikat
  55. $_POST['info'][$i]='Plik jest za duży!';
  56. }
  57. else{
  58. if(isset($typ)&&($typ=='image/jpeg'||$typ=='image/png'||$typ=='image/gif')){ //sprawdza typ pliku
  59. $nazwa=str_replace(" ","_",$nazwa); //zamienia spacje na "_" w nazwie pliku
  60.  
  61. move_uploaded_file($tmp_nazwa,
  62. $_SERVER['DOCUMENT_ROOT'].'/strona/img/'.$nowy.'/'.$nazwa); //przenosi plik do odpowiedniego albumu
  63.  
  64. $sciezka='/img/'.$nowy.'/'.$nazwa; //sciezka do pliku dodawana do bazy danych
  65. $query2="INSERT INTO `zdjecia` (`id`,`data`,`sciezka`,`id_albumu`) VALUES (NULL,'$data','$sciezka','$id_albumu')";
  66. $result2=mysql_query($query2); //wstawienie zdjecia do bazy (id_albumu - w jakim albumie znajduje sie zdjecie)
  67. if(!$result2){
  68. $_POST['info'][$i]='Błąd dodania do bazy!';
  69. }
  70. }
  71. else{ //komunikat gdy typ pliku jest zly
  72. $_POST['info'][$i]='Zły typ pliku!';
  73. }
  74. }
  75. }
  76. else{
  77. $_POST['info'][$i]='Błąd przy przesyłaniu plkiu!';
  78. }
  79. }
  80. }
  81. $_POST['komunikat']=$komunikat;
  82. }
  83. else if($album!='Nowy album'&&$nowy==''){
  84. $query1="SELECT `id` FROM `albumy` WHERE `nazwa`='$album' ";
  85. $result1=mysql_query($query1); //wybranie id albumu z "albumy" aby ustalic id_albumu w "zdjecia"
  86. if(!$result1 || !mysql_num_rows($result1)){
  87. $komunikat.='Brak albumu w bazie!<br/>';
  88. return 0;
  89. }
  90. else{
  91. $id_albumu=mysql_result($result1,0,"id"); //odebranie id_albumu
  92.  
  93. if(is_dir("img/$album")){ //sprawdza czy dany album istnieje
  94.  
  95. for($i=0;$i<$ile;$i++){ //petla dodajaca zdjecia do tablicy
  96. $tmp_nazwa=$_FILES['plik']['tmp_name'][$i]; //nazwy zmiennych tablicy z plikami
  97. $nazwa=$_FILES['plik']['name'][$i];
  98. $rozmiar=$_FILES['plik']['size'][$i];
  99. $typ=$_FILES['plik']['type'][$i];
  100. $_POST['info'][$i]='Dodano pomyślnie.';
  101.  
  102. $_POST['rozmiar'][$i]=round($rozmiar/1024,1).'kB'; // tablica post przesylajaca info o zdjeciu do galeria.php
  103. $_POST['typ'][$i]=$typ;
  104. $_POST['nazwa'][$i]=$nazwa;
  105.  
  106. if(is_uploaded_file($tmp_nazwa)){ //sprawdza czy przyslano plik
  107. if($rozmiar>$max_rozmiar) { //sprawdza rozmiar, jesli plik jest za duzy zwraca komunikat
  108. $_POST['info'][$i]='Plik jest za duży!';
  109. }
  110. else{
  111. if(isset($typ)&&($typ=='image/jpeg'||$typ=='image/png'||$typ=='image/gif')){ //sprawdza typ pliku
  112. $nazwa=str_replace(" ","_",$nazwa); //zamienia spacje na "_" w nazwie pliku
  113.  
  114. move_uploaded_file($tmp_nazwa,
  115. $_SERVER['DOCUMENT_ROOT'].'/strona/img/'.$album.'/'.$nazwa); //przenosi plik do odpowiedniego albumu
  116.  
  117. $sciezka='/img/'.$album.'/'.$nazwa; //sciezka do pliku dodawana do bazy danych
  118. $query2="INSERT INTO `zdjecia` (`id`,`data`,`sciezka`,`id_albumu`) VALUES (NULL,'$data','$sciezka','$id_albumu')";
  119. $result2=mysql_query($query2); //wstawienie zdjecia do bazy (id_albumu - w jakim albumie znajduje sie zdjecie)
  120. if(!$result2){
  121. $_POST['info'][$i]='Błąd dodania do bazy!';
  122. }
  123. }
  124. else{ //komunikat gdy typ pliku jest zly
  125. $_POST['typ'][$i]='Zły typ pliku';
  126. }
  127. }
  128. }
  129. else{
  130. $_POST['info'][$i]='Błąd przy przesyłaniu plkiu!';
  131. }
  132. }
  133. }
  134. else{
  135. $komunikat.='Nie ma takiego albumu!<br/>'; //jesli tak zwraca komunikat i konczy
  136. return 0;
  137. }
  138. }
  139. $_POST['komunikat']=$komunikat;
  140. }
  141. header('Location: galeria.php?mode=dodaj');
  142. ?>

Pyton_000
Magiczne słowo "$_SESSION"
gibon1617
Czyli po prostu zamiast $_POST użyć $_SESSION? Jeśli tak to wielkie dzięki. Mały problem dla Ciebie duży dla mnie. Nie wpadłbym na to, żeby użyć do tego sesji.
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.