Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]include nie wyswietla linkow
Forum PHP.pl > Forum > Przedszkole
tyfuz
Slabo sie znam w ogole na programowaniu. Przez noc wypocilem skrypcik pobierajacy mi nazwy plikow z foldera i przerabiajacy je na linki.
Skrypt sam w sobie dziala, lecz przy probie podlaczenia go do szablonu, linki w ogole sie nie wyswietlaja sad.gif

skrypt
  1. <?php
  2. if(!$add_site) exit;
  3. error_reporting(E_ALL ^ E_NOTICE);
  4.  
  5. $praw = array(6=>$link);
  6. foreach (glob('../art/*.html') as $pl) {
  7. $link=basename($pl, '.html');
  8. $praw[]=$link;
  9. }
  10.  
  11. foreach($praw as $key => $value) {
  12. echo "<a href=\"index.php?go=$key\">$value</a>\n";
  13. }
  14. ?>


komenda do include
  1. <div id="praw1"><?php include "include/prawe.php" ?> </div>

kadlub
nie masz średnika za include
sprawdżźczy pliki są w tym samym folderze
osl
średnik w tym przypadku ma znaczenie czysto estetyczne.
jesteś w 100% pewien, że skrypt nie wychodzi na exit?
nie podałeś całego kodu, więc nie można tego stwiedzić...
kadlub
ja je zawsze stawiam później się coś dopisze i masz babo placek trzeba szukać
osl
masz absolutną rację, że warto je stawiać zawsze. Ale to nie jest tutaj przyczyną błędu smile.gif
tyfuz
kod szablonu
  1. <?php
  2.  
  3. $add_site = true;
  4.  
  5. ?>
  6. <!DOCTYPE
  7. html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  8. "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  9.  
  10. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  11. <?php echo '<'.'?xml version="1.0" encoding="ISO-8859-2"?'.'>'."\n"; ?>
  12. <head>
  13. <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />
  14. <link rel="stylesheet" type="text/css" href="style.css" />
  15. </head>
  16. <body>
  17. <div id="lewe1"><?php include "include/lewe.php"; ?></div>
  18. <div id="praw1"><?php include "include/prawe.php"; ?> </div>
  19.  
  20. <div id="ramka"><div id="tekst"><?php include "include/srodek.php" ?> </div></div>
  21.  
  22. </body>
  23.  
  24. </html>


inne elementy sie wyswietlają, np. lewa czy srodek z tekstem. Wydaje mi sie, ze cos musi byc nie tak z samym skryptem sad.gif
tyfuz
zapomnialem napisac - gdy nie ma linijki wyłączającej komunikaty o błędach, to wyświetla się tylko komunikat z błędem.

pliki w folderze na pewno są, a to co podałem, to jest cały kod skryptu.
osl
pozbywanie się błędów przez wyłączanie ich wyświetlania jest raczej kiepskim pomysłem.
u mnie Twój kod działa. w foreach z glob zrób sobie jakieś echo i zobacz, czy on w ogóle iteruje Ci przez jakiekolwiek pliki.

Kod
$praw = array(6=>$link);
a gdzie masz zdefiniowane $link?
tyfuz
inaczej:
gdy wywalam
  1. if(!$add_site) exit;


i odpalam plik prawe.php ( z tym skryptem) wszystko dziala prawidlowo -> wyswietlaja mi sie linki.

  1. $praw = array(6=>$link);

ta linijka jest przyczyna bledu a konkretnie $link, ktory jest okreslony pozniej przez basename

jest to po to, gdyz chcialem rozpoczac indeksowanie od 6 gdyz po lewej stronie beda linki i one beda miec wartosci od 0-6
po srodku (srodek.php) jest skrypt (notabene nie moj i on dziala sad.gif) ktory te wszystkie linki zbiera i wyswietla konkretna zawartosc i analizujac sytuacje doszedlem do wniosku ze indeksy nie moga sie powtarzac.

probowalem zrobic indeksowanie >6 jakos inaczej, by nie bylo bledu, ale wtedy w ogole nie chcialo dzialac, wiec wybralem mniejsze zlo
osl
a nie łatwiej po prostu
Kod
$i=6;
a w pętli
Kod
$praw[$i++]=$link;

najbardziej łopatologicznie jak się da.

pomijam fakt, że możesz to wszystko zmieścić w jednej pętli.
tyfuz
rzeczywiście łatwiej, na to nie wpadłem ;d

tylko, że ciągle pozostaje poprzedni, najważniejszy problem - linki nie wyswietlaja sie w szablonie:(
osl
wrzuć sobie var_dump z $add_site na początku swojego skryptu, być może ta zmienna jest gdzieś nadpisywana.
tyfuz
chyba juz wiem z czym jest problem!
wykorzystalem to var_dump() tylko ze gdy robilem od add_site to w szablonie zwracal mi wartosc add_site (true)

w manualu znalazlem ze mozna tym sprawdzic tablice.
Otoz dzieje sie cos takiego:
gdy odpalam plik prawe.php wszystko dziala prawidlowo, tablica zawiera odpowiednie wartosci

natomiast gdy probuje odpalic skrypt z szablonu, tablica jest pusta!
teraz nastepuje pytanie, dlaczego czysci mi tablice przy probie odpalenia z szablonu?
tyfuz
Problem rozwiązany!!!

problem powodowal zla sciezka do folderu
o tyle to dziwne, ze po poprawieniu za to ten sam problem sie pojawil przy odpalaniu samego pliku prawe.php
za to w szablonie jest ok!

bylo:
Kod
glob('../art/*.html')


teraz jest
Kod
glob('art/*.html')


Dzieki wszystkim za pomoc i podpowiedzi!
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.