PHP формы пишет в TXT - PullRequest
       1

PHP формы пишет в TXT

0 голосов
/ 23 марта 2012

Я совершенно новичок в php. И были следующие уроки. Мне нужно выполнить создание формы, которая вызывает функцию php, которая принимает входные данные формы и записывает их в файл. Должно быть достаточно легко? Я пробовал это во многих отношениях, и это то, что я получил. Однако по какой-то причине он пишет, что работает три раза, то есть три записи вменяются, а затем все, что после третьей, игнорируется test.txt - это файл, в который я пишу.

<?php
   $email= $_POST['email'];
   $myFile = "test.txt";
   $fh = fopen($myFile, 'a') or die("can't open file");
   $stringData = "$email\n";
   fwrite($fh, $stringData);
   fclose($fh);
?>

Вот форма, которую я использую для использования php.

<div id="login-box">
    <form  name="form" method="post" action="<?php $_SERVER['PHP_SELF'];?>">
         <div class="text-field">
    <input name="email" id="email" type="text">
</div>
<input id="login" type="submit" value="Submit">
      </form>
      </div>

Ответы [ 5 ]

0 голосов
/ 24 марта 2012

Добавьте эти 2 строки вверху вашего PHP-кода

ini_set('display_errors',1);
error_reporting(E_ALL);

и увидите реальное сообщение об ошибке, не ваше глупое «не может открыть», но объяснение, что, безусловно, идет не так.
Если вы не можете понять, что это значит для себя, опубликуйте это здесь, точное и полное .

0 голосов
/ 24 марта 2012

Ваш код должен работать, но вы написали <?, а не <?php в атрибуте действия вашей формы.

0 голосов
/ 23 марта 2012

Может быть, вы отправляете форму 3 раза или нажимаете кнопку перезагрузки на панели браузера? Вы можете разместить свой HTML?

и попробуйте это:

<?php

   if($_POST['email'])
   {
      $email= $_POST['email'];
      $myFile = "test.txt";
      $fh = fopen($myFile, 'a') or die("can't open file");
      $stringData = "$email\n";
      fwrite($fh, $stringData);
      fclose($fh);
   }

?>
0 голосов
/ 23 марта 2012

Попробуйте использовать этот пример

<?php
$email= $_POST['email'];
$myFile = "test.txt";

// First, let's make sure that the file exists and is writable.
if (is_writable($myFile)) {

    // In our example we're opening $ myFile in the "append".
    if (!$handle = fopen($myFile, 'a')) {
        echo "Can't open ($myFile)";
        exit;
    }

    if (fwrite($handle, $email) === FALSE) {
        echo "Can't wtire to file ($myFile)";
        exit;
    }

    echo "OK. Content ($email) written to file ($myFile)";
    fclose($handle);

} else {
    echo "File $myFile not available for writing.";
}
?> 

Также вы можете просто отладить свой php-код, используя этот код:

echo <something_what_you_need>; die;

Возможно, ваш код вызывался несколько раз, и вы не видитеэто.

0 голосов
/ 23 марта 2012

Я проверил ваш код, и никаких проблем, о которых вы упоминаете, нет. Код вставляет более трех записей. Так что продолжайте ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...