Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z zamieszczeniem kodu Księgi Gości
Forum PHP.pl > Forum > Przedszkole
neneth
Witam,

mam problem z zamieszczeniem skryptu Księgi Gości na swojej stronie. Stronę robię w php i moim głównym plikiem jest index.php . Jak zamieszczam kod, to - oprócz formularza Księgi - wyświetla się na stronie kod skryptu. Nie wiem, jak go dodać na stronę, żeby wyświetlał się tylko sam formularz. Proszę o pomoc. Oto ten kod:
Kod
<div align="center"><b>KSIĘGA GOSCI</b><BR></DIV>
<TABLE width="70%" align="CENTER"><TR><TD>

<!-- cała księga jest w jednym pliku, w zależnoœci od wywołania (parametr $id) wykonywana jest odpowiednia akcja
     np. dla $id=1 jest wyswietlenie formularza słuzacego do dokonania wpisu; dla $id=2 wykonywany jest zapis danych
     z formularza do księgi pamietanej w pliku tekstowym po uprzedniej weryfikacji danych; dla $id różnego od 1 i od 2 jest
     po prostu wyswietlana ksiega -->  


<? if ($id==1):  ?>

    
   <DIV class="styl"><BR><BR><BR><font size="4">Twój wpis do księgi:<BR><BR><BR></font>
   <FORM ACTION="wzorbook.php?id=2" METHOD="POST">
   Autor: &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
   <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="Autor"><BR><BR>
   E-mail: &nbsp; &nbsp; &nbsp; &nbsp;
   <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="adres"><BR><BR>
   www:  &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
   <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="web"><BR><BR>
<font size="2">(pola e-mail i www mogą pozostać puste)</font><BR><BR>
   <TEXTAREA NAME="Tresc" WRAP COLS=50 style="BACKGROUND-COLOR: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" ROWS=5></TEXTAREA><BR><BR><BR> &nbsp;  &nbsp;  &nbsp;  
   <INPUT TYPE=SUBMIT VALUE= " Dopisz " style="BACKGROUND-COLOR: #333333;  FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF"> &nbsp;  &nbsp;  &nbsp;  
   <INPUT TYPE="RESET"  VALUE=" Wyczyść " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF">
   </FORM></DIV>  
<? exit; endif; ?>


<? if ($id==2) {

  if(($Autor=="") or ($Tresc==""))   // było jeszcze sprawdzanie pole e-mail, ale zrezygnowałem:  or ($adres=="")
  //jesli pole autor lub tresc jest puste pojawia sie komunikat monitujacy
  {
  print("<BR><BR><P class=\"styl\"><B>Nie wypełniłeś wszytkich pól !</B></P>");
  print("<BR><BR><P class=\"styl\"><A HREF=\"wzorbook.php?id=1\">powrót do formularza</A></P>");
  print("<P class=\"styl\"><A HREF=\"wzorbook.php\">powrót do księgi</A></P>");
  exit;
  }
//tu obrabia sie wpis przez usuniecie ewentualnych znakow niebezpiecznych,
//a enter zamienia sie na przejscie do nowej linii  
  $Tresc = ereg_replace("<","<", $Tresc);
  $Tresc = ereg_replace(">",">", $Tresc);
  $Tresc = ereg_replace("\n", "<BR>", $Tresc);
  
//wpisy ksiegi gosci pamietane sa w pliku o nazwie ksiazka.txt - oczywiscie mozna to zmienic

  $nazwa = "ksiazka.txt";

//nie wysilalem sie z weryfikacja wpisanego przez goscia adresu wlasnej strony
//po prostu mozna tutaj wpisac tylko adres w ktorym wystepuje ciag znakow ".pl"
//moze jest to krzywdzace dla posiadaczy stron bez takich znakow w adresie,
//ale z pewnoscia uchroni to ksiege przed wpisem zlosliwego goscia np. http://dupa.jasiu

  if (ereg(".pl", $web)) {
   $web="moja strona: &nbsp; <a href=\"$web\" target='_blank'>$web</a><BR>";
   }
  else {
   $web="";
   };

//jak widac nizej wpis zawiera nie tylko dane wpisane przez goscia, ale takze rozmaite znaczniki
//HTML formatujace wpis do postaci przydatnej do natychmiastowego wyswietlenia.
//jest to rozwiazanie spotykane w wielu ksiegach gosci

  if ($adres=="") {
   $adres="nie podano adresu e-mail";
   $wpis = "<I>".date("d.m.Y")." &nbsp; &nbsp; g. ".date("H.i")."</I><BR><B>$Autor<BR>$adres<BR>$web <BR></B> $Tresc\n";
   }
else {
  $wpis = "<I>".date("d.m.Y")." &nbsp; &nbsp; g. ".date("H.i")."</I><BR><B>$Autor<BR> <a HREF=\"mailto:$adres\">$adres</A> <BR>$web<BR></B> $Tresc\n";  
  };
  $myFile = fopen($nazwa, "r+");
  $wpis=$wpis.fread($myFile, filesize($nazwa));
  rewind($myFile);
  fputs($myFile, $wpis);
  fclose($myFile);
    
  print("<BR><BR><P class=\"styl\"><B>Dziękuję za wpis!</B></P><BR>");
  print("<BR><BR><P class=\"styl\"><A href=\"wzorbook.php\">obejrzyj swój wpis</A></P>");

//w tym miejscu jest hiperlink do powrotu do strony glownej naszego serwisu np index.php lub index.htm itp.

  print("<P class=\"styl\"><A href=\"index.php\">powrót do  strony</A></P>");
}

else { //id nie równa się 1 ani 2
  
  print "<P class=\"styl\"><B><BR><font color=#FF0000>aby się wpisać kliknij";
  print "<A HREF=\"wzorbook.php?id=1\">&nbsp;&nbsp;&nbsp;";
  print "&nbsp;>> tutaj <<</A>";
  print ("<BR><font color=#000000>liczba wpisów w księdze (od 26.02.2002):&nbsp;");


// zliczanie dotychczasowych wpisów
// tu istotny moment liczba 2000 lilka linii nizej okresla w przyblizeniu dlugosc calego wpisu
//ktory mozna dokonac. Jezeli gosc wpisze caly elaborat to moze on zostac podzielony na 2
//albo na wiecej wpisow w ksiedze, ktore beda wyswietlone jeden za drugim jakby byly to 2 wpisy
//jezeli liczba 2000 jest za mala to mozna ja zmienic

  $nazwa = "ksiazka.txt";
  $myFile = fopen($nazwa, "r");
  $i=0;
  while(!feof($myFile))  {
     $myLine = fgets($myFile, 2000);
     $i++;
   }
  fclose($myFile);
  print(" &nbsp; $i<BR><BR></B></font>"); // drukowanie liczby wpisow;


  print "<HR color=#0000FF width=\"500\"><BR>";
  $nazwa = "ksiazka.txt";
  $myFile = fopen($nazwa, "r");
  $k=1;
  $end=$st+9;
  while(!feof($myFile))   // dopóki nie jest koniec pliku - drukowanie po jednym wpisie (1 wpis = 1 linia pliku
   {        // ale 1 linia pliku ma już w sobie format w jakim jest drukowana - zajmuje kilka linii)
     $myLine = fgets($myFile, 2000);
     if ($k>=$st) {
        if ($k<=$end) {
                    
                print("<P class=\"styl\">$myLine</P><HR width=\"500\" color=#0000FF><BR>");          
        };
     };
     $k++;
   }


//wpisy w ksiedze sa wyswietlane  "w dawkach" po 10 sztuk na jednej stronie;
//kolejne wpisy sa dostepne na innych stronach ksiegi, do ktorych mozna wejsc
//przez hiperlinki u dolu strony

  fclose($myFile);
  print("<P class=\"styl\"><B><font color=#000000>inne strony księgi<BR>");

  $ile=floor($i/10);                      //obliczenie iloœci stron ksiegi
  $ctpage=floor($st/10)+1;          //numer strony biezacej
  for ($z=0;$z<=$ile;$z++) {
    $y=$z+1;                             //numery stron sš od 1 a nie od 0
    if ($y==$ctpage) {print ("<FONT color=#000000> $y ");}       //piszemy numer biezacej strony nie jako hiperlink
       else {print ("<A HREF=\"wzorbook.php?st=".$z."1\"> $y </A>");}    //numery innych stron to hiperlinki
  };


  } //koniec od else

?>
</TD></TR></TABLE>

Będę wdzięczny za pomoc w tej sprawie.
nospor
nie: <?
a: <?php
neneth
Cytat(nospor @ 5.05.2011, 10:17:25 ) *
nie: <?
a: <?php


a w którym miejscu, bo próbuje wszędzie i wyskakuje mi błąd syntaktyczny w edytorze?
nospor
Wszędzie tam gdzie otwierasz kod php przy pomocy <?
Hpsi
Powiedz mi jedno , głownym plikiem jest index.php, czyli rozumiem ze includujesz inne pliki, ksiege gości masz napewno zapisane w *.php ?
neneth
Cytat(Hpsi+ @ 5.05.2011, 10:27:40 ) *
Powiedz mi jedno , głownym plikiem jest index.php, czyli rozumiem ze includujesz inne pliki, ksiege gości masz napewno zapisane w *.php ?


Jest tak, jak mówisz. Jak najlepiej incluudować skrypt, co jak klikam na link to mi wyskakuje dziwna rzecz - przekierowuje do google.pl

Próbowałem includować

poleceniem

<?php

include("wzorbook.php");

?>

ale wyskakiwały błędy.
nospor
Napisz dokładnie jakie masz błędy
neneth
Wklejam błędy

Warning: include(wzorbook.php) [function.include]: failed to open stream: No such file or directory in C:\xampp\htdocs\Odchudzanie\index.php on line 468

Warning: include() [function.include]: Failed opening 'wzorbook.php' for inclusion (include_path='.;\xampp\php\PEAR') in C:\xampp\htdocs\Odchudzanie\index.php on line 468


Na razie próbuję wszystko na serwerze lokalnym - xampp
nospor
komunikat błędu przecież wyraźnie cię informuje, że nie istnieje plik który próbujesz includować.
Podaj go z taką ścieżką z jaką istnieje
neneth
Skrypt jest widoczny na stronie, ale nie działa. Jak klikam na link przekierowujący mnie do formularza, to nic się nie dzieje.
Chodzi o ten fragment kodu:
  1. else { //id nie równa się 1 ani 2
  2.  
  3. print "<P class=\"styl\"><B><BR><font color=#FF0000>aby się wpisać kliknij";
  4. print "<A HREF=\"wzorbook.php?id=1\">   ";
  5. print " >> tutaj <<</A>";
  6. print ("<BR><font color=#000000>liczba wpisów w księdze (od 26.02.2002): ");


Jak klikam na link "tutaj" to nic się nie dzieje.
Hpsi
jaką masz ścieżkę do pliku wzorbook.php ? jest w głownym katalogu ?
neneth
Plik znajduje się tam, gdzie index.php w katalogu głównym.
MrCoody
spróbuj tak :

  1.  
  2. <?php
  3.  
  4. include 'wzorbook.php';
  5.  
  6. ?>
  7.  
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.