Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bezkonfliktowe dodanie warunku do już istniejących
Forum PHP.pl > Forum > Przedszkole
Gren-landia
Oto prosty skrypt księgi gości:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
  5. <link rel="STYLESHEET" type="text/css" href="style.css">
  6. </head>
  7. <table style="height:100%; width:100%;" cellspacing="0" cellpadding="0">
  8. <tr>
  9. <td>
  10. <center>
  11. <b>COMMENTS</b>
  12. </center>
  13. <p align="center">* <i>Required!</i></p><br>
  14. <?
  15.  
  16. $txt=fopen("guest.gb","r");
  17.  
  18. $gbfile="";
  19. while($line=fgets($txt,3000))
  20. $gbfile.=$line;
  21.  
  22. //name
  23. if(isset($name))
  24. if($name==""){
  25. $errorcolor_1 = "red";
  26. $error = "error";
  27. }
  28. else{
  29. $errorcolor_1 = "black";
  30. }
  31.  
  32. //comment
  33. if(isset($comment))
  34. if($comment==""){
  35. $errorcolor_2 = "red";
  36. $error = "error";
  37. }
  38. else{
  39. $errorcolor_2 = "black";
  40. }
  41.  
  42. if(!$action){
  43. $action = "note";
  44. }
  45.  
  46. if($error=="error"||$action=="note"){
  47. ?>
  48.  
  49. <div align="center">
  50. <center>
  51. <form method="post" action="<? echo $PHP_SELF;?>">
  52. <font color="<? echo $errorcolor_1; ?>">Name*</font><br />
  53. <input type="text" name="name" style="width: 250px; height: 17px;" class="note"><br />e-Mail<br />
  54. <input type="text" name="mail" style="width: 250px; height: 17px;" value="@" class="note" style="font-family: verdana; font-size: 11px"><br />
  55. <br />
  56. <font color="<? echo $errorcolor_2; ?>">Comment*</font><br />
  57. <textarea name="comment" cols="39" rows="6" class="note</textarea><br /><br />
  58. <input type="submit" name="action" value="Send" class="note" style="font-family: verdana; font-size: 11px">
  59. <input type="reset" name="action" value="Reset" class="note" style="font-family: verdana; font-size: 11px">
  60. <br>
  61. </form>
  62. </center>
  63. </div>
  64.  
  65. <?
  66. echo "<p>$gbfile</p>"
  67. ?>
  68. <?
  69. }else{
  70.  
  71. if(isset($name)&&isset($comment)&&isset($mail))
  72. {
  73. $name=stripslashes(strip_tags($name));
  74. $comment=stripslashes(strip_tags($comment));
  75. $contact=stripslashes(strip_tags($mail));
  76. mail("gren-landia@...","Comment Entry",
  77. "Name: $name 
  78. e-Mail: $mail
  79. Comment: $comment ");
  80.  
  81. if ($mail=="" OR $mail=="@") 
  82. { 
  83. $m = null; 
  84. } 
  85. else 
  86. { 
  87. $m = "<br>\n<a href='mailto:$mail'>$mail</a>"; 
  88. } 
  89.  
  90. $gbfile="<br><center><i>".date(" d.m.Y ")."</i><br>\n<b>$name</b> $m\n"."</center>\n$comment<br><center><br>*</center>\n".$gbfile;
  91. fclose($txt);
  92. $txt=fopen("guest.gb","w");
  93. fputs($txt,$gbfile)
  94. or die ("<p><br><center>Error.<br>--><a href='guest.php'>Go back.</a></center><br></p>");
  95. }
  96. echo "<p><br><center>Thanks.<br>--><a href='guest.php'>Go back.</a></center><br> " . $gbfile . "</p>";
  97. fclose($txt);
  98. }
  99. ?>
  100. <p>
  101. </td>
  102. </tr>
  103. </table>
  104. </body>
  105. </html>


Po dodaniu opcji przyporządkowującej nickowi "Owner" inny kolor, np. niebieski #0000FF, do funkcji error w postaci:

  1. <?php
  2. //name
  3. if(isset($name))
  4. if($name==""){
  5. $errorcolor_1 = "red";
  6. $error = "error";
  7. }
  8. elseif($name=="Owner"){
  9. $errorcolor_1 = "black";
  10. $nam = "<font color="#0000FF">$name</font>";
  11. }
  12. else{
  13. $errorcolor_1 = "black";
  14. $nam = "$name";
  15. }
  16. ?>


(gdzie $nam jest nową zmienną zastępującą przy zapisywaniu do pliku zmienną $name)

pojawia się komunikat błędu:

"Parse error: parse error, unexpected '}' in /n/guest.php on line 31"

(gdzie 31. linijka to

  1. <?php
  2. //name
  3. if(isset($name))
  4. if($name==""){
  5. $errorcolor_1 = "red";
  6. $error = "error";
  7. }
  8. elseif($name=="Owner"){
  9. $errorcolor_1 = "black";
  10. $nam = "<font color="#0000FF">$name</font>";
  11. } -------------------------TA
  12. else{
  13. $errorcolor_1 = "black";
  14. $nam = "$name";
  15. }
  16. ?>
)

Tak samo po dodaniu wpisu

  1. <?php
  2. if ($name=="Owner") 
  3. { 
  4. $nam = "<font color="#0000FF">$name</font>";
  5. } // (linijka 93)
  6. else 
  7. { 
  8. $nam = "$name"; 
  9. } 
  10. ?>


już w drugiej części kodu, tuż po warunku dotyczącym zmiennej $mail, pojawia się "Parse error" ze wskazaniem na odpowiadającą linijkę 93.

Gdzie w dodanej funkcji jest błąd, i czy możliwe jest bezkonfliktowe dodanie interesującej mnie funkcji do istniejącej funkcji errorcolor?

Zaznaczam od razu, że właściwie nie znam się na php, a wszelkie zmiany w kodach przeprowadzam "metodą prób i błędów" wielokrotnymi przeróbkami.
Kuziu
  1. <?php
  2. $nam = "<font color="#0000FF">$name</font>";
  3. ?>


Znaki ucieczki

  1. <?php
  2. $nam = "<font color=\"#0000FF\">$name</font>";
  3. ?>
Gren-landia
Wielkie dzięki :). Tylko dlaczego wciąż zapisuje się sam nick, ignorując kod < font color ... > ? Nawet po bezczelnym wpisaniu < font color ... > przed nickiem wysyła się sam nick...
Gren-landia
Ale $nam zastępuje u mnie $name przy zapisywaniu do pliku, tak jak $m zastępuję $mail...
Kuziu
Powiedz w której linii bo ja tego nie widze:
  1. <?php
  2. $gbfile="<br><center><i>".date(" d.m.Y ")."</i><br>\n<b>$name</b> $m\n"."</center>\n$comment<br><center><br>*</center>\n".$gbfile;
  3. ?>


Wyraźnie jest tutaj $name

To skąd mam niby wiedzieć co jest nie tak nie widząc kodu .....
Gren-landia
Oczywiście, ponieważ to jest oryginalny kod przed przeróbkami, w wersji ostatecznej jest tam $nam.
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.