Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Księga gości na home.pl nie działa
Forum PHP.pl > Forum > Przedszkole
rosirosi
Witam serdecznie....
Mam taki problem, normalnie działająca zbudowana na jednym pliku księga gości oparta na zapisie do pliku txt po przniesieniu na serwery home.pl nie działa..
po wybraniu linku do wpisania się w pasku adresu zmienia sie adres tj. zmienia sie ?id=1 ktore powinno wywołać odpowiedni do wpisania kod w skrypcie ale nic sie nie dzieje oprocz przeładownia strony-odświeżenia... na lokalnym serwerze tez działa jak należy...
Czy moglibyście pomóc ?
oczywiscie CHMODy sa na 777
  1. <? if ($id==1): ?>
  2. <DIV class="styl"><BR><BR><BR><font size="4">Twój wpis do księgi:<BR><BR><BR></font>
  3. <FORM ACTION="book.php?id=2" METHOD="POST">
  4. Autor: &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
  5. <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="Autor"><BR><BR>
  6. E-mail: &nbsp; &nbsp; &nbsp; &nbsp;
  7. <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="adres"><BR><BR>
  8. www: &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
  9. <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="web"><BR><BR>
  10. <font size="2">(pola e-mail i www mogą pozostać puste)</font><BR><BR>
  11. <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;
  12. <INPUT TYPE=SUBMIT VALUE= " Dopisz " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF"> &nbsp; &nbsp; &nbsp;
  13. <INPUT TYPE="RESET" VALUE=" Wyczyć " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF">
  14. </FORM></DIV>
  15. <? exit; endif; ?>
  16.  
  17.  
  18. <? if ($id==2) {
  19.  
  20. if(($Autor=="") or ($Tresc=="")) // było jeszcze sprawdzanie pole e-mail, ale zrezygnowałem: or ($adres=="")
  21. //jesli pole autor lub tresc jest puste pojawia sie komunikat monitujacy
  22. {
  23. print("<BR><BR><P class=\"styl\"><B>Nie wypełniłe wszytkich pól !</B></P>");
  24. print("<BR><BR><P class=\"styl\"><A HREF=\"book.php?id=1\">powrót do formularza</A></P>");
  25. print("<P class=\"styl\"><A HREF=\"book.php\">powrót do księgi</A></P>");
  26. }
  27. //tu obrabia sie wpis przez usuniecie ewentualnych znakow niebezpiecznych,
  28. //a enter zamienia sie na przejscie do nowej linii
  29. $Tresc = ereg_replace("<","&lt;", $Tresc);
  30. $Tresc = ereg_replace(">","&gt;", $Tresc);
  31. $Tresc = ereg_replace("\n", "<BR>", $Tresc);
  32.  
  33. //wpisy ksiegi gosci pamietane sa w pliku o nazwie ksiazka.txt - oczywiscie mozna to zmienic
  34.  
  35. $nazwa = "ksiazka.txt";
  36.  
  37. //nie wysilalem sie z weryfikacja wpisanego przez goscia adresu wlasnej strony
  38. //po prostu mozna tutaj wpisac tylko adres w ktorym wystepuje ciag znakow ".pl"
  39. //moze jest to krzywdzace dla posiadaczy stron bez takich znakow w adresie,
  40. //ale z pewnoscia uchroni to ksiege przed wpisem zlosliwego goscia np. <a href="http://dupa.jasiu" target="_blank">http://dupa.jasiu</a>
  41.  
  42. if (ereg(".pl", $web)) {
  43. $web="moja strona: &nbsp; <a href=\"$web\" target='_blank'>$web</a><BR>";
  44. }
  45. else {
  46. $web="";
  47. };
  48.  
  49. //jak widac nizej wpis zawiera nie tylko dane wpisane przez goscia, ale takze rozmaite znaczniki
  50. //HTML formatujace wpis do postaci przydatnej do natychmiastowego wyswietlenia.
  51. //jest to rozwiazanie spotykane w wielu ksiegach gosci
  52.  
  53. if ($adres=="") {
  54. $adres="nie podano adresu e-mail";
  55. $wpis = "<I>".date("d.m.Y")." &nbsp; &nbsp; g. ".date("H.i")."</I><BR><B>$Autor<BR>$adres<BR>$web <BR></B> $Tresc\n";
  56. }
  57. else {
  58. $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";
  59. };
  60. $myFile = fopen($nazwa, "r+");
  61. $wpis=$wpis.fread($myFile, filesize($nazwa));
  62. rewind($myFile);
  63. fputs($myFile, $wpis);
  64. fclose($myFile);
  65.  
  66. print("<BR><BR><P class=\"styl\"><B>Dziękuję za wpis!</B></P><BR>");
  67. print("<BR><BR><P class=\"styl\"><A href=\"book.php\">obejrzyj swój wpis</A></P>");
  68.  
  69. //w tym miejscu jest hiperlink do powrotu do strony glownej naszego serwisu np index.php lub index.htm itp.
  70.  
  71. print("<P class=\"styl\"><A href=\"index.php\">powrót do strony</A></P>");
  72. }
  73.  
  74. else { //id nie równa się 1 ani 2
  75.  
  76. print "<P class=\"styl\"><B><BR><font color=#FF0000>aby się wpisać kliknij";
  77. print "<A HREF=\"book.php?id=1\">&nbsp;&nbsp;&nbsp;";
  78. print "&nbsp;>> tutaj <<</A>";
  79. print ("<BR><font color=#000000>liczba wpisów w księdze (od 26.02.2002):&nbsp;");
  80.  
  81.  
  82. // zliczanie dotychczasowych wpisów
  83. // tu istotny moment liczba 2000 lilka linii nizej okresla w przyblizeniu dlugosc calego wpisu
  84. //ktory mozna dokonac. Jezeli gosc wpisze caly elaborat to moze on zostac podzielony na 2
  85. //albo na wiecej wpisow w ksiedze, ktore beda wyswietlone jeden za drugim jakby byly to 2 wpisy
  86. //jezeli liczba 2000 jest za mala to mozna ja zmienic
  87.  
  88. $nazwa = "ksiazka.txt";
  89. $myFile = fopen($nazwa, "r");
  90. $i=0;
  91. while(!feof($myFile)) {
  92. $myLine = fgets($myFile, 2000);
  93. $i++;
  94. }
  95. fclose($myFile);
  96. print(" &nbsp; $i<BR><BR></B></font>"); // drukowanie liczby wpisow;
  97.  
  98.  
  99. print "<HR color=#0000FF width=\"500\"><BR>";
  100. $nazwa = "ksiazka.txt";
  101. $myFile = fopen($nazwa, "r");
  102. $k=1;
  103. $end=$st+9;
  104. while(!feof($myFile)) // dopóki nie jest koniec pliku - drukowanie po jednym wpisie (1 wpis = 1 linia pliku
  105. { // ale 1 linia pliku ma już w sobie format w jakim jest drukowana - zajmuje kilka linii)
  106. $myLine = fgets($myFile, 2000);
  107. if ($k>=$st) {
  108. if ($k<=$end) {
  109.  
  110. print("<P class=\"styl\">$myLine</P><HR width=\"500\" color=#0000FF><BR>");
  111. };
  112. };
  113. $k++;
  114. }
  115.  
  116.  
  117. //wpisy w ksiedze sa wyswietlane "w dawkach" po 10 sztuk na jednej stronie;
  118. //kolejne wpisy sa dostepne na innych stronach ksiegi, do ktorych mozna wejsc
  119. //przez hiperlinki u dolu strony
  120.  
  121. fclose($myFile);
  122. print("<P class=\"styl\"><B><font color=#000000>inne strony księgi<BR>");
  123.  
  124. $ile=floor($i/10); //obliczenie ilości stron ksiegi
  125. $ctpage=floor($st/10)+1; //numer strony biezacej
  126. for ($z=0;$z<=$ile;$z++) {
  127. $y=$z+1; //numery stron są od 1 a nie od 0
  128. if ($y==$ctpage) {print ("<FONT color=#000000> $y ");} //piszemy numer biezacej strony nie jako hiperlink
  129. else {print ("<A HREF=\"book.php?st=".$z."1\"> $y </A>");} //numery innych stron to hiperlinki
  130. };
  131.  
  132.  
  133. } //koniec od else
  134.  
  135. ?>



WebCM
Podejrzewam, że short_open_tag = Off. Zamień <? na <?php

Zamień $id na $_GET['id']. Tak samo postąp z innymi parametrami przekazywanymi przez adres URL. Pola formularzy uzyskujesz przez $_POST, np. $_POST['nazwa_pola'], a nie $nazwa_pola.

Jeżeli to gotowiec - zmień skrypt. Era PHP 4.0 skończyła się już dawno.

Jeśli sam to pisałeś, podaj adres kursu, z którego korzystasz (jeśli nie chcesz na forum, możesz na PW).
mls
short_open_tag jest na home.pl domyślnie włączone, w przeciwieństwie do register_globals, które zresztą na każdym lepszym czy gorszym serwerze powinno być wyłączone i w ogóle nigdy nie powinno istnieć...
rosirosi
Dzięki serdeczne za odpowiedz...
jest to gotowiec wzięty jakis czas temu z net-a
po zmianie <? na <?php bez zmian...
jutro pozmieniam zmienne tak jak radził kolega WebCM i się odezwę (dzisiaj juz niestety nie żyje)...
chyba ze jeszcze jakaś koncepcja jest możliwa,(kontakt z adminem z home.pl) ?
jeszcze raz wielkie dzięki i dobranoc
WebCM
W PHP 6 zniknie register_globals, a poza tym to jedna wielka luka w bezpieczeństwie skryptów. Dokonaj zmian. smile.gif
rosirosi
Witam Panowie.....

Dzięki wielkie kolego WebCM Twoje rady pomogły,

$_GET['id'] i $_POST['nazwa_pola'] pomogły
teraz śmiga jak na innych serwach...

załączam poprawiony kod, a nóż ktoś nie będzie musiał przerabiać-chociaż to było ciekawe doświadczenie winksmiley.jpg
  1. <? if ($_GET[id]==1): ?>
  2. <DIV class="styl"><BR><BR><BR><font size="4">Twój wpis do księgi:<BR><BR><BR></font>
  3. <FORM ACTION="bookk.php?id=2" METHOD="POST">
  4. Autor: &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
  5. <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="Autor"><BR><BR>
  6. E-mail: &nbsp; &nbsp; &nbsp; &nbsp;
  7. <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="adres"><BR><BR>
  8. www: &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
  9. <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="web"><BR><BR>
  10. <font size="2">(pola e-mail i www mogą pozostać puste)</font><BR><BR>
  11. <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;
  12. <INPUT TYPE=SUBMIT VALUE= " Dopisz " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF"> &nbsp; &nbsp; &nbsp;
  13. <INPUT TYPE="RESET" VALUE=" Wyczyść " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF">
  14. </FORM><br>Powrót do księgi gości <a href="bookk.php">Powrót do księgi gości </a></DIV>
  15. <? exit; endif; ?>
  16. <? if ($_GET[id]==2) {
  17.  
  18. if(($_POST['Autor']=="") or ($_POST['Tresc']==""))
  19. {
  20. print("<BR><BR><P class=\"styl\"><B>Nie wypełniłeś wszytkich pól !</B></P>");
  21. print("<BR><BR><P class=\"styl\"><A HREF=\"bookk.php?id=1\">powrót do formularza</A></P>");
  22. print("<P class=\"styl\"><A HREF=\"bookk.php\">powrót do księgi</A></P>");
  23. }
  24. $Tresc = ereg_replace("<","&lt;", $_POST['Tresc']);
  25. $Tresc = ereg_replace(">","&gt;", $_POST['Tresc']);
  26. $Tresc = ereg_replace("\n", "<BR>", $_POST['Tresc']);
  27. $Autor = ereg_replace("\n", "<BR>", $_POST['Autor']);
  28. $web = ereg_replace("\n", "<BR>", $_POST['web']);
  29. $adres = ereg_replace("\n", "<BR>", $_POST['adres']);
  30.  
  31.  
  32. $nazwa = "ksiazkaa.txt";
  33.  
  34.  
  35. if (ereg(".pl", $_POST['web'])) {
  36. $web="moja strona: &nbsp; <a href=\"$web\" target='_blank'>$web</a><BR>";
  37. }
  38. else {
  39. $web="";
  40. };
  41.  
  42. if ($adres=="") {
  43. $adres="nie podano adresu e-mail";
  44. $wpis = "<I>".date("d.m.Y")." &nbsp; &nbsp; g. ".date("H.i")."</I><BR><B>$Autor<BR>$adres<BR>$web <BR></B> $Tresc\n";
  45. }
  46. else {
  47. $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";
  48. };
  49. $myFile = fopen($nazwa, "r+");
  50. $wpis=$wpis.fread($myFile, filesize($nazwa));
  51. rewind($myFile);
  52. fputs($myFile, $wpis);
  53. fclose($myFile);
  54.  
  55. print("<BR><BR><P class=\"styl\"><B>Dziękuję za wpis!</B></P><BR>");
  56. print("<BR><BR><P class=\"styl\"><A href=\"bookk.php\">obejrzyj swój wpis</A></P>");
  57.  
  58. print("<P class=\"styl\"><A href=\"index.php\">powrót do strony</A></P>");
  59. }
  60.  
  61. else {
  62.  
  63. print "<P class=\"styl\"><B><BR><font color=#FF0000>aby się wpisać kliknij";
  64. print "<A HREF=\"bookk.php?id=1\">&nbsp;&nbsp;&nbsp;";
  65. print "&nbsp;>> tutaj <<</A>";
  66. print ("<BR><font color=#000000>liczba wpisów w księdze (od 26.02.2002):&nbsp;");
  67.  
  68.  
  69.  
  70.  
  71. $nazwa = "ksiazkaa.txt";
  72. $myFile = fopen($nazwa, "r");
  73. $i=0;
  74. while(!feof($myFile)) {
  75. $myLine = fgets($myFile, 2000);
  76. $i++;
  77. }
  78. fclose($myFile);
  79. print(" &nbsp; $i<BR><BR></B></font>");
  80.  
  81.  
  82. print "<HR color=#0000FF width=\"500\"><BR>";
  83. $nazwa = "ksiazkaa.txt";
  84. $myFile = fopen($nazwa, "r");
  85. $k=1;
  86. $end=$st+9;
  87. while(!feof($myFile))
  88. {
  89. $myLine = fgets($myFile, 2000);
  90. if ($k>=$st) {
  91. if ($k<=$end) {
  92.  
  93. print("<P class=\"styl\">$myLine</P><HR width=\"500\" color=#0000FF><BR>");
  94. };
  95. };
  96. $k++;
  97. }
  98.  
  99.  
  100. fclose($myFile);
  101. print("<P class=\"styl\"><B><font color=#000000>inne strony księgi<BR>");
  102.  
  103. $ile=floor($i/10);
  104. $ctpage=floor($st/10)+1;
  105. for ($z=0;$z<=$ile;$z++) {
  106. $y=$z+1;
  107. if ($y==$ctpage) {print ("<FONT color=#000000> $y ");}
  108. else {print ("<A HREF=\"bookk.php?st=".$z."1\"> $y </A>");}
  109. };
  110.  
  111.  
  112. } //koniec od else
  113.  
  114. ?>




Jeszcze raz dzięki wielkie i pozdrawiam!
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.