Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] problem po przeniesieniu na serwer
Forum PHP.pl > Forum > Przedszkole
aliatic
Witam,

Tworze sobie strone internetowa, a jednym z jej elementow mialaby byc ksiega gosci. Mam kod, ktory poczatkowo byl sprawdzany pod wzgledem funkcjonalnosci na wirtualnym serwerze poprzez program WebServ. No i wszystko tutaj dzialalo idealnie. Mianowicie mozna bylo dodac nowy wpis, a on od razu zapisywal go do pliku i odczytywal na stronie. Oto screen zrobiony nie tak dawno ...


Nastepnie po przeniesieniu wszystkiego na serwer i po dodaniu wpisu w ksiedze gosci wyskakuje taki oto blad ...


Popatrzylem troche w kod zrodlowy strony i oto co pokazuje ...


No i zastanawiam sie czy to jest blad w kodzie PHP, czy moze w ustawieniach serwera? Wychodzi na to, ze nie moze w ogole odnalezc pliku/serwera. Z tego co wiem, to kolega udostepnil mi jakas tam przestrzen na serwerze w formie katalogu. Moze to ma jakies znaczenie? Jak odczytuje plik zrodlowy ksiegi gosci po odpaleniu strony na localhost'cie, to wyswietla mi prawidlowo <form action=/ksiega_gosci.php method=post>. Moge przypisac w kodzie na serwerze bezposrednio ten plik, ale i tak wtedy nie dodaje wpisu.

ponizej wklejam jeszcze kod owej funkcji z pliku kod_kometarzy.php3, moze wystarczy cos w kodzie zmienic aby dzialalo?
  1. function displayForm()
  2. {
  3. global $REQUEST_URI, $commentID;
  4. $id=substr($commentID, 1);
  5. $len=strlen($REQUEST_URI)-strlen(strchr($REQUEST_URI, "?"));
  6. $url=substr($REQUEST_URI, 0, $len);
  7. ?>
  8. <FORM ACTION="<?=$url?>" METHOD=POST>
  9. <INPUT TYPE=HIDDEN NAME=COMMENTACTION VALUE=add>
  10. <INPUT TYPE=HIDDEN NAME=commentID VALUE="<?=$id?>">
  11. <TABLE ALIGN=CENTER>
  12. <TR><TD>Nick:</TD><TD><INPUT TYPE=TEXT NAME=f_imie SIZE=35></TD>
  13. <TR><TD>E-mail:</TD><TD><INPUT TYPE=TEXT NAME=f_email SIZE=35></TD>
  14. <TR><TD>Tresc:</TD><TD><TEXTAREA NAME=f_tresc COLS=28 ROWS=7></TEXTAREA></TD>
  15. <TR><TD></TD><TD><INPUT TYPE=SUBMIT VALUE="DODAJ WPIS"></TD></TR>
  16. </TABLE>
  17. </FORM>
  18. <?
  19. }


no i jeszcze kod wywolujacy ta funkcje
  1. <p align="justify">Jeśli chciałbyś podzielić się swoją opinią na temat tegorocznej imprezy i nie tylko, to tutaj jest odpowiednie do tego miejsce.</p><br />
  2. <? $commentID=1;
  3. include("kod_komentarzy.php3"); ?>
  4.  
  5. <? displayComments(); ?>
  6. <? displayForm(); ?>


tak wiec, bede wdzieczny za okazala pomoc, gdyz sam nie moge/nie potrafie poradzic sobie z tym problemem sad.gif

pozdrawiam,
aliatic
Hekko
$REQUEST_URI zamień na $_SERVER['REQUEST_URI']
aliatic
Cytat(Hekko @ 16.02.2011, 00:26:34 ) *
$REQUEST_URI zamień na $_SERVER['REQUEST_URI']

dzieki, juz jest jakis krok do przodu. zmienilem i kod przedstawia sie nastepujaco ...
  1. function displayForm()
  2. {
  3. global $REQUEST_URI, $commentID;
  4. $id=substr($commentID, 1);
  5. $len=strlen($_SERVER['REQUEST_URI'])-strlen(strchr($_SERVER['REQUEST_URI'], "?"));
  6. $url=substr($_SERVER['REQUEST_URI'], 0, $len);
  7. ?>
  8. <FORM ACTION=<?=$url?> METHOD=POST>
  9. <INPUT TYPE=HIDDEN NAME=COMMENTACTION VALUE=add>
  10. <INPUT TYPE=HIDDEN NAME=commentID VALUE="<?=$id?>">
  11. <TABLE ALIGN=CENTER>
  12. <TR><TD>Nick:</TD><TD><INPUT TYPE=TEXT NAME=f_imie SIZE=35></TD>
  13. <TR><TD>E-mail:</TD><TD><INPUT TYPE=TEXT NAME=f_email SIZE=35></TD>
  14. <TR><TD>Tresc:</TD><TD><TEXTAREA NAME=f_tresc COLS=28 ROWS=7></TEXTAREA></TD>
  15. <TR><TD></TD><TD><INPUT TYPE=SUBMIT VALUE="DODAJ WPIS"></TD></TR>
  16. </TABLE>
  17. </FORM>
  18. <?
  19. }

teraz nie wywala bledu i poprawnie znajduje plik ksiega_gosci.php. aczkolwiek nie zapisuje wiadomosci do pliku. w efekcie po nacisnieciu przyciku wyslij, powraca na strone i nie dodaje wpisu. aha, jak w global zmienie $REQUEST_URI na $_SERVER['REQUEST_URI'], to wywala blad.
Cytat
Parse error: syntax error, unexpected '[', expecting ',' or ';' in C:\Program Files\WebServ\httpd\kod_komentarzy.php3 on line 60


katalog i plik, maja ustawiony dostep na 777. tak wiec, nie jest to kwestia niemozliwosci zapisu. wiec wychodzi na to, ze gdzies w kodzie jeszcze mam blad. bylyby ktos tak mily i przegladnal owy kod i wskazal bledy?

kod_komentarzy.php3
  1. <?
  2.  
  3. $DATADIR="ksiega_gosci/";
  4. $FORMAT="<TABLE WIDTH=100% cellspacing=0><TR BGCOLOR=#3389b7><TD><b>%imie% </b></TD><TD ALIGN=RIGHT>%data%</TD></TR><TR><TD COLSPAN=2 BGCOLOR=#d9d9d9>%tekst%</TD></TR></TABLE></BR>";
  5.  
  6. // --------------------------------------------------------
  7.  
  8.  
  9. $commentID="a$commentID";
  10.  
  11. function displayComments()
  12. {
  13. global $commentID, $start, $DATADIR, $FORMAT;
  14.  
  15. if(strstr($commentID, "/"))
  16. return;
  17.  
  18. if(!file_exists($DATADIR.$commentID))
  19. return;
  20.  
  21. $file=fopen($DATADIR.$commentID, "r");
  22. flock($file, 1);
  23.  
  24. $i=0;
  25.  
  26. while(!feof($file))
  27. {
  28. $imie=chop(fgets($file, 1000));
  29. $email=chop(fgets($file, 1000));
  30. $data=chop(fgets($file, 1000));
  31. $comment=chop(fgets($file, 100000));
  32.  
  33. if(feof($file))
  34. break;
  35.  
  36. $display=$FORMAT;
  37.  
  38. if($email)
  39. $mailto="<A HREF=\"mailto:$email\">$email</A>";
  40. else
  41. $mailto="Brak e-maila";
  42.  
  43.  
  44. $display=str_replace("%imie%", $imie, $display);
  45. $display=str_replace("%email%", $mailto, $display);
  46. $display=str_replace("%data%", $data, $display);
  47. $display=str_replace("%tekst%", $comment, $display);
  48.  
  49. echo($display);
  50.  
  51. $i++;
  52. }
  53.  
  54. flock($file, 3);
  55. fclose($file);
  56. }
  57.  
  58. function displayForm()
  59. {
  60. global $REQUEST_URI, $commentID;
  61. $id=substr($commentID, 1);
  62. $len=strlen($_SERVER['REQUEST_URI'])-strlen(strchr($_SERVER['REQUEST_URI'], "?"));
  63. $url=substr($_SERVER['REQUEST_URI'], 0, $len);
  64. ?>
  65. <FORM ACTION=<?=$url?> METHOD=POST>
  66. <INPUT TYPE=HIDDEN NAME=COMMENTACTION VALUE=add>
  67. <INPUT TYPE=HIDDEN NAME=commentID VALUE="<?=$id?>">
  68. <TABLE ALIGN=CENTER>
  69. <TR><TD>Nick:</TD><TD><INPUT TYPE=TEXT NAME=f_imie SIZE=35></TD>
  70. <TR><TD>E-mail:</TD><TD><INPUT TYPE=TEXT NAME=f_email SIZE=35></TD>
  71. <TR><TD>Tresc:</TD><TD><TEXTAREA NAME=f_tresc COLS=28 ROWS=7></TEXTAREA></TD>
  72. <TR><TD></TD><TD><INPUT TYPE=SUBMIT VALUE="DODAJ WPIS"></TD></TR>
  73. </TABLE>
  74. </FORM>
  75. <?
  76. }
  77.  
  78.  
  79. if($COMMENTACTION=="add")
  80. {
  81. $file=fopen($DATADIR.$commentID, "a");
  82. flock($file, 2);
  83.  
  84. $f_tresc=str_replace("\n", "<BR>", $f_tresc);
  85. $f_tresc=str_replace("\r", "", $f_tresc);
  86. $f_imie=str_replace("\n", "<BR>", $f_imie);
  87. $f_imei=str_replace("\r", "", $f_imie);
  88. $f_email=str_replace("\n", "<BR>", $f_email);
  89. $f_email=str_replace("\r", "", $f_email);
  90.  
  91. fputs($file, $f_imie);
  92. fputs($file, "\n");
  93. fputs($file, $f_email);
  94. fputs($file, "\n");
  95. fputs($file, date("H:i d-m-Y"));
  96. fputs($file, "\n");
  97. fputs($file, $f_tresc);
  98. fputs($file, "\n");
  99.  
  100. flock($file, 3);
  101. fclose($file);
  102. }
  103.  
  104.  
  105. ?>


wszystko wywolywane jest w pliku ksiega_gosci.php poprzez ponizszy kod
  1. <? $commentID=1;
  2. include("kod_komentarzy.php3"); ?>
  3.  
  4. <? displayComments(); ?>
  5. <? displayForm(); ?>
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.