Skrypt artykułów na strone www

Posiadam skrypt do tworzenia artykułów na stronie głównej z linkiem do więcej… Jednak gdy w pliku historia.php zrobie tak:

<?php include('skrypt.php'); ?>

To wtedy wyruca mi dziwny błąd na stronie w miejscu gdzie klikne na mojej stronie w "Pokaż komentarze:

Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 2

Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 8

Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 8

Niewiem czemu tak sie dzieje :frowning: A tak wyglada kod wyswietlajacy artykuly na stronie:

<?php

error_reporting(E_ALL);

$template = 'plik.txt';

$fd = fopen($template,"r");

$message = @fread($fd, filesize($template));


$piece=explode("$$$",$message);


function cut_comment($str,$ile) {

$count = str_word_count($str);

if ($count >$ile) {

$body = explode(" ", $str);

$str = $body['0']." ";

for ($n=1; $n < $ile; $n++) {

$str .= $body[$n]." ";

}

$str .= "...
";

}

else {

$str = $str;

}

return $str;

}


$skroc = 7;

$ile = count ($piece);


for ( $i = 0; $i < $ile-1; $i++){

echo cut_comment($piece[$i],$skroc)."link 
";

}


fclose($fd); 


?>[/code]

Czy może mi ktoś pomóc przy tym ?

To jest link do mojej strony: http://www.history.is.net.pl

Kod: Zaznacz cały

Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 2

Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 8

Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 8

Pokazuje przecież gdzie jest błąd, a pokazany skrypt to na pewno nie “pokaz.php”, a ten nam jest potrzebny żeby zobaczyc w czym jest problem.

Problem jest w tym że w linii 2. i dwa razy w linii 8. jest odwołanie do klucza tablicy który nie istnieje.

plik pokaz.php wygląda tak:

<?php

if (!file_exists('comments/'.$_GET['id'].'.txt'))

{

    file_put_contents('comments/'.$_GET['id'].'.txt', '');

    chmod('comments/'.$_GET['id'].'.txt', 0777);

}


$file = file('comments/'.$_GET['id'].'.txt'); rsort($file); $file = file('comments/'.$_GET['id'].'.txt'); $file = array_reverse($file);

foreach($file as $key => $value)

{

   $data = explode('|||', $value);


   echo ''. $data[0] . ' | ' . $data[1] .'
';

   $tresc = $data[5];

   echo ''. $tresc .'
';

}

?>[/code]


Więc gdzie tu jest jakiś błąd ?

Dodam tylko, że jak nie dam do pliku historia.php tego kodu z include to wtedy błędu nie wyrzuca.

Co tu może być nie tak ?

Gdy zrobie w pliku historia.php tak:

[code]<? $comments = count(file(„comments/.txt”)); ?> <? include(„skrypt.php”); ?>

…::: History :::…

Past, Present and Future Jak zapewne większość z Was już wie - w internetowej sieci wyrosła nowa historia tego co było i minęło, jak i także tego co już jest oraz w nie dalekiej przyszłości zdarzyć się ma. To dopiero wielki początek tego ekscytującego momentu zaistnienia tej strony. A to wszystko dzięki Wam, tym którzy mają tutaj swój jakiś własny wkład i pomogą nam przy realizacji tego pomysłu. Przy takim wyborze jaki dostępny jest tutaj - jestem przekonany, że każdy - nawet najbardziej wybredny z wybrednych znajdzie tu coś dla siebie. By jeszcze bardziej uatrakcyjnić wędrówkę po wirtualnej _ histori _ pomyślałem, że warto by umieszczać odpowiednie rzeczy, na które składają się kolejne jakby etapy rozwoju tej strony. Każdy z Czytelników może także zasugerować własne propozycje tego, co by chciał żeby właśnie tutaj według niego się znalazło. Wystarczy skorzystać z opcji komenatarzy pod tym tekstem. No to do dzieła !

Pokaż komentarze (<?=$comments?>) ↓                          Skomentuj ten wpis ↓

<? include(„pokaz.php”); ?>

<? include(„dodaj.php”); ?>

Wtedy mi ten blad wyrzuca na stronie, ale gdy w pliku historia.php, zrobie juz tak:

<?

$comments = count(file("comments/.txt")); 

?>

…::: History :::…

Past, Present and Future Jak zapewne większość z Was już wie - w internetowej sieci wyrosła nowa historia tego co było i minęło, jak i także tego co już jest oraz w nie dalekiej przyszłości zdarzyć się ma. To dopiero wielki początek tego ekscytującego momentu zaistnienia tej strony. A to wszystko dzięki Wam, tym którzy mają tutaj swój jakiś własny wkład i pomogą nam przy realizacji tego pomysłu. Przy takim wyborze jaki dostępny jest tutaj - jestem przekonany, że każdy - nawet najbardziej wybredny z wybrednych znajdzie tu coś dla siebie. By jeszcze bardziej uatrakcyjnić wędrówkę po wirtualnej _ histori _ pomyślałem, że warto by umieszczać odpowiednie rzeczy, na które składają się kolejne jakby etapy rozwoju tej strony. Każdy z Czytelników może także zasugerować własne propozycje tego, co by chciał żeby właśnie tutaj według niego się znalazło. Wystarczy skorzystać z opcji komenatarzy pod tym tekstem. No to do dzieła !

Pokaż komentarze (<?=$comments?>) ↓                          Skomentuj ten wpis ↓

<? include(„pokaz.php”); ?>

<? include(„dodaj.php”); ?>
<? include(„skrypt.php”); ?>[/code]

To wtedy jest juz dobrze i niema błędu.

Hmm co tu jest nie tak, według mnie plik skrypt.php z kodem z pierwszego mojego postu w tym temacie jakoś nie współpracuje z kodem z pliku pokaz.php chyba.

Bardzo prosze o pomoc w tej sprawie.

:slight_smile: a co wyżej napisałem ??

No i to się może zgadzać, bo w historia.php $_GET[‘id’] ma jakąś wartość.

Po prostu tam gdzie załączasz skrypt pokaz.php musi być zdefiniowane $_GET[‘id’] (czyli numer komentarza = nazwa pliku txt) , które samo się przypisuje jeśli wpiszesz adres w stylu http://domena/pokaz.php?id=// numer //

ra-v pokazałem Ci już wyzej jak wygląda plik pokaz.php więc na moje oko błędu tam niema i to akurat w tych liniach o numerach 2,8,8

Skrypt pokaz.php załaczam tylko w pliku historia.php i w nim jest zdefiniowane jedynie to:

Niema żadnego $_GET[‘id’] w pliku historia.php Natomiast co do dumeru komentarza mam to:

<?=$comments?>

Zresztą widać to w pliku historia.php, który pokazałem w powyzszym moim poście.

Może to sie gryzie z javascript i dlatego ten błąd wyrzuca ? jak to zrobic zeby było dobrze ?

<? include(„pokaz.php”);

Darom82 , na forum używamy polskich znaków (ż, ł, ć, ś, ą itp.). Proszę wyedytować swoje posty i poprawić co trzeba. Niezastosowanie się do prośby będzie skutkowało przeniesieniem tematu do śmietnika.

@Darom82, to nie pozostaje Ci nic innego jak iść z tym okiem do okulisty :smiley:

kolega @ra-v tutaj dobrze wskazał na problem.

Wali notice’ami, bo odwołujesz się do elementu tablicy GET, który na dobrą sprawę może nie istnieć.

Najpierw wypadało by sprawdzić czy taka zmienna została w ogóle wysłana, od tego jest isset()

if(isset($_GET['id'])) {

/*

zmienna ID wysłana, więc możesz tutaj jechać ze swoim kodem operując na wskazanym elemencie tablicy, czyli $_GET['id'] 

*/

}

else {

/*

zmienna ID nie została przekazana w adresie, więc element $_GET['id'] NIE ISTNIEJE!

*/

}

api wiec moj plik historia.php mialby wygladac tak ?

<?

$comments = count(file("comments/.txt")); 

?>

…::: History :::…

Past, Present and Future Jak zapewne większość z Was już wie - w internetowej sieci wyrosła nowa historia tego co było i minęło, jak i także tego co już jest oraz w nie dalekiej przyszłości zdarzyć się ma. To dopiero wielki początek tego ekscytującego momentu zaistnienia tej strony. A to wszystko dzięki Wam, tym którzy mają tutaj swój jakiś własny wkład i pomogą nam przy realizacji tego pomysłu. Przy takim wyborze jaki dostępny jest tutaj - jestem przekonany, że każdy - nawet najbardziej wybredny z wybrednych znajdzie tu coś dla siebie. By jeszcze bardziej uatrakcyjnić wędrówkę po wirtualnej _ histori _ pomyślałem, że warto by umieszczać odpowiednie rzeczy, na które składają się kolejne jakby etapy rozwoju tej strony. Każdy z Czytelników może także zasugerować własne propozycje tego, co by chciał żeby właśnie tutaj według niego się znalazło. Wystarczy skorzystać z opcji komenatarzy pod tym tekstem. No to do dzieła ! if(isset($_GET[‘id’])) {

Pokaż komentarze (<?=$comments?>) ↓                          Skomentuj ten wpis ↓

<? include(„pokaz.php”); ?>

<? include(„dodaj.php”); ?>
} else { /* zmienna ID nie została przekazana w adresie, więc element $_GET[‘id’] NIE ISTNIEJE! */ } [/code]

Bo sptawdzalem i jest zle :frowning: Wiec jak to zrobic, zeby bylo dobrze ?

@Darom82, jak tak mieszasz php z html’em to nic dziwnego że nie działa.

Jeżeli już chcesz modyfikować plik historia, to wystarczyło by tylko zastąpić linijkę

include("pokaz.php");

taką

if(isset($_GET['id'])) { include 'pokaz.php'; }

…i tylko tyle.

Zainteresuj się może jakimś kursem php, żeby choć podstawy załapać.

api nie moge tak zrobić jak napisałeś mi w powyższym poście ponieważ, gdy zamiast tamtego include wstawie to linijke co mi napisałeś:

if(isset($_GET['id'])) { include 'pokaz.php'; }

To wtedy na stronie mojej nie rozwija się lista Pokaż komentarze i związku z tym komentarze są nie widoczne. Jak to zrobic, zeby bylo dobrze i wszystko działało tak jak potrzeba razem z tym skryptem do artykułow z linkiem więcej ? :frowning: A może w pliku skrypt.php jest coś nie tak i dlatego te błędy wyrzuca w tych liniach ? Plik skrypt.php

<?php

error_reporting(E_ALL);

$template = 'plik.txt';

$fd = fopen($template,"r");

$message = @fread($fd, filesize($template));


$piece=explode("$$$",$message);


function cut_comment($str,$ile) {

$count = str_word_count($str);

if ($count >$ile) {

$body = explode(" ", $str);

$str = $body['0']." ";

for ($n=1; $n < $ile; $n++) {

$str .= $body[$n]." ";

}

$str .= "...
";

}

else {

$str = $str;

}

return $str;

}


$skroc = 7;

$ile = count ($piece);


for ( $i = 0; $i < $ile-1; $i++){

echo cut_comment($piece[$i],$skroc)."link 
";

}


fclose($fd); 


?>[/code]

Prosze o pomoc w tej sprawie.

To weź i zmodyfikuj sam plik pokaz.php

spróbuj zrobić np. tak:

Wszystkie występujące w tym pliku $_GET[‘id’] zmień na $gid

a następnie na samym początku pliku wrzuć linijkę

if(isset($_GET['id'])) $gid=$_GET['id']; else $gid='0';

api zrobiłem tak jak napisałeś w pliku pokaz.php:

<?php

if(isset($_GET['id'])) $gid=$_GET['id']; else $gid='0';

if (!file_exists('comments/'.$gid.'.txt'))

{

    file_put_contents('comments/'.$gid.'.txt', '');

    chmod('comments/'.$gid.'.txt', 0777);

}


$file = file('comments/'.$gid.'.txt'); rsort($file); $file = file('comments/'.$gid.'.txt'); $file = array_reverse($file);

foreach($file as $key => $value)

{

   $data = explode('|||', $value);


   echo ''. $data[0] . ' | ' . $data[1] .'
';

   $tresc = $data[5];

   echo ''. $tresc .'
';

}

?>[/code]

Jednak nadal blokuje mi liste „Pokaż komentarze” - niewiem czemu :frowning:

Może głupie pytanie,czy błędy w liniach to błędy w tekstach artykułu

batmomobil niemam błedów raczej w tekście artykułu. Problem tkwi moim zdaniem w pliku historia.php:

<?

$comments = count(file("comments/.txt")); 

?>


<? include("skrypt.php"); ?>

Pokaż komentarze (<?=$comments?>) ↓                          Skomentuj ten wpis ↓

<? if(isset($_POST[‘id’])) { include ‘pokaz.php’; } ?>

<? include(„dodaj.php”); ?>
[/code]

Albo sam skrypt blokuje wyswietlanie listy „Pokaż komentarze”, może mi ktoś pomóć przy tym ?

Jak chcesz mojej pomocy to uruchom ten skrypt napisz jakie błędy wyświetla, bo nie wiem do czego doszedłeś od początku tematu. I wypadało by gdybyś podał kod pliku w którym te błędy występują.

demistrakos od to od poczatku zaczynam. Mam skrypt do dodawania artykułów skladających się z plików:

comment.php

<?php

session_start();

$template = 'plik.txt';

$fd = fopen($template,"r");

$message = @fread($fd, filesize($template));


$piece=explode("$$$",$message);


$id=$_GET['id'];

echo $piece[$id];


?>

skrypt.php

<?php

error_reporting(E_ALL);

$template = 'plik.txt';

$fd = fopen($template,"r");

$message = @fread($fd, filesize($template));


$piece=explode("$$$",$message);


function cut_comment($str,$ile) {

$count = str_word_count($str);

if ($count >$ile) {

$body = explode(" ", $str);

$str = $body['0']." ";

for ($n=1; $n < $ile; $n++) {

$str .= $body[$n]." ";

}

$str .= "...
";

}

else {

$str = $str;

}

return $str;

}


$skroc = 7;

$ile = count ($piece);


for ( $i = 0; $i < $ile-1; $i++){

echo cut_comment($piece[$i],$skroc)."link 
";

}


fclose($fd); 


?>[/code]


Oraz plik.txt w którym zapisuje artykuły.

Teraz gdy w pliku historia.php dodam ten skrypt za pomocą ()include w ten sposób:

[code]<? include(„skrypt.php”); ?>
To wtedy na stronie w „Pokaż komentarze” wyrzuca mi błąd typu:

Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 2


Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 8


Notice: Undefined index: id in /home/users/history/public_html/pokaz.php on line 8

Plik historia.php wyglada tak:

<?

$comments = count(file("comments/.txt")); 

?>


<? include("skrypt.php"); ?>

Pokaż komentarze (<?=$comments?>) ↓                          Skomentuj ten wpis ↓

<? include(„pokaz.php”); ?>

<? include(„dodaj.php”); ?>
[/code]

Jak ro zrobić tak żeby było dobrze ? Moja strona to: www.history.is.net.pl

A gdzie kod pliku pokaz.php

demistrakos o to kod pliku pokaz.php

<?php

if (!file_exists('comments/'.$_GET['id'].'.txt'))

{

    file_put_contents('comments/'.$_GET['id'].'.txt', '');

    chmod('comments/'.$_GET['id'].'.txt', 0777);

}


$file = file('comments/'.$_GET['id'].'.txt'); rsort($file); $file = file('comments/'.$_GET['id'].'.txt'); $file = array_reverse($file);

foreach($file as $key => $value)

{

   $data = explode('|||', $value);


   echo ''. $data[0] . ' | ' . $data[1] .'
';

   $tresc = $data[5];

   echo ''. $tresc .'
';

}

?>[/code]

I co teraz ?

Zobacz jeszcze jakie pliki są w folderze comments i podaj mi ich nazwy :wink: I wklej jeszcze kod pliku dodaj.php to rozwiążemy ten problem na zawsze bo już wiem o co biega :wink:

Wiec demistrakos kod pliku dodaj.php wyglada tak:

   Komentarz        Podpis    
 

<?php if(isset($_POST[‘action’]) && $_POST[‘action’]==1) echo <<< SER Nick: {$_POST[‘nick’]} Komentarz: {$_POST[‘pole’]} SER; ?>[/code]

W folderze comments sa pliki txt, 1.txt, 2.txt, test.txt

Jak to rozwiazac ?