Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]powracaja strona przy dodawaniu info
Forum PHP.pl > Forum > Przedszkole
gigzorr
mam taki oto skrypt , tzn ksiege gosci przerobilem , zeby dodawal info tzn IP i jakąś treść dodatkową..
  1. <?php
  2. error_reporting(E_ALL ^ E_NOTICE);
  3. ?>
  4. <STYLE type="text/css">
  5. a {text-decoration:none;
  6. color:black;
  7. font-size:13px;
  8. }
  9. .styl { font-size : 8pt; color : black; font-family : Verdana; text-align : center; line-height: 110%;}
  10. --></STYLE>
  11. </HEAD>
  12.  
  13. <BODY color=#000000>
  14. <div align="center"><b></b><BR></DIV>
  15. <TABLE width="150%" align="CENTER"><TR><TD>
  16.  
  17. <!-- cała księga jest w jednym pliku, w zależności od wywołania (parametr $id) wykonywana jest odpowiednia akcja
  18. np. dla $id=1 jest wyswietlenie formularza słuzacego do dokonania wpisu; dla $id=2 wykonywany jest zapis danych
  19. z formularza do księgi pamietanej w pliku tekstowym po uprzedniej weryfikacji danych; dla $id roznego od 1 i od 2 jest
  20. po prostu wyswietlana ksiega -->
  21.  
  22.  
  23. <? if ($id==1): ?>
  24.  
  25.  
  26. <DIV class="styl"><BR><BR><BR><font size="4"><BR><BR><BR></font>
  27. <FORM ACTION="wzorbook.php?id=2" METHOD="POST">
  28.  
  29. IP:
  30. <INPUT TYPE="TEXT" SIZE="30" MAXLENGTH="30" style="background-color: #BBBBBB; font-family: Verdana; font-size: 12pt color: #00FF00" NAME="adres"><BR><BR>
  31.  
  32. <font size="2"></font><BR><BR>
  33. <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;
  34. <INPUT TYPE=SUBMIT VALUE= " Add " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF"> &nbsp; &nbsp; &nbsp;
  35. <INPUT TYPE="RESET" VALUE=" Clear " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF"><br><br>
  36. <a href="index.php">Back</a>
  37. </FORM></DIV>
  38. <? exit; endif; ?>
  39.  
  40.  
  41. <? if ($id==2) {
  42.  
  43. if(($Tresc=="") or ($Tresc=="")) // było jeszcze sprawdzanie pole e-mail, ale zrezygnowałem: or ($adres=="")
  44. //jesli pole autor lub tresc jest puste pojawia sie komunikat monitujacy
  45. {
  46. print("<BR><BR><P class=\"styl\"><B>U have too complete all field!</B></P>");
  47. print("<BR><BR><P class=\"styl\"><A HREF=\"wzorbook.php?id=1\">Back</A></P>");
  48. }
  49. //tu obrabia sie wpis przez usuniecie ewentualnych znakow niebezpiecznych,
  50. //a enter zamienia sie na przejscie do nowej linii
  51. $Tresc = ereg_replace("<","&lt;", $Tresc);
  52. $Tresc = ereg_replace(">","&gt;", $Tresc);
  53. $Tresc = ereg_replace("\n", "<BR>", $Tresc);
  54.  
  55. //wpisy ksiegi gosci pamietane sa w pliku o nazwie ksiazka.txt - oczywiscie mozna to zmienic
  56.  
  57. $nazwa = "ksiazka.txt";
  58.  
  59. //nie wysilalem sie z weryfikacja wpisanego przez goscia adresu wlasnej strony
  60. //po prostu mozna tutaj wpisac tylko adres w ktorym wystepuje ciag znakow ".pl"
  61. //moze jest to krzywdzace dla posiadaczy stron bez takich znakow w adresie,
  62. //ale z pewnoscia uchroni to ksiege przed wpisem zlosliwego goscia np. http://dupa.jasiu
  63.  
  64. if (ereg(".pl", $web)) {
  65. $web="moja strona: &nbsp; <a href=\"$web\" target='_blank'>$web</a><BR>";
  66. }
  67. else {
  68. $web="";
  69. };
  70.  
  71. //jak widac nizej wpis zawiera nie tylko dane wpisane przez goscia, ale takze rozmaite znaczniki
  72. //HTML formatujace wpis do postaci przydatnej do natychmiastowego wyswietlenia.
  73. //jest to rozwiazanie spotykane w wielu ksiegach gosci
  74.  
  75. if ($adres=="") {
  76. $adres="nie podano adresu e-mail";
  77. $wpis = "<I>Date:&nbsp;".date("d.m.Y")." &nbsp; &nbsp; </I><BR><B>$Autor<BR>$adres<BR>$web <BR></B> $Tresc\n";
  78. }
  79. else {
  80. $wpis = "<I>Date:&nbsp;".date("d.m.Y")." &nbsp; &nbsp; </I><BR><B><BR> IP:&nbsp;<a HREF=\"http://$adres\">$adres</A> <BR>$web<BR></B> $Tresc\n";
  81. };
  82. $myFile = fopen($nazwa, "r+");
  83. $wpis=$wpis.fread($myFile, filesize($nazwa));
  84. rewind($myFile);
  85. fputs($myFile, $wpis);
  86. fclose($myFile);
  87.  
  88. print("<BR><BR><P class=\"styl\"><B>Sucesfully added</B></P><BR>");
  89.  
  90.  
  91. //w tym miejscu jest hiperlink do powrotu do strony glownej naszego serwisu np index.php lub index.htm itp.
  92.  
  93. print("<P class=\"styl\"><A href=\"index.php\">Back</A></P>");
  94. }
  95.  
  96. else { //id nie równa się 1 ani 2
  97.  
  98. print "<P class=\"styl\"><B><BR>Add server:&nbsp;";
  99. print "<A HREF=\"index.php?id=add\">";
  100. print "CLICK</A>";
  101. print ("<BR>Added:");
  102.  
  103.  
  104. // zliczanie dotychczasowych wpisów
  105. // tu istotny moment liczba 2000 lilka linii nizej okresla w przyblizeniu dlugosc calego wpisu
  106. //ktory mozna dokonac. Jezeli gosc wpisze caly elaborat to moze on zostac podzielony na 2
  107. //albo na wiecej wpisow w ksiedze, ktore beda wyswietlone jeden za drugim jakby byly to 2 wpisy
  108. //jezeli liczba 2000 jest za mala to mozna ja zmienic
  109.  
  110. $nazwa = "ksiazka.txt";
  111. $myFile = fopen($nazwa, "r");
  112. $i=0;
  113. while(!feof($myFile)) {
  114. $myLine = fgets($myFile, 2000);
  115. $i++;
  116. }
  117. fclose($myFile);
  118. print(" &nbsp; $i<BR><BR></B></font>"); // drukowanie liczby wpisow;
  119.  
  120.  
  121. p;
  122. $nazwa = "ksiazka.txt";
  123. $myFile = fopen($nazwa, "r");
  124. $k=1;
  125. $end=$st+3;
  126. while(!feof($myFile)) // dopóki nie jest koniec pliku - drukowanie po jednym wpisie (1 wpis = 1 linia pliku
  127. { // ale 1 linia pliku ma już w sobie format w jakim jest drukowana - zajmuje kilka linii)
  128. $myLine = fgets($myFile, 2000);
  129. if ($k>=$st) {
  130. if ($k<=$end) {
  131.  
  132. print("<P class=\"\">$myLine</P><br><br><br><BR>");
  133. };
  134. };
  135. $k++;
  136. }
  137.  
  138.  
  139. //wpisy w ksiedze sa wyswietlane "w dawkach" po 10 sztuk na jednej stronie;
  140. //kolejne wpisy sa dostepne na innych stronach ksiegi, do ktorych mozna wejsc
  141. //przez hiperlinki u dolu strony
  142.  
  143. fclose($myFile);
  144. print("<P class=\"styl\"><B><font color=#000000>Next<BR>");
  145.  
  146. $ile=floor($i/10); //obliczenie ilości stron ksiegi
  147. $ctpage=floor($st/10)+1; //numer strony biezacej
  148. for ($z=0;$z<=$ile;$z++) {
  149. $y=$z+1; //numery stron są od 1 a nie od 0
  150. if ($y==$ctpage) {print ("<FONT color=#000000> $y ");} //piszemy numer biezacej strony nie jako hiperlink
  151. else {print ("<A HREF=\"wzorbook.php?st=".$z."1\"> $y </A>");} //numery innych stron to hiperlinki
  152. };
  153.  
  154.  
  155. } //koniec od else
  156.  
  157. ?>
  158. </TD></TR></TABLE>
  159. </BODY>
  160. </HTML>


dodawanie.php

  1. <h6 align="center">U have a nice servers?So add them!</h6>
  2. <center>
  3. <DIV class="styl"><BR><BR><BR><font size="4"></font>
  4. <FORM ACTION="wzorbook.php?id=2" METHOD="POST">
  5.  
  6. IP:
  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.  
  9. <font size="2"></font><BR><BR>
  10. <TEXTAREA NAME="Tresc" WRAP COLS=50 style="BACKGROUND-COLOR: #BBBBBB; font-family:'Times New Roman', Times, serif; font-size: 12pt color: #00FF00" ROWS=5>Here u can write some info about server(delete this message).</TEXTAREA><BR><BR><BR> &nbsp; &nbsp; &nbsp;
  11. <INPUT TYPE=SUBMIT VALUE= " Add " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF"> &nbsp;
  12. <INPUT TYPE="RESET" VALUE=" Clear " style="BACKGROUND-COLOR: #333333; FONT-FAMILY : Verdana; FONT-SIZE : 12; color: #FFFFFF"><br><br>
  13.  
  14. <a href="index.php">Back</a>
  15. </FORM></DIV> </center>


Problem leży w tym, że na serverze ten skrypt nie działa tzn , jak klikam add to pokazuje się
Kod
Add server: CLICK
Added:   1 wyswietla 1 bo jest bug





Next
1


a powinno być "sucesfully added.." dodam , że na localu działa poprawnie?
dodam , że końcówka adresu na serverze i localu jest taka sama czyli
wzorbook.php?id=2
serwer:
Kod
Add server: CLICK
Added:   1





Next


local:
Kod
Sucesfully added

Back


erix
Bo na localu masz włączone register_globals, podczas gdy na większości serwerów jest to wyłączone.

Poszukaj na forum po tej frazie.
gigzorr
Cytat(erix @ 6.03.2010, 11:32:32 ) *
Bo na localu masz włączone register_globals, podczas gdy na większości serwerów jest to wyłączone.

Poszukaj na forum po tej frazie.



a mam inne pytanie , jest jakas opcja zeby to wlaczyc przez uzytkownika?ale wyczytalem teraz ze oni maja zablokowane i nie odblokuja , a jest jakas opcja zeby to zadzialalo na tym serwerze czy lepiej zmienic?
erix
Lepiej zmień. Mają rację, że nie zmieniają.
gigzorr
Cytat(erix @ 6.03.2010, 11:50:23 ) *
Lepiej zmień. Mają rację, że nie zmieniają.



Wyczytałem , że w tych czasach znaleźć hosting darmowy bez reklam z register globals on to paranoja
erix
Płatne też wyłączają register_globals. I w PHP6 ponoć w ogóle ma to zniknąć. Więc pisz, jak przykazano i nie ględź. tongue.gif
gigzorr
Cytat(erix @ 6.03.2010, 12:51:55 ) *
Płatne też wyłączają register_globals. I w PHP6 ponoć w ogóle ma to zniknąć. Więc pisz, jak przykazano i nie ględź. tongue.gif



jeden znalazłem z on smile.gif
erix
Mniejsza o to, nie o tym jest temat. Faktem jest, że register_globals jest ODRADZANE i należy pisać skrypty w oparciu o tablice superglobalne.
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.