Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt działa samodzielnie, includowany na stronie już nie
brzydalson
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.03.2010

Ostrzeżenie: (0%)
-----


Witam. Pracuję nad nową stroną i chcę napisać skrypt tworzący galerie zdjęć oraz na podstawie plików znajdujących się na ftp tworzy linki do poszczególnych galerii. Wszystko szło świetnie. Udało mi się zrobić podobny skrypt ale do aktualności. Problem zaczął się wtedy gdy ten od galerii zaincludowałem na stronie. Oto kod skryptu:
  1. <?php
  2. $licznik = 0;
  3. $zawartosc = array();
  4. foreach (glob("galerie/*") as $filename) { // W tym miejscu wywala błąd
  5. if(is_dir($filename)){
  6. $zawartosc[$filename] = date('Y-m-d H:i:s',filemtime($filename));
  7. }
  8. }
  9. arsort($zawartosc);
  10. while (list ($klucz) = each ($zawartosc)) {
  11. $file2 = basename ($klucz);
  12. foreach (glob("galerie/".$file2."/*") as $name) ;
  13. if ($licznik<11){
  14. print("<img src='images/li.gif' border='0'><a href=\"galerie.php?id=".$licznik."\">".basename($name,".txt")."</a><br />\n");
  15. $licznik++;
  16. }
  17. }
  18. ?>


Wywala mi błąd treści :Warning: Invalid argument supplied for foreach()

Nie wiem dlaczego kiedy uruchamiam ten skrypt osobno to wszystko działa jak należy a na stronie już nie działa. Dziękuję za każdą pomoc. Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
Blame
post
Post #2





Grupa: Zarejestrowani
Postów: 678
Pomógł: 124
Dołączył: 26.09.2009

Ostrzeżenie: (0%)
-----


Widocznie skrypt nie może znaleźć folderu galerie, podaj ścieżkę bezwzględną do niego.
Go to the top of the page
+Quote Post
brzydalson
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.03.2010

Ostrzeżenie: (0%)
-----


Podawałem już na wszelkie możliwe sposoby i nic. Tylko dlaczego skrypt miałby widzieć ścieżkę do folderu jak go odpalam bez strony a na stronie już nie? A skrypt i strona znajdują się w tym samym folderze więc ścieżki się nie zmieniają.
Go to the top of the page
+Quote Post
marcint83
post
Post #4





Grupa: Zarejestrowani
Postów: 23
Pomógł: 4
Dołączył: 24.08.2010

Ostrzeżenie: (0%)
-----


A wywołaj:
  1. is_dir('galerie');

i zobacz co zwróci.
Go to the top of the page
+Quote Post
CuteOne
post
Post #5





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Szkoda, że nie podałeś nam ścieżki do katalogu ze skryptem i galerią, może to zadziała:

  1. <?php
  2. if ($foldername = opendir("myfolder")) {
  3. while (false !== ($filename = readdir($foldername))) {
  4. if ($filename != "." && $filename != "..") {
  5. $files[] = $filename;
  6. }
  7. }
  8. closedir($foldername);
  9. }
  10. ?>
Go to the top of the page
+Quote Post
brzydalson
post
Post #6





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.03.2010

Ostrzeżenie: (0%)
-----


Dziękuję serdecznie za dotychczasową pomoc. Teraz tak isdir nie wywala błędu i zwraca TRUE skrypt podany przez CuteOne również działa. Problem znów się pojawia gdy includuję skrypt na stronie.
Warning: opendir(/galerie): failed to open dir: Invalid argument in
Ten błąd wywala odnośnie linii :
Kod
if ($foldername = opendir("/galerie")) {

Co do ścieżki to tak, korzystam z krasnala i w folderze z plikami strony gdzie również jest index.php oraz folder "galerie" znajduje się skrypt. Błąd pojawia się również kiedy mam taki kod
Kod
if ($foldername = opendir("galerie")) {


Ten post edytował brzydalson 9.09.2010, 10:09:40
Go to the top of the page
+Quote Post
CuteOne
post
Post #7





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


A próbowałeś z bezwzględną(IMG:style_emoticons/default/questionmark.gif) nie pamiętam już dokładnie jaka prowadzi do krasia ale chyba "c:/user/krasnal/httpdocs/folder_twojej_strony/galeria/" zamiast "/galeria"
Go to the top of the page
+Quote Post
Noidea
post
Post #8





Grupa: Zarejestrowani
Postów: 226
Pomógł: 61
Dołączył: 20.08.2010

Ostrzeżenie: (0%)
-----


1. Jeżeli na początku ścieżki znajduje się / to oznacza on katalog główny (root). Pod Windowsem będzie to pewnie C:\
Ścieżki względne budujemy tak:
"galeria"
albo tak:
"./galeria"

2. Wstaw sobie przed tym ifem
  1. echo dirname( $_SERVER["SCRIPT_FILENAME"] );

żeby zobaczyć gdzie znajduje się twój nadrzędny plik, który includuje pozostałe i od tego katalogu buduj ścieżki względne.

3. Jeśli z jakiegoś względu twój skrypt musi działać zarówno samodzielnie jak i podczas includowania, to zrób operuj ścieżkami bezwzględnymi jak CuteOne mówi
Go to the top of the page
+Quote Post
brzydalson
post
Post #9





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.03.2010

Ostrzeżenie: (0%)
-----


Dobra poprawiłem trochę skrypt i teraz owszem wchodzi do folderu(tylko nie wiedzieć czemu wcześniej nie działał ;/) ale problem jest taki że teraz jak go samodzielnie odpalam to wykonuje swoje zadanie czyli wypisuje linki na stronie ale kiedy zaincluduję go na stronie to nic nie robi. Pomocy
Oto kod:
Kod
<?php
$licznik = 0;
$zawartosc = array();
if ($foldername = opendir("c:\usr\krasnal\www\bartek\galerie")) {
  while (false !== ($filename = readdir($foldername))) {
    if ($filename != "." && $filename != "..") {
      if((is_dir("galerie/".$filename))){
      $zawartosc[$filename] = date('Y-m-d H:i:s',filemtime("galerie/".$filename));
      }
    }
  }
  closedir($foldername);
}
arsort($zawartosc);
while (list ($klucz) = each ($zawartosc)) {
$file2 = basename ($klucz);
foreach (glob("galerie/".$file2."/*") as $name);
if ($licznik<11){
print("<img src='images/li.gif' border='0'><a href=\"galerie.php?id=".$licznik."\">".basename($name,".txt")."</a><br />\n");
$licznik++;
}
}
print_r($zawartosc);
?>



OK. Wpadłem na kolejny trop, otóż to chyba wina strony internetowej. Skrypt nie chce działać tylko w dwóch specjalnie do tego stworzonych ramkach. Nie są to ramki w html tylko taki układ strony jest w css że po prawej stronie są dwa okienka jedno do news a drugie do galerii. Skrypt umieszczony po środku odpala się bez problemu i wykonuje swoje zadanie. Szukam dalej.

Poddaję się. Wysyłam kod strony i proszę o pomoc. Ja nie widzę nigdzie błędu. Skrypt nie chce działać w divie "right". Wszędzie indziej się odpala i działa jak należy. Ktoś ma jakiś pomysł?
Kod
<body>
<p align="center">
<table align="center">
<tr><td>

<div id="content">
            <div id="header">
                        </div>

            <div id="tabs">
<ul>    

<li><a href="index.php" >Start</a></li>
<li><a href="animatorzy.php" >Animatorzy</a>
<li><a href="zespół.php" >Zespół</a></li>
<li><a href="grafik.php" >Grafik</a></li>
<li><a href="rekreacja.php" >Rekreacja</a></li>
<li><a href="kierownik.php" >Kierownik</a></li>
<li><a href="kalendarium.php" >Kalendarium</a></li>
<li><a href="orat.php" ></a></li>
            </ul>
            <p>
<p> <br><br>
<a class="menutop" href=".html">vdsd</a>  ?
<a class="menutop" href=".html">sdvsd</a>  ?
<a class="menutop" href=".html">sdvsdv</a>  ?
<a class="menutop" href=".html"></a>  ?
<a class="menutop" href=".html"></a>  ?


</div>

<div class="left">
<div class="left_articles">

<br>
<?php include'skrypt.php';?>
<br>

</div>
            
<div class="thirds">
<div class="smallboxtop"></div>
<div class="smallbox">
<p class="hedline">Animatorzy:</p>
<p> <br>


            <a href="">xxxxxxxxxxxxxxx</a><br>
        
            <a href="">xxxxxxxxxxxxxxx</a><br>
        
            <a href="">xxxxxxxxxxxxxxx</a><br>
        
            <a href="">xxxxxxxxxxxxxxxx</a><br>
        
</p>
<div class="buttons"><p><a href=".html">
    <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
</a></p></div>
<!-- <div class="buttons"><p><a href=".html" class="bluebtn">Dalej...</a></p></div> -->
    
                </div>
            </div>
        
            <div class="thirds">
                <div class="smallboxtop"></div>
                <div class="smallbox">
                <p class="hedline">Zespół</p>
<p> <br>

    
            <a href="">xxxxxxxxxxxxxxx </a><br>
        
            <a href="">xxxxxxxxxxxxxxx</a><br>
        
            <a href="">xxxxxxxxxxxxxxx</a><br>
        
            <a href="">xxxxxxxxxxxxxxx</a><br>
                            
</p>
<div class="buttons"><p><a href=".html">
    <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
</a></p></div>
                </div>
            </div>
        
            <div class="thirds">
                <div class="smallboxtop"></div>
                <div class="smallbox">
                <p class="hedline">Inne</p>
<p> <br>
<a href=".html">XXXXXXXXX</a><br>
<a href=".html">XXXXXXXXX</a><br>
<div class="buttons"><p><a href=".html">
    <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
</a></p></div>
                </div>
            </div>
    </div>
    
            <div id="right">
            <br>
                  <div class="boxtop"></div>
            <div class="box">
            
                <p class="hedline">AKTUALNOŚCI</p>
<p> <br>
            <?php
include 'news/news.php';
?>
    </p>
<div class="buttons"><p><a href=".html">
    <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
</a>

</div>
            </div>
                            <div class="boxtop"></div>
            <div class="box">
            <p class="hedline">NAJNOWSZE GALERIE</p>
<p> <br>
            <?php
include 'skrypt.php';
?>
    </p>
<div class="buttons"><p><a href=".html">
    <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
      <img src="images/sign.gif" border="0">
</a>

</div>
            </div>
        </div>     
</div>
</tbody>
</table>
</body>


Ten post edytował brzydalson 9.09.2010, 21:51:12
Go to the top of the page
+Quote Post
CuteOne
post
Post #10





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


a sprawdzałeś co wypluwa $zawartosc[$filename] (IMG:style_emoticons/default/questionmark.gif) Spróbuj tak i zobacz co się pokaże

  1. $licznik = 0;
  2. $zawartosc = array();
  3. if ($foldername = opendir("c:\usr\krasnal\www\bartek\galerie")) {
  4. while (false !== ($filename = readdir($foldername))) {
  5. if ($filename != "." && $filename != "..") {
  6. if((is_dir("galerie/".$filename))){
  7. $zawartosc[$filename] = date('Y-m-d H:i:s',filemtime("galerie/".$filename));
  8. }
  9. }
  10. }
  11. print_r($zawartosc);
  12. closedir($foldername);
  13. }

jeżeli nic nie wypluje zmień na:
  1. $licznik = 0;
  2. $zawartosc = array();
  3. $root_to_galery = "c:\usr\krasnal\www\bartek\galerie";
  4. if ($foldername = opendir($root_to_galery)) {
  5. while (false !== ($filename = readdir($foldername))) {
  6. if ($filename != "." && $filename != "..") {
  7. if((file_exists($root_to_galery."/".$filename))){ // tutaj kombinuj (np. bez $root_to_galery)
  8. $zawartosc[$filename] = date('Y-m-d H:i:s',filemtime("galerie/".$filename)); // tu również zamiast galerie/ możesz podstawić $root_to_galery i sprawdzić
  9. }
  10. }
  11. }
  12. print_r($zawartosc);
  13. closedir($foldername);
  14. }


Ten post edytował CuteOne 10.09.2010, 05:07:37
Go to the top of the page
+Quote Post
everth
post
Post #11





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


Możesz spróbować też sprawdzić jak wygląda ścieżka w odrębnym pliku a jak normalnie. Daj zaraz po tagach otwierających w includowanym skrypcie takie coś
  1. var_dump(realpath('galerie/'));

Uruchom jako osobny skrypt i jako include i zobacz czy ścieżki się zgadzają.

Ten post edytował everth 10.09.2010, 05:32:28
Go to the top of the page
+Quote Post
brzydalson
post
Post #12





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 16.03.2010

Ostrzeżenie: (0%)
-----


Właśnie o to chodzi że to chyba nie wina skryptu ani ścieżki do folderu. Sprawdzałem co wypluwa i podaje normalne wyniki z tablicy takie jak powinny być ale tylko jeśli skrypt jest umieszczony w <div class=left> gdy umieszczę go po prawej stronie to już nie działa. Problem leży po stronie strony internetowej, tak myślę. Tam nic nie widzicie?
Go to the top of the page
+Quote Post
everth
post
Post #13





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

Ostrzeżenie: (0%)
-----


HTML w żaden sposób nie może wpłynąć na kod skryptu - chyba że jest źle osadzany. Jak łączysz PHP z htmlem - rzuć niepodzielony plik. Tylko może skorzystaj z jakiejś strony typu wklej.org bo inaczej nie będzie się dało tego tu czytać.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:29