Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klopot ze zmiennymi a konkretnie ze scieżką
Forum PHP.pl > Forum > PHP
Matiash
Witam, no wiec mam plik "upload.php". Plik ten tzn "upload.php" tworzy folder oraz plik "opis.txt" w ktorym sa umieszczane dane uzytkonika. Oprocz tego plik"upload.php" zawiera skrypt uploadu zdjec. Po zauplodowaniu kazde zdjecie sie wyswietla i obok kazdego zdjecia pojawia sie input gdzie uzytkownik ma mozliwosc dopisania tytulów zdjec. Kiedy uzytkownik wpisze tytuly zdjec i kliknie "dalej" to odnosze go do pliku "up.php" ktory pobiera tytuly zdjec i je wyswietla. Moj problem polega na tym ze chcialbym te tytuly dopisac do tego pliku "opis.txt" ktory juz zostal utworzony w pliku "upload.php"

Plik "upload.php"
  1. <?php
  2. $currentdir=getcwd();
  3.  
  4. $currentdir= "./pliki/".date('dmyHis')."/";
  5. mkdir($currentdir ,0777);//tworzymy katalog
  6. $plik=fopen($currentdir."opis.txt","w+");
  7. fputs($plik,"Imię i nazwisko:".chr(10).$_POST['imie'].chr(10).chr(10)."Adres email:".chr(10).$_POST['email'].chr(10).chr(10)."Kategoria:".chr(10).$_POST['kategoria'].chr(10).chr(10)."Tytuł:".chr(10).$_POST['tytul'].chr(10).chr(10)."Treść wiadomości:".chr(10).$_POST['tresc'].chr(10).chr(10)."Dodano: ".chr(10).date("d F Y, H:i"));
  8. fclose($plik); 
  9. echo "Dziękujemy za przesłanie relacji. Do 24 h powinna ukazać się na stronie.<br /><br />";
  10.  
  11. //tutaj znajduje sie skrypt uploadu... Znacznie by wydłużył kod wiec go nie wkleja
    łem w całości
  12. echo'<form action="up.php" method="post">';
  13. echo '<td width="327"><textarea cols=30 rows=5 name=tytul[]></textarea></td>';
  14. echo'<input type="submit" name="wgraj" value="Wyślij" />';
  15. echo'</form>';
  16. ?>


Plik "up.php"
  1. <?php
  2. foreach ($_POST as $klucz => $tablica ) {
  3. echo '<br>';
  4. foreach ($tablica as $nr_wiersza => $warotsc )
  5.  echo 'nr wiersza: '.$nr_wiersza.' wartosc :'.$warotsc.'<br>';
  6. //otwieramy plik
  7. $nazwapliku = $currentdir."opis.txt";
  8. $trochetresci = $warotsc;
  9.  
  10. // Najpierw przekonaj się czy plik istnieje i jest zapisywalny.
  11. if (is_writable($nazwapliku)) {
  12.  
  13.  
  14. if (!$uchwyt = fopen($nazwapliku, 'a')) {
  15.  echo "Nie mogę otworzyć pliku ($nazwapliku)";
  16.  exit;
  17.  }
  18.  
  19. // Zapis $trochetresci do naszego otwartego pliku.
  20. if (fwrite($uchwyt, $trochetresci) === FALSE) {
  21.  echo "Nie mogę zapisać do pliku ($nazwapliku)";
  22.  exit;
  23.  }
  24.  
  25. echo "Sukces, zapisano ($trochetresci) do pliku ($nazwapliku)";
  26.  
  27. fclose($uchwyt);
  28.  
  29. } else {
  30. echo "Plik $nazwapliku nie jest zapisywalny";
  31. }
  32. //zamykamy plik
  33.  }
  34.  
  35. ?>


Wszystko mozna by rzec ze dziala dobrze jednak nie dopisuje mi tych tytułów zdjęć do tego pliku "opis.txt"

Podejrzewam ze blad jest w sciezkach do pliku opis.txt. Tzn ze w pliku "upload.php" mam skonkretyzowane co to jest za zeminnna $currentdir a w plik up.php nie mam.
Mam nadzieje ze dobrze to opisalem


Tzn chodzi o to jak pobrac ta zmienna $currentdir z pliku upload.php do up.php, zeby miala te sama wartosc ?
pbnan
Dodaj w pliku upload.php w formularzu jedno pole hidden, którego wartością będzie $currentdir.
Następnie będziesz mógł w up.php dojść do tej wartości poprzez $_REQUEST['nazwa_pola'] winksmiley.jpg
Matiash
ok dzieki, działa, mam jeszcze jeden problem, wyskakuje mi blad w up.php :
nr wiersza: 0 wartosc :sadfasdfasdf
Sukces, zapisano (sadfasdfasdf) do pliku (./pliki/180607231611/opis.txt)

Warning: Invalid argument supplied for foreach() in /home.11/t/r/e/trekeart/www/up.php on line 4
Sukces, zapisano (sadfasdfasdf) do pliku (./pliki/180607231611/opis.txt)

Warning: Invalid argument supplied for foreach() in /home.11/t/r/e/trekeart/www/up.php on line 4
Sukces, zapisano (sadfasdfasdf) do pliku (./pliki/180607231611/opis.txt)

  1. <?php
  2. foreach ($_POST as $klucz => $tablica ) {
  3. echo '<br>';
  4. foreach ($tablica as $nr_wiersza => $warotsc )
  5.  echo 'nr wiersza: '.$nr_wiersza.' wartosc :'.$warotsc.'<br>';
  6.  
  7. //otwieramy plik
  8. $nazwapliku = $_REQUEST['sciezka']."opis.txt";
  9. $trochetresci = $warotsc;
  10.  
  11. // Najpierw przekonaj się czy plik istnieje i jest zapisywalny.
  12. if (is_writable($nazwapliku)) {
  13.  
  14.  
  15. if (!$uchwyt = fopen($nazwapliku, 'a')) {
  16.  echo "Nie mogę otworzyć pliku ($nazwapliku)";
  17.  exit;
  18.  }
  19.  
  20. // Zapis $trochetresci do naszego otwartego pliku.
  21. if (fwrite($uchwyt, $trochetresci) === FALSE) {
  22.  echo "Nie mogę zapisać do pliku ($nazwapliku)";
  23.  exit;
  24.  }
  25.  
  26. echo "Sukces, zapisano ($trochetresci) do pliku ($nazwapliku)";
  27.  
  28. fclose($uchwyt);
  29.  
  30. } else {
  31. echo "Plik $nazwapliku nie jest zapisywalny";
  32. }
  33. //zamykamy plik
  34.  }
  35.  
  36. ?>


Ale ogolnie dziala winksmiley.jpg


problem dodatkowo polega na tym ze jak wpisze, np. trzy tytuly zdjec, to dodaje te 3 tytuly do pliku opis.txt ale kazdy z tych tytulow ma nazwe taka sama jak nazwa ostatniego tytulu
pbnan
Cytat
Warning: Invalid argument supplied for foreach() in /home.11/t/r/e/trekeart/www/up.php on line 4

Masz błąd - przekazujesz do foreach STRING, a nie tablicę. Ponieważ każda wartość w $_POST jest strigniem, a Ty chcesz przez ten string iterować. Popraw na takie, jak ma być.

Swoją drogą - nie pomogę Ci do reszty problemów, bo dzisiaj w ogóle nie myślę. 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.