За последние 24 часа нас посетили 19173 программиста и 1644 робота. Сейчас ищут 860 программистов ...

Помогите дописать скрипт!!

Тема в разделе "PHP для новичков", создана пользователем barmalei, 28 мар 2008.

  1. barmalei

    barmalei Активный пользователь

    С нами с:
    28 мар 2008
    Сообщения:
    2
    Симпатии:
    0
    Здравствуйте. НА сайте есть чёта типа анкеты, куда пользователи будут вводить самую разную информацию (типа год рождения, город, страна, интересы и т.п.). как сделать, чтобы вся введённая информация сохранялась в отдельный файл test.txt, дописывалась туда и не лепилась в кучу, а разделялась между собой хотя бы абзацами или пробелами. Спасибо. Вот форма будет типа такой (в смвсле разных полей)
    Код (Text):
    1. <form action = "save.php" method = "post">
    2.  
    3. <b>Please take a moment to tell us what you think about our site:</b><p>
    4.  
    5. <b>Name:</b><br>
    6.  
    7. <input type="text" name="name" size="15" maxlength="25" value=""><br>
    8.  
    9. <b>Email:</b><br>
    10.  
    11. <input type="text" name="email" size="15" maxlength="45" value=""><br>
    12.  
    13. <b>How frequently do you visit our site?:</b><br>
    14.  
    15. <select name="frequency">
    16.  
    17. <option value="">Site frequency:
    18.  
    19. <option value="0">This is my first time
    20.  
    21. <option value="l">&lt; 1 time a month
    22.  
    23. <option value="2">Roughly once a month
    24.  
    25. <option value="3">Several times a week
    26.  
    27. <option value="4">Every day
    28.  
    29. <option va1ue-"5">I'm addicted
    30.  
    31. </select><br>
    32.  
    33. <b>I frequently purchase the following products from our site:</b><br>
    34.  
    35. <input type="checkbox" name="software" value="software">Software<br>
    36.  
    37. <input type="checkbox" name="cookware" value="cookware">Cookware<br>
    38.  
    39. <input type="checkbox" name="hats" value="hats">Chef's Hats<br>
    40.  
    41. <b>0ur site's greatest asset is:</b><br>
    42.  
    43. <input type="radio" name="asset" value="products">Product selection<br>
    44.  
    45. <input type="radio" name="asset" value="design">Cool design<br>
    46.  
    47. <input type="radio" name="asset" value="service">Customer Service<br>
    48.  
    49. <b>Comments:</b><br>
    50.  
    51. <textarea name="comments" rows="3" cols="40"></textarea><br>
    52.  
    53. <input type="submit" value="Submit!">
    54.  
    55. </form>


    А вот скрипт save.php Нужно, чтобы именно сохраняло все данные выбранные, написанные и записывало в файл. спасибо.

    Код (Text):
    1. <?
    2. $filename = 'test.txt';
    3. $text = $_POST['mytext'];
    4.  
    5. if (is_writable($filename)) {
    6.  
    7. /*
    8. в fopen параметр "a" означает что файл будет дописываться
    9. */
    10.  
    11. if (!$handle = fopen($filename, 'a')) {
    12. echo "не могу открыть файл ($filename)";
    13. exit;
    14. }
    15.  
    16. if (fwrite($handle, $text) === FALSE) {
    17. echo "не могу записать в файл ($filename)";
    18. exit;
    19. }
    20.  
    21. echo "Успешно записано ($text) в файл ($filename)";
    22.  
    23. fclose($handle);
    24.  
    25. } else {
    26. echo "в файл не можно записывать";
    27. }
    28.  
    29.  
    30. ?>
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?php
    2. $filename = 'test.txt';
    3.  
    4. if (is_writable($filename)) {
    5.  
    6. /*
    7. в fopen параметр "a" означает что файл будет дописываться
    8. */
    9.  
    10. if (!$handle = fopen($filename, 'a')) {
    11. echo "не могу открыть файл ($filename)";
    12. }
    13.  
    14. /*
    15. Смотрим, пришло ли что
    16. */
    17.  
    18. if(!empty($_POST))
    19. {
    20.     foreach ($_POST as $key=>$value)
    21.     {
    22.         $text.="$key => $value\r\n";
    23.     }
    24.      $text.="\r\n=============\r\n";
    25.  
    26. if (fwrite($handle, $text) === FALSE) {
    27. echo "не могу записать в файл ($filename)";
    28. }
    29.  
    30. echo "Успешно записано ($text) в файл ($filename)";
    31.  
    32. fclose($handle);
    33.  
    34. } else {
    35. Форма пришла пустой";
    36. }
    37.  
    38.  
    39. ?>
    Enjoy!
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    А вообще скрипт плохо отлежен... Например, файл не будет writable если он не создан (так что нужно сначала его окрыть fopen).
    Должно быть так:
    PHP:
    1.  <?php
    2.  $filename = 'test.txt';
    3.  
    4.  /*
    5.  в fopen параметр "a" означает что файл будет дописываться
    6.  */
    7.  
    8.  if (!$handle = fopen($filename, 'a')) {
    9.  echo "не могу открыть файл ($filename)";
    10.  exit;
    11.  }
    12.  
    13.  if(is_writable($filename)) {
    14.    
    15.  /*
    16.  Смотрим, пришло ли что
    17.  */
    18.  
    19.      foreach ($_POST as $key=>$value)
    20.      {
    21.         if(empty($value)) // Проверка на заполненность полей
    22.         {
    23.             die("Не все поля заполнены");
    24.         }
    25.         $text.="$key => $value\r\n";
    26.      }
    27.      $text.="\r\n=============\r\n";
    28.  
    29.  if (fwrite($handle, $text) === FALSE) {
    30.  echo "не могу записать в файл ($filename)";
    31.  exit;
    32.  }
    33.  
    34.  echo "Успешно записано (<pre>$text</pre>) в файл ($filename)";
    35.  
    36.  fclose($handle);
    37.  
    38.  }
    39.  else
    40.  {
    41.     die ("Файл записать низя!");
    42.  }
    43.  
    44. ?>
     
  4. barmalei

    barmalei Активный пользователь

    С нами с:
    28 мар 2008
    Сообщения:
    2
    Симпатии:
    0
    не срабатывает что-то:(( вот я пробовал по той форме, что код оставлял:(( в чём дело?


    а, сцукца, сорри. мои кривые руки просто немножко не так сделали. СПАСИБО ОГРОМНОЕ!!! АА! СПАСИБО! Оставь контакт, хотя аську я скопировал. Отблагодарю как смогу:)
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    barmalei
    Попробуйте второй скрипт.
    Вот правильная форма:
    HTML:
    1. <form action="save.php" method = "post">
    2.  
    3. <b>Please take a moment to tell us what you think about our site:</b><p>
    4.  
    5. <b>Name:</b><br>
    6.  
    7. <input type="text" name="name" size="15" maxlength="25" value=""><br>
    8.  
    9. <b>Email:</b><br>
    10.  
    11. <input type="text" name="email" size="15" maxlength="45" value=""><br>
    12.  
    13. <b>How frequently do you visit our site?:</b><br>
    14.  
    15. <select name="frequency">
    16.  
    17. <option value="1" disabled>Site frequency:
    18.  
    19. <option value="2">This is my first time
    20.  
    21. <option value="3">&lt; 1 time a month
    22.  
    23. <option value="4">Roughly once a month
    24.  
    25. <option value="5">Several times a week
    26.  
    27. <option value="6">Every day
    28.  
    29. <option va1ue-"7">I'm addicted
    30.  
    31. </select><br>
    32.  
    33. <b>I frequently purchase the following products from our site:</b><br>
    34.  
    35. <input type="checkbox" name="software" value="software">Software<br>
    36.  
    37. <input type="checkbox" name="cookware" value="cookware">Cookware<br>
    38.  
    39. <input type="checkbox" name="hats" value="hats">Chef's Hats<br>
    40.  
    41. <b>0ur site's greatest asset is:</b><br>
    42.  
    43. <input type="radio" name="asset" value="products">Product selection<br>
    44.  
    45. <input type="radio" name="asset" value="design">Cool design<br>
    46.  
    47. <input type="radio" name="asset" value="service">Customer Service<br>
    48.  
    49. <b>Comments:</b><br>
    50.  
    51. <textarea name="comments" rows="3" cols="40"></textarea><br>
    52.  
    53. <input type="submit" value="Submit!">
    54.  
    55. </form>
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    barmalei
    Незачто :) Контакт со мной держать лучше всего по асе.