Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] - jak zablokować czyszczenie pól tekstowych ?
Forum PHP.pl > Forum > Przedszkole
derbich
Witam;
Od jakiegoś czasu usiłuję napisać skrypt do wysyłania maili ze strony. Skrypt sprawdza, czy wszystkie pola są wypełnione i jeśli tak to wysyła wiadomość; jeśli któreś z pól nie zostało wypełnione zwraca wiadomość, że należy wypełnić wszystkie pola. Problem polega na tym, że przy okazji zwrotu informacji czyści wszystkie pola.. Czy możecie powiedzieć mi jak rozwiązać ten problem? Oto kod:
  1. <?php
  2.  
  3. if ($_POST['bt'] == "submit") {
  4. if (($_POST['email'] != "") AND ($_POST['tytul'] != "") AND ($_POST['tresc'] != "")) {
  5. $send = mail("mail@mail.org",$_POST['tytul'],$_POST['tresc'],"From: mail webside <".$_POST['email'].">");
  6. if ($send)
  7. header("Location: sent.html");
  8. else
  9. $message = "<font size='2px' color='ff4500' face='arial'> Server error, message did not sent. Please try again.</font>";
  10. } else
  11. $message = "<font size='2px' color='ff4500' face='arial'>All fields required, please check and try again.</font>";
  12. }
  13.  
  14. ?>

  1. <meta name="generator" content="Bluefish 2.0.0" >
  2. <meta name="author" content="" >
  3. <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  4. <meta name="Robots" content="noindex">
  5. <link rel="Shortcut icon" href="../graph/icon.png">
  6. <style type="text/css">
  7. <!--
  8. td {
  9. font-size: 11px; color: #ff7d4d; font-family: arial;
  10. }
  11. span {
  12. font-size: 8px; color: #ff7d4d; font-family: arial;
  13. }
  14. -->
  15. </head>
  16. <br><br>
  17. <table align="center" border="0">
  18. <td height="22px"><sup>*</sup>E-mail: </td>
  19. <td colspan="1" rowspan="3" valign="top">
  20. <form action="" method="post">
  21. <input type="text" name="email"><br>
  22. <input type="text" name="tytul"><br>
  23. <textarea name="tresc" cols="65" rows="14"></textarea><br>
  24. <sup>*<span>Required</span></sup>
  25. <div align="right"><input type="submit" name="bt" value="submit"></div>
  26. </form>
  27. <div align="center"><?php echo $message ?></div>
  28. </td>
  29. </tr>
  30. <tr>
  31. <td height="22px"><sup>*</sup>Title:</td>
  32.  
  33. </tr>
  34. <tr>
  35.  
  36. <td height="210px" valign="top"><div style="position: relative; left: 0px; top: 55px;"><sup>*</sup>Mesage:</div> </td>
  37. </tr>
  38. </body>
Kużdo
Po prostu w formularzu w miejsca value="" wstaw zmienne pobierane z wysłanego formularza, czyli value="<?php echo $zmienna; ?>"
mmica
Hey ;]
Ja na Twoim miejscu skorzystałbym z mechanizmu sesji PHP (tu możesz o tym coś zobaczyć), tzn. dane od użytkownika zapisałbym do zmiennych sesyjnych i wtedy mógłbym je znów umieścić w polu formularza. Od biedy możesz też skorzystać z ciasteczek, ale najlepszym (moim zdaniem) rozwiązaniem byłoby sprawdzanie poprawności pól po stronie klienta (poprzez JavaScript), a w skrypcie sprawdzić tylko czy nam czegoś nie podrzucił (kwestie bezpieczeństwa [xss, sql injection etc.]) - takie moje spostrzeżenia happy.gif.

Jestem ciekaw jakie inne pomysły mają forumowicze.

Pozdrawiam,
mmica


//edit
Albo tak jak napisał Kużdo.. Eh, ta moja miopia. Podzieliłeś kod na dwie części i myślałem, że musisz przekazywać dane pomiędzy skryptami dry.gif. My fault..
derbich
Dziękuję, proste okazało się jak.. smile.gif
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.