Strona 1 z 2
include do tabelki
: czw lut 10, 2005 4:12 pm
autor: nietophez
Witam
Jestem początkującym jeśli chodzi o tematyke PHP i mam zapewne banalny, ale problem. Mam skrypcik osadzony w tabeli, która podzielona jest na 2 części. Częśc pierwsza z lewej zawiera linki, a część 2 to pole danych gdzie za pomocą skryptu powinna zostać załadowana informacja znajdująca sie w innym pliku. Problem jest taki, że pomimo różnych kombinacji za każdym razem wyświetla sie błąd 404 że nie ma takiej strony, strona która się powinna załadować jest w podkatalogu data, ale nawet jeśli jest on w katalogu głównym obok pliku index to i tak nie działa. Tabela i skrypt wyglądają nastepująco:
<table>
<tr>
<td>>
<a href="index.php?id=strona1">Strona 1</a>
</td>
<td><?
$urls=$id.".html"; /*zamiast html musimy podać jakie
rozszerzenia mają pliki, które chcemy wkleić */
if(file_exists("$urls"))
{
$file=fopen($urls,"r"); /* otwiera plik o ścieżce
dostępu równej wartości
zmiennej $id plus rozszerzenie */
while($linia=fgets($file, 99))
{
echo($linia); // wyświetla zawartość pliku $file
}
fclose($file); // zamyka plik
}
else{
echo("<p align=\"center\"><b>BŁĄD 404</b><br><br>
Wystąpił błąd. Plik do którego prowadzi ten link NIE
ISTNIEJE !!!<br><br><a href=\"javascript:history.back()\">Powrót</a>");
} /* Tu pojawia się informacja, gdy wystąpi błąd */
?>
</td>
</tr>
</table>
Bardzo prosze o jakąś podpowiedź, będę bardzo wdzięczny.
Re: include do tabelki
: czw lut 10, 2005 4:44 pm
autor: yarpo
A może zamiast odczytywac zawartość pliku whilem zrób to tak:
[php]<?PHP
$plik = fopen($urls, r);
$tresc = fread($plik, filsize($urls));
echo $tresc
?>[/php]
Choć jeśli pokazuje ci, że nie ma pliku, to miejscem krytycznym, w ktorym należałoby szukać dziury jest warunke if(is_exist()).
Sprawdź jeszcze raz czy zgadzają się nazwy plików z wartościami zmiennych. Zamiast tego warunku i całej reszty daj
[php]<?PHP echo $urls ?>[/php]
Jeśli wartośc zmiennej bedzie się zgadzać z nazwąkonkretnego pliku to wtedy
może problem jest z chmod???? ale raczej nie....
W jaki sposób wywołujesz stronę? - napisz jak wygląda link
re
: czw lut 10, 2005 5:07 pm
autor: nietophez
No stronke która ma być załadowana do tabeli wywołuje linkiem np.
<a href="index.php?id=strona1">Strona 1</a>
ktory znajduje sie w sąsiedniej kratce tabelki.
Będę wdzięczny za tłumaczenie jak 4- ro latkowi

.
Czyli wniosek z poprzedniego jest taki ze zamiast całego kodu z pierwszego posta wystarczy dać:
[php]<?php
$plik = fopen($urls, r);
$tresc = fread($plik, filsize($urls));
echo $tresc
?>[/php]
czy może
[php]<?php
$urls=$id.".html";
echo $urls
?>[/php]

Re: include do tabelki
: czw lut 10, 2005 5:35 pm
autor: yarpo
To ja napiszę całość:
na stronie index.php niech bedzie link:
Kod: Zaznacz cały
<a href="index.php?str=o_mnie">Wejdź na sronę</a>
A potem w tej drugiej komórce:
[php]<?PHP
@$strona = $_GET["str"]; // 1
$urls = $strona.".htm"
$plik = fopen($urls, r); // 2
$tresc = fread($plik, filsize($urls)); // 3
if ($strona) {
echo $tresc; // 4
} else {
echo "<p>tu treść strony pierwszej</p>"; //5
}
?>[/php]
Opis:
1. - pobieram zmienną z tablicy asocjacyjnej $_GET[]
[asocjacyjnej, czyli takiej, gdzie indexami są napisy]
[dzięki temu @ nie wyskoczy błąd jeśli jeszcze nie została pobrana zmienna - czytaj: ktos wszedł na stronę i nie kliknął linka]
2. - funkcja fopen() otwiera plik o nazwie [w tym wypadku] "o_mnie.htm". To "r" oznacza że plik otworzony tylko do odczytu.
3. - odczytuje wartość pliku
4. - prosta insrukcja if:
jeśli jest $strona - wyswietl $tresc, czyli treść pliku $urls
jeśli nie to napisz to co znajduje się na sronie głównej
Gotowy skrypt możesz znaleźć na stronie
www.yarpo.prv.pl[url] - > skrypty -> [u ... ci strony"
A na stronie
http://www.phpkurs.prv.pl masz to jeszcze dokładniej wytłumaczone.
w przyszłości proponuję ściągnięcie kilku dobrych kursów i przerobienie ich - zawsze się przyda:-)
re
: czw lut 10, 2005 8:03 pm
autor: nietophez
Dzieki za odpowiedź, a jesli chodzi o kursy to wlasnie doszedlem jakis czas temu ze pasuje sie czegos dowiedziec, kumpel podal mi jakis taki kurs ale strasznie łopatologiczny jest, zainwestowalem nawet w ksiazeczke ale chyba nie jest ona zbyt przystepnie napisana dla poczatkujacych. No to kombinuje metoda prób i błędów ale to nie jest tak proste jak by sie wydawać mogło. Ale twoj kursik jest gitarka po prostu i polecam bo przystepnie napisany jest i tak można się wgłębić w podstawy, szkoda, że go wcześniej nie znalazłem.
Myśle że chyba sobie już dam rade ale jak by cos to walnę tu jeszcze jakąś głupote
Pozdrowionka

Re: include do tabelki
: czw lut 10, 2005 8:51 pm
autor: yarpo
na stronie
www.yarpo.prv.pl masz jeszcze kilka innych linków. [dział kursy -> php]
W
www.google.pl wpisz "kurs"+"php" i też masz MNÓSTWO linków - co do ich jakości ... sam już wiesz:-)
jakby były jakies pytania to wal na forum, albo do mnie na priv:-)
PS. Mój kurs jest w rakcie budowy [kilka ostatnich lekcji]. i póki co [co zobaczyłem niedawno] trzeba go używac w Operze lub Firefoxie, bo MSIE6.0 nie obsługuje white-space: pre

re
: pt lut 11, 2005 11:22 am
autor: nietophez
No to dobrze, że uzywam Firefoxa

. Ale odnośnie skryptu, to dalej problem. Zamontowałem sobie na kompie Krasnala, tak jak w twoim kursie opisane, i troszke przerobiłem lekcji, a wszystkie skrypty działały. Natomiast ten, odnośnie zawartości w tabelce to, ani wersja z forum która podałeś, ani wersja ze strony nie pójdzie. Wersje z forum przestudiowałem i taka by mi najbardziej odpowiadała, dlatego omówie problem dle tego przypadku

Stronka wygląda tak:
Kod: Zaznacz cały
1: <html>
2: <body>
3: <table>
4: <tr>
5: <td><a href="index.php?str=start">Wejdź na sronę</a></td>
6: <td>
7: <?PHP
8:
9: @$strona = $_GET["str"]; // 1
10: $urls = $strona.".htm"
11: $plik = fopen($urls, r); // 2
12: $tresc = fread($plik, filsize($urls)); // 3
13:
14: if ($strona) {
15: echo $tresc; // 4
16: } else {
17: echo "<p>tu treść strony pierwszej</p>"; //5
18: }
19: ?>
20: </td>
21: <td><?php include("menul.htm"); ?></td>
22: </tr>
23: </table>
24: </body>
25: </html>
i jak próbuje sobie ja włączyć to mi wyskakuje błąd taki:
"
Parse error: parse error in c:\usr\apache\httpd\html\kurs\index.php on line 11"
No i jest lipa, a oczywiscie plik menul.htm i start.htm są w tym samym katalogu co index.php
?>[/php]
Re: include do tabelki
: pt lut 11, 2005 12:20 pm
autor: yarpo
Ale ze mnie ślepota!
aki błąd Ci napisałem. Już popawiam. W 11 lini napisz:
i teraz wsztko powinno dzialać - r należało dać w cudzysłowiach "r".
Takie błędy są najtrudniejsze....
re
: pt lut 11, 2005 1:23 pm
autor: nietophez
No to poprawiłem i dodałem cudzysłów, ale problem nie miną

Re: include do tabelki
: pt lut 11, 2005 8:23 pm
autor: yarpo
Słuchaj, ale mówisz o tym, że nie dziala, po kliknięciu na ten link.
czyli najpier pojawia sie napis "To co na pierwszej stronie":.
Po klinieciu na link powinna sie pojawić strona.
W pliku php.ini sprawdź czy masz register global ostawione na off czy on.
[plik php ini powinieneś znaleźć w folderze "windows", albo wpisz by ci wyszukało]
Re: include do tabelki
: pt lut 11, 2005 8:25 pm
autor: yarpo
Ale pojawia się jakiś błąd, czy pop prost zawsze jest "ten text będzie na pierwszej stronie"?
re
: pt lut 11, 2005 8:37 pm
autor: nietophez
no własnie problem jest o tyle gorszy że cała strona sie nie wyświetla tylko ten komunikat jest.
No myślałem że może krasnal coś nie tak, ale inne skrypty działają i przetestowałem skrypt też na serwerze friko.pl ale tam to samo jest.
Tak eksperymentowałem z tym i dodałem " ; " na końcu 10 linii i pojawił się odnośnik już "Wejdź na stronę" ale dodatkowo fatal error

Re: include do tabelki
: pt lut 11, 2005 8:40 pm
autor: mickaellos
w 12 linijce jest błąd
wpisane jest filsize -> zamień na filesize
literówka
re
: pt lut 11, 2005 8:54 pm
autor: nietophez
No tak nikt nie jest nieomylny ale ta literówka na razie nic nie zmienia bo problem jest nadal i nie wyświetla sie żaden z komponentów dla testów nawet dałem kolor jako tło i on tez się nie wyświetla ani żadne polecenie html które jest przed albo po skrypbie jest tylko napis na białym tle jeden jedyny
Parse error: parse error in c:\usr\apache\httpd\html\kurs\index.php on line 11
Znalazłem bład
: pt lut 11, 2005 9:23 pm
autor: yarpo
Wyświetla, że bład jest w lini 11. w rzeczywistości jest w lini 10!
Linia dziesiąta nie koczy sie średnikiem!
W lini dziesiątej daj:
[php]<?PHP
10: $urls = $strona.".htm" ;
?>[/php]
Teraz powinno ladnie działać:-)