Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dziwaczny błąd w formularzu do wysyłania maili
Gren-landia
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 13.02.2006
Skąd: Świnoujście

Ostrzeżenie: (0%)
-----


Oto prosty formularz kontaktowy:

  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. <title>CONTACT</title>
  6. <link rel="STYLESHEET" type="text/css" href="style.css">
  7. </head>
  8. <body style="background: white;">
  9. <br>
  10. <center>
  11. <b>CONTACT</b>
  12. </center>
  13. <p align="center">* <i>- Required!!!</i></p><br>
  14.  
  15. <?
  16.  
  17. if(isset($name))
  18. if($name==""){
  19. $errorcolor_1 = "red";
  20. $error = "error";
  21. }
  22. else{
  23. $errorcolor_1 = "black";
  24. }
  25.  
  26. if(isset($comment))
  27. if($comment==""){
  28. $errorcolor_2 = "red";
  29. $error = "error";
  30. }
  31. else{
  32. $errorcolor_2 = "black";
  33. }
  34.  
  35. if(isset($contact))
  36. if($contact==""){
  37. $errorcolor_3 = "red";
  38. $error = "error";
  39. }
  40. else{
  41. $errorcolor_3 = "black";
  42. }
  43.  
  44. if(!$action){
  45. $action = "note";
  46. }
  47.  
  48. if($error=="error"||$action=="note"){
  49. ?>
  50.  
  51. <div align="center">
  52. <form action="send.php" method="post">
  53. <font color="<? echo $errorcolor_1; ?>">Name*</font><br />
  54. <input type="text" name="name" style="width: 250px; height: 17px;" <? if(isset($name)) echo "value='$name'";?> class="note"><br />
  55. <table border="0" cellpadding="0" cellspacing="0" width="150">
  56. <tr>
  57. <td width="30"></td>
  58. <td width="120"><font color="<? echo $errorcolor_3; ?>">Contact Type*</font><br>
  59. <input class="note" type="radio" value="--none--" name="contact" style="border: 0"><font color="#ca0000">--none--</font>
  60. <br><input class="note" type="radio" value="@" name="contact" style="border: 0">e-Mail
  61. <br><input class="note" type="radio" value="http://" name="contact" style="border: 0">URL
  62. </td>
  63. </tr>
  64. </table>
  65. Contact Address<br />
  66. <input type="text" name="address" style="width: 250px; height: 17px;" class="note"><br />
  67. <font color="<? echo $errorcolor_2; ?>">Comment*</font><br />
  68. <textarea name="comment" cols="39" rows="6" class="note"><? if(isset($comment)) echo "value='$comment'";?></textarea><br /><br />
  69. <input type="submit" name="action" value="Send" class="note">
  70. <input type="Hidden" name="action" value="Send" class="note">
  71. <input type="reset" name="action" value="Reset" class="note">
  72. </form>
  73. </div>
  74. </body>
  75. </html>


a to (nie wiem, czy będzie potrzebne) plik wykonawczy send.php:

  1. <? 
  2. $name=$_POST['name']; 
  3. $contact=$_POST['contact'];
  4. $address=$_POST['address']; 
  5. $comment=$_POST['comment'];
  6.  
  7. mail("mail@mail.org", "Contact Form", 
  8. "Name: $name 
  9. Contact: $contact
  10. Address: $address 
  11. Comment: $comment ");
  12. echo "<p><br><center>Thanks.<br><a href='contact.php'>>Go back<</a></center><br></p>"; 
  13. ?>


po zgraniu plików na serwer i próbie wejście na stronę formularza pojawia się błąd:

Parse error: parse error, unexpected $ in gj/contact.php on line 75

A w linii 75 znajduje się jedynie:
Kod
</div>


Jednocześnie po wyrzuceniu z pliku formularza funkcji sprawdzającej wypełnienie danych pól

  1. <?
  2.  
  3. if(isset($name))
  4. if($name==""){
  5. $errorcolor_1 = "red";
  6. $error = "error";
  7. }
  8. else{
  9. $errorcolor_1 = "black";
  10. }
  11.  
  12. if(isset($comment))
  13. if($comment==""){
  14. $errorcolor_2 = "red";
  15. $error = "error";
  16. }
  17. else{
  18. $errorcolor_2 = "black";
  19. }
  20.  
  21. if(isset($contact))
  22. if($contact==""){
  23. $errorcolor_3 = "red";
  24. $error = "error";
  25. }
  26. else{
  27. $errorcolor_3 = "black";
  28. }
  29.  
  30. if(!$action){
  31. $action = "note";
  32. }
  33.  
  34. if($error=="error"||$action=="note"){
  35. ?>


i wywołujących ją poleceń:
  1. <font color="<? echo $errorcolor_1; ?>">
i
  1. <? if(isset($name)) echo "value='$name'";?>
wszystko działa bez zarzutu.

Jaki jest błąd w tej funkcji error? Dodam tylko, że kiedy wrzuci się ją do pliku send.php, formularz pojawia się, ale przy wysyłaniu (niezależnie od wypełnienia lub niewypełnienia pól) pojawia się strona send.php z tym samym błędem, tyle, że linijka błędu wypada na
Kod
?>
...

Może da się uzyskać podobny efekt (tzn. przy niewypełnieniu danych pól wyrazy "Name", "Comment" itp. zmieniają kolor na czerwony) w inny, mniej problematyczny sposób?

Z góry wielkie dzięki za pomoc.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 03:55