Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Losowanie i wyświetlanie plików
Forum PHP.pl > Forum > Przedszkole
bemol
Mianowicie mam taki problem (już nie pierwszy biggrin.gif):
Chcę utworzyć taki pliczek PHP, który:
1. Losuje liczbę. ($losowy zakres: 1-60)
2. Otwiera i wyświetla plik: "ciekawe/$losowy.htm(ewentualnie $losowy.txt)"
3. Wyświetla >> Następny oraz << Poprzedni, ale już nie losując tylko idąc po kolei.
Przykładowo wylosuje 45 i teraz wyświetla sie następny, a po jego kliknięciu otwiera sie 46 i analogicznie z poprzedni.
4. if $losowy = 60; to nie wyświetlaj(lub ukryj) Następny
5. if $losowy = 1; to nie wyświetlaj(lub ukryj) Poprzedni

No i właściwie tyle. Teraz pokaże to co już zrobiłem. Wiem, że to zagmatwałem, ale musiałem sobie poradzić ze swoją wiedzą php winksmiley.jpg

show.php
  1. <?php
  2. function losuj() 
  3. { 
  4. $losowy = rand(1, 60); 
  5. }
  6. $losowy = 1;
  7.  
  8. if (empty($losowy)) {
  9. echo "błąd"; }
  10. else {
  11.  
  12. losuj();
  13. include("ciekawe/$losowy.htm");
  14.  
  15. $wstecz = $losowy - 1;
  16. $naprzod = $losowy + 1;
  17.  
  18. echo "<br /><table>";
  19. echo "<tr>";
  20. echo "<td><a href=ciekawe/$wstecz.htm>Poprzednia</a></td>";
  21. echo "<td><a href=ciekawe/$naprzod.htm>Następna</a></td>";
  22. echo "</tr>";
  23. echo "</table>";
  24. ?>


Wiem że liniki:
  1. <?php
  2. echo "<td><a href=ciekawe/$wstecz.htm>Poprzednia</a></td>";
  3. echo "<td><a href=ciekawe/$naprzod.htm>Następna</a></td>";
  4. ?>


nie mogą być ponieważ gdy mnie odeśle do tego pliku to nie wyświetli już ponownie tego skryptu :/ Ale o czym ja mówie, w tej chwili w ogóle nie chce sie wyświetlić.
http://bemol.xt.pl >> Ciekawostki >> Przeglądaj
lub bemol.xt.pl/ciekawostki/show.php
Darti
Jakoś tak to może wyglądać (to jeszcze nie jest dobre, ale na szybko chyba zadziała)
  1. <?php
  2. if (isset($_GET['page']) && is_numeric($_GET['page'])){
  3. include('ciekawe/'.$_GET['page'].'htm');
  4. } else {
  5.  
  6. $page = rand(1, 60);
  7.  
  8. if (!is_file('ciekawe/'.$page.'htm')) {
  9. echo 'błąd, nie ma pliku'; }
  10. else {
  11.  
  12. include('ciekawe/'.$page.'htm');
  13.  
  14. if ($page > 1){
  15. $poprzednia = '<a href=?page='. $page-1 .'>Poprzednia</a>';
  16. }
  17. if($page <60){
  18. $nastepna = '<a href=?page='. $page+1 .'>Poprzednia</a>';
  19. }
  20.  
  21. echo "<br /><table>";
  22. echo "<tr>";
  23. echo "<td>$poprzednia</td>";
  24. echo "<td>$nastepna</td>";
  25. echo "</tr>";
  26. echo "</table>";
  27. }
  28. }
  29. ?>
bemol
Dzięki, troszkę to zmieniłem, bo były błędy
  1. <?php
  2. if ($page > 1){
  3. $poprzednia = $page-1;
  4. echo '<a href=?page='.$poprzednia.'>Poprzednia</a>';
  5. }
  6. if($page <60){
  7. $nastepna = $page+1;
  8. echo '<a href=?page='.$nastepna.'>Następna</a>';
  9. }
  10. ?>


I teraz wyskakuje:
Parse error: syntax error, unexpected $end in /var/www/sites/yoyo.pl/b/b/bbemol/ciekawostki/show.php on line 88
Podczas, gdy mój kod ma 87 linijek smile.gif

Edit: okazało sie ze brakowało klamrów smile.gif

Tylko teraz jest następujący problem, że pisze błąd, brak pliku podczas gdy on istnieje smile.gif
Darti
w katalogu ciekawe maja być pliki:
1.htm
2.htm
...
60.htm

A u Ciebie skrypt php jest w tym samym katalogu co plik *.htm
Wrzuć wszystkie 60 (sic!) plików htm do podkatalogu ciekawe (podkatalogu względem katalogu, w którym jest skrypt).
bemol
nie prawda. smile.gif



1. Katalog "ciekawe"
2. nazwy plików w folderze ciekawe
3. skrypt o który sie rozchodzi

na ftp wszystko mam identycznie jak tutaj na komputerze smile.gif
skowron-line
  1. <?php
  2. if (!is_file('ciekawe/'.$page.'htm')) {
  3. ?>


zobacz
jezeli zrobisz sobie cos takiego

  1. <?php
  2. echo 'ciekwawe/'.$page.'html';
  3. ?>


to wynik bedzie taki

Kod
1html


czyli co?questionmark.gifquestionmark.gifquestionmark.gif brakuje kropki

reasumujac ma byc tak

  1. <?php
  2. if (!is_file('ciekawe/'.$page.'.htm')) {
  3. ?>


pzdr
Darti
hihi smile.gif waves to skowron-line smile.gif kropeczkę przeoczyliśmy tongue.gif
bemol
i o tym pomyślałem i tak zrobiłem, ale z tego co widze zapomniałem o jeszcze jednej kropce (na 3) biggrin.gif Wiec zobacze co sie bedzie dzialo i jeszcze napisze smile.gif
Edit: Niestety to nic nie zmieniło.
Dla sprawdzenia dodałem sobie linijkę:
  1. <?php
  2. echo $page;
  3. ?>

Niestety nic nie wyświetla.
skowron-line
  1. <?php
  2. if (!is_file('ciekawe/'.$page.'htm')) {
  3. ?>


kurna przeoczenie

zamien to na to
  1. <?php
  2. if (!file_exists('ciekawe/'.$page.'htm')) {
  3. ?>


i zobacz czy plik istnieje
bemol
W tej chwili plik show.php wygląda następująco:

show.php
  1. <?php
  2. include('connection.php');
  3. echo '<style type="text/css" media="all">@import "add_style.css";</style>';
  4.  
  5. $page = $_GET['page'];
  6.  
  7. if(isset($_GET['page']) && is_numeric($_GET['page'])) {
  8. include('ciekawe/'.$_GET['page'].'.htm');
  9. } else {
  10. function losuj() 
  11. { 
  12. //zwracamy wylosowana wartosc
  13. return rand(1, 60); 
  14. }
  15.  
  16. $page = losuj(); //tutaj wywyolujemy funkcje losuj() a zawrocona przez nia wartosc przypisujemy do zmiennej $page
  17. if (!file_exists('ciekawe/'.$page.'.htm')) {
  18. echo 'błąd, nie ma pliku'; }
  19. else {
  20.  
  21. include('ciekawe/'.$page.'.htm');
  22.  
  23. if ($page > 1){
  24. $poprzednia = $page-1;
  25. echo '<a href=?page='.$poprzednia.'>Poprzednia</a>';
  26. }
  27. if($page <60){
  28. $nastepna = $page+1;
  29. echo '<a href=?page='.$nastepna.'>Następna</a>';
  30. }
  31.  
  32. echo "<br /><table>";
  33. echo "<tr>";
  34. echo "<td>$poprzednia</td>";
  35. echo "<td>$nastepna</td>";
  36. echo "</tr>";
  37. echo "</table>";
  38.  
  39. }}
  40. ?>


Prawie wszystko jest ok, bo wyświetla Poprzedni, następny i można przejść do strony. Tylko jest jeden problem. Jak klikniemy na poprzedni albo następny to wyświetli następną ciekawostkę, lecz już nie ma poprzedni, następny. Nad tym problemem dumam już 15h i nic nie moge wymyślić. Proszę o pomoc. Jeśli źle wytłumaczyłem, proszę zobaczyć na http://bemol.xt.pl/ciekawostki/show.php
Darti
  1. <?php
  2. include('connection.php');
  3. echo '<style type="text/css" media="all">@import "add_style.css";</style>';
  4.  
  5. $page = $_GET['page'];
  6.  
  7. if(isset($_GET['page']) && is_numeric($_GET['page'])) {
  8. include('ciekawe/'.$_GET['page'].'.htm');
  9. } else {
  10. function losuj() 
  11. { 
  12. //zwracamy wylosowana wartosc
  13. return rand(1, 60); 
  14. }
  15.  
  16. $page = losuj(); //tutaj wywyolujemy funkcje losuj() a zawrocona przez nia wartosc przypisujemy do zmiennej $page
  17. }
  18. if (!file_exists('ciekawe/'.$page.'.htm')) {
  19. echo 'błąd, nie ma pliku'; }
  20. else {
  21.  
  22. include('ciekawe/'.$page.'.htm');
  23.  
  24. if ($page > 1){
  25. $poprzednia = $page-1;
  26. echo '<a href=?page='.$poprzednia.'>Poprzednia</a>';
  27. }
  28. if($page <60){
  29. $nastepna = $page+1;
  30. echo '<a href=?page='.$nastepna.'>Następna</a>';
  31. }
  32.  
  33. echo "<br /><table>";
  34. echo "<tr>";
  35. echo "<td>$poprzednia</td>";
  36. echo "<td>$nastepna</td>";
  37. echo "</tr>";
  38. echo "</table>";
  39.  
  40. }
  41. ?>
bemol
lol, i działa biggrin.gif wystarczyło 1 klamre zmienić a ja sie tyle męczyłem.
Dzięki wielkie.
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.