Основная форма PHP не работает - PullRequest
0 голосов
/ 12 февраля 2011

Я новичок в PHP и пытаюсь сохранить ввод в текстовый файл, но действие POST ничего не делает:

<form method="POST" action="<?php $_SERVER["PHP_SELF"]; ?>">
Name: <input type="text" name="usersname"/><br/>
<input type="submit" value="Write" name="submitwrite"/>
</form>

и в том же файле вверху:

<?php
    // Check if the user submitted this form
if (isset($_POST["submitwrite"])) {
    // Open the file in write mode
    $handle = fopen("writetest.txt","a+"); 

    // If successful
    if ($handle) {
        // Write to that handle the username submitted in the form and the date
        fwrite($handle,$_POST["usersname"] . " - " . date("Y-m-d"));

        // Close the file
        fclose($handle);
    }
}
?>

Я нажимаю кнопку, и она не POST к себе .... как это исправить ??

ОБНОВЛЕНИЕ: Спасибо за ваши ответы .. Проблема была с разрешениями файла ... сервер не позволяет мне установить 777, только 755. С этим кодом не было ничего плохого. Я рад, что вы помогли мне обнаружить это !!

Ответы [ 6 ]

3 голосов
/ 12 февраля 2011

Вы забыли повторить действие.Но это не имеет значения, так как вы должны полностью опустить атрибут, если хотите отправить POST по тому же URL.

3 голосов
/ 12 февраля 2011

Что делает <?php $_SERVER["PHP_SELF"]; ?>?Он ничего не печатает, поэтому в вашей форме нет места для отправки.

Попробуйте использовать <?php echo $_SERVER["PHP_SELF"]; ?> или <?php print($_SERVER["PHP_SELF"]); ?>.


Также, еслине поможет, может быть, замена fopen("writetest.txt","a+"); на fopen("writetest.txt","w"); может помочь?

1 голос
/ 12 февраля 2011

Вы должны установить свои права на чтение / запись для пользователя и IUSR на «writetest.txt», если вы тестируете локально.

Шаги, чтобы исправить это:

  • Щелкните правой кнопкой мыши файл "writetest.txt"
  • Перейдите в Свойства.
  • Нажмите Безопасность.
  • Нажмите Редактировать.Выберите IUSR и USER
  • Установите флажок «Запись» для обоих пользователей.
  • Сохраните настройки.
1 голос
/ 12 февраля 2011

Я подозреваю, что <?php $_SERVER["PHP_SELF"]; ?> делает не то, что вы ожидаете.

Если я правильно напомнить, если вы можете избежать проблемы, удалив атрибут action, то форма по умолчанию будет отправлять на"себя" (тот же URL).

1 голос
/ 12 февраля 2011

Для меня ваш код работает нормально, но я думаю, что вы не работаете, потому что каталог не имеет разрешения на запись.

пробег chmod 0777 diretory_name

0 голосов
/ 12 февраля 2011

Вы пропустили эхо в операторе php. Однако форма все еще должна публиковать для себя.

Попытка:

if (isset($_POST)) {
    var_dump($_POST);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...