Zamiast :
index.php.php?artykulID=1
wpisz :
index.php?artykulID=1
A skrypt wyświetlania komentarzy przenieś tam gdzie wyświetlasz treść artykułu
Wywala Ci taki błąd ponieważ nie masz pliku history.php a właśnie do niego metoda wyświetlająca menu się odwołuje.
Usuń 129 linię kodu.
By Link "Strona główna: działał poprawnie zmień w 135 linii z
Strona główna[/code]
na
[code]Strona główna
129 linia mojego kodu jest taka:
}
Czy mam ten nawias } usunac ? Powiedz mi co z tymi kodami ?
<?
$comments = count(file("comments/.txt"));
?>
Pokaż komentarze (<?=$comments?>) ↓ Skomentuj ten wpis ↓
<? include(„pokaz.php”); ?>
<? include(„dodaj.php”); ?>
[/code]
Gdzie je umiescic w pliku index.php zeby mi to dzialalo poprawnie ?
No widzisz, znajomość podstaw PHP się kłania - interpreter PHP zawsze wskazuje na ostatni znak bloku w którym wykrył jakiś błąd. W tym przypadku wskazuje na zakończenie bloku switch - czyli właśnie na }.
2 linijki wyżej masz właśnie błąd bo :
include 'historia.php';
a tego pliku nie ma - więc interpreter zgłasza błąd.
Usuń to odwołanie.
Ten kod - rozumiem, wyświetla komentarze dowiązane do danego artykułu, więc umieść go pod pełną treścią artykulu .
Usunalem to z pliku index.php
case 'historia':
$title = 'History - Past, Present and Future';
include 'historia.php';
break;
I nadal mam blad na stronie http://www.history.is.net.plI czy moge zamienic to:
case 'historia':
$title = 'History - Past, Present and Future';
include 'historia.php';
break;
Na to:
case 'index':
$title = 'History - Past, Present and Future';
include 'index.php';
break;
Powiedz mi prosze, jak te bledy na stronie mojej zlikwidowac ?
Wszędzie tam gdzie masz
include 'historia.php';
po prostu usuń tą linijkę.
Nie, nie zamieniaj, gdyż link “Strona Główna” masz już bezpośrednie przekierowanie do stoy głównej i nie ma potrzeby sprawdzania warunku linku w instrukcji switch.
Usnunalem wszystko to co mi powiedziales, nawet to:
default:
case 'home':
$title = 'History - Past, Present and Future';
include 'historia.php';
break;
To wtedy zamiast strony mojej mam biala pusta strone
Pomoz mi prosze
skoro nadal chcesz na switchu (a ja szczerze odradzam takie menu) to opcja default jest konieczna. Wynika to z konstrukcji warunku switch.
w tym jednym przypadku zamień
include 'historia.php';
na
header("location:index.php?artykulID=1");
lub includuj jakiś inny plik, który ma być wyświetlany w przypadku gdy żadna z wprowadzonych przez Ciebie opcji do switch nie spełnia warunku (wówczas właśnie uruchamiana jest opcja default)
header("location:index.php?artykulID=1");
To nie dziala bo strona sie nie wyswietla, tylko pusta strona
A tak mi dzialac to bedzie dobrze ?
default:
case 'home':
$title = 'History - Past, Present and Future';
include 'index.php';
break;
Nie, bo zapętlisz się. Nie można includować pliku sam do siebie.
Spróbuj tak :
default:
case 'home':
$title = 'History - Past, Present and Future';
echo $wiecej;
break;
kalamita juz mi zadzialalo. Teraz tylko zostal problem z tym, ze skrocona wersja tresci wyswietla sie wszedzie na kazdej podstronie:
http://www.history.is.net.pl/index.php?ksiega
http://www.history.is.net.pl/index.php?przeslij
http://www.history.is.net.pl/index.php?kontakt
Jak to zrobic, zeby tak nie bylo, tylko zeby ta tresc wyswietlala sie tylko na stronie glownej ?
Po razy dziesiąty CI mówię, zmień sposób wywoływania menu przez użytkownika, gdyż ono - w moim przekonaniu - nie nadaje się do prowadzenia tego typu strony i przez nie masz tyle problemów.
Są dwa możliwe rozwiązania
-
Obwarowanie warunkami każdego linka w menu użytkownika i sprawdzanie co wcisnął użytkownik
-
Zmianę linka menu na Link i sprawdzanie wartości. Jeżeli wartość zmiennej równa się np. A to wyświetlamy treść przyporządkowaną do wartości A (i co najważniejsze ŻADNĄ inną), jeżeli wartość zmiennej równa się B to wyświetlamy treść przyporządkowaną wartości B i tak dalej. Wówczas lista artykułów będzie wyświetlana tylko i wyłącznie na stronie głównej, a treść z linków będzie wyświetlana tylko po wciśnięciu danego linka przez użytkownika.
A bez przebudowy menu sie tego nie da zrobic jakos ? Jesli sie da to prosze bys mi pomogl jakos to zrobic.
Natomiast jesli nie, To prosze Cie o pomoc w tej sprawie.
Na tych stronkach jest to tak prosto zrobione widze bez zbednych kombinacji: Klik oraz tutaj Klik
Na tych stronkach jest to zrobione dokładnie tak jak CI napisałem w pkt. 2 (nie tak jak u Ciebie). Metoda ta jest bardzo prosta i zajmuje o 60% mniej kodu niż Twój sposób wyświetlania. Pisałem Ci już w tym wątku wielokrotnie jak to zrobić. (zresztą link “Strona Główna” masz już na tej samej zasadzie zrobiony) - wystarczy dorobić resztę.
Czyli caly ten szkielet wyswietlania podstron na mojej stronie dotyczacy includowania mam wyrzucic - usunac tak ? i zamiast tego dac taki kod :
Strona głównaKsięga GościKontakt
[/code] Czy tak mam to zrobic ? - A usunac z index.php caly ten ponizszy szkielet tak ?
[code]<?php $a = array_keys($_GET); ob_start(); switch($a[0]) { case ‘kontakt’: $title = ‘History - Past, Present and Future’; include ‘kontakt.php’; break; case ‘ksiega’: $title = ‘History - Past, Present and Future’; include ‘ksiega.php’; break; case ‘przeslij’: $title = ‘History - Past, Present and Future’; include ‘przeslij.php’; break; case ‘index’: header(‘Location: http://http://www.history.is.net.pl’); break; default: case ‘home’: $title = ‘History - Past, Present and Future’; echo $wiecej; break; } $content = ob_get_clean(); ?>
Chodzi o to, zeby moje podstrony sie otwieraly na stronie glownej.