Действие формы HTML идет не туда, не отправляет переменные в нужный файл - PullRequest
0 голосов
/ 04 ноября 2011

так что я боролся с этим в течение нескольких дней, и я просто не могу заставить его работать.Всякий раз, когда я нажимаю кнопку отправки, браузер должен отправлять переменные записи в write.php, но вместо этого он просто перенаправляет обратно на домашнюю страницу веб-сайта или в корень документа.Это должно быть очень, очень просто, и я делал это раньше, но теперь это не работает для меня.Я хочу знать, является ли это проблемой с настройкой моего веб-сервера или PHP, или просто глупой ошибкой с моей стороны.Это просто простая HTML-форма, не очень особенная, поэтому вот сама форма в index.php:

<p style="font-size:13px">
<?php
$rp = fopen('mainlog.txt', 'r');
while(!feof($rp))
{
$read = fgets($rp);
echo($read).('<br/>');
}
fclose($rp);
?>
</p>

<form action="write.php" method="post">
Name: <input type="text" name="user" /><br/>
Changes:<br/>
<textarea cols="70" rows="8" name="change" style="background-color:#555;color:#ccc;font-family:verdana,arial,helvetica,sans-serif;font-size:13px"></textarea><br/>
<input type="submit" value="Add Entry"/>
</form>

А вот куда ее отправлять, в write.php:

<?php
$fp = fopen('mainlog.txt', 'a');
$wr1 = $_POST['change'];
#$my_t = getdate(date("g"));
date_default_timezone_set("America/New_York");
$date = date("n").('/').date("d").('/').date("Y").(', ').date("g").(':').date("i").(':').date("s");
$who = $_POST['user'];
$write = $date.(' by ').$who.('
').$wr1.('
');
fwrite($fp, $write);
fclose($fp);

header('Location: http://www.zennixstudios.com/first/chlog/');
?>

Я пробовал это как на своем выделенном сервере Apache 2.2 с PHP 5 на FreeBSD8.2, так и на XAMPP для Windows, с одинаковыми результатами.У меня есть подозрение, что он может иметь какое-то отношение к PHP, в частности к PHP include (), потому что у меня есть несколько таких на этой странице, и когда я помещаю это на компьютер друга с XAMPP, но без включенных файлов, включить() просто выводит ошибки на экран, но форма HTML неожиданно работает нормально.Итак, есть ли известные конфликты с формами HTML и определенными функциями PHP?

Другие примечания: Код, показанный выше для index.php, находится внутри div главной страницы, но если вы хотите весь исходный код страницы, просто спросите.Я почти уверен, что ошибки нет в write.php, потому что я ЗНАЮ, что браузер никогда ничего не отправляет на него, потому что он хотя бы поместил дату в mainlog.txt.Если вы хотите увидеть, как это выглядит в контексте, перейдите на http://www.zennixstudios.com/first/chlog/

Спасибо, Хаос

1 Ответ

2 голосов
/ 04 ноября 2011

Вот ваша проблема:

<table align="right"><tr><td align="right"><form action="/" method="post">Username: <input action="login.php" type="text" name="uname"/><br/>Password: <input type="password" name="passwd"/><br/><input type="submit" value="Login" align="right"/></td></tr></table>

Вы никогда не закрывали форму в заголовке для имени пользователя и пароля, поэтому ваш <form action="/" method="post"> используется практически для всей страницы, а действие write.php формы игнорируется, потому что форма уже технически открыть. Вам нужно будет закрыть форму в заголовке, чтобы остальная часть страницы работала правильно.

Повторюсь: ничего не перенаправлено, вы фактически отправляете все данные из обеих «форм» в местоположение /, как указано.

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