Я искал высоко и низко в сети после решения моей проблемы. Надеюсь, вы, ребята, можете мне помочь. Я прочитал несколько сообщений о stackoverflow относительно.htaccess, но я еще не нашел ни одного из них, чтобы помочь.
На моем веб-сайте (во-первых, это процесс обучения), timeforyou.tk, у меня есть контактная форма (contact.html), которая направляет process.php (в той же папке), где она должна обрабатываться, - значения вынимаются а затем отправляется по электронной почте. Тем не менее, массив $ _REQUEST кажется пустым, и я подозреваю что-то с.htaccess. Мои способности в php очень низкие, и я не знаю, что писать в.htaccess.
Является ли.htaccess проблемой и как мне ее редактировать?
Code1 (contact.html):
<form id="formContact" action="process.php" method="post" enctype="text/plain">
<!--Get or Post-->
<ul>
<li><label>Company<br> <input type="text" name="company" id="company"></label></li>
<li><label>Name<br> <input type="text" name="name" id="name"></label></li>
<li><label>Email *<br> <input type="text" name="email" id="email"></label></li>
<li><label>Confirm email *<br> <input type="text" name="email_confirm" id="email_confirm" title="emails don't match, please try again"></label></li>
<li><label>Message *<br> <textarea name="feedback" id="feedback"></textarea></label></li>
<li style="text-align: right;"><input type="submit" value="Send message" name="submit1" id="submit"></li>
<li>* Mandatory fields</li>
<!--onfocus="this.value = ''-->
</ul>
</form>
Код 2 (process.php):
<?php
print_r($_REQUEST);
/*
if(isset($_REQUEST['submit'])) {
//To timeforyou
$company = $_POST['company']; //company name of author
$name = $_POST['name']; //name of author
$from = $_POST['email']; //email of author
$msgToAdmin = $_POST['feedback']; //message from author
$timeforyou = '[email protected]';
$subject = $_POST['company'];
(...)
}
*/
?>
Я пробовал разные вещи, а до print_r ($ _ REQUEST); просто отобразит Array(). Теперь, однако, даже это не происходит; вместо этого я просто перенаправляюсь на error404.000webhost.com/?
.htaccess:
# Do not remove this line, otherwise mod_rewrite rules will stop working
RewriteBase /
# supress php errors
php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off
# enable PHP error logging
php_flag log_errors on
php_value error_log /home/a3786788/public_html/logs/PHP_errors.log
# prevent access to PHP error log
<Files PHP_errors.log>
Order allow,deny
Deny from all
Satisfy All
</Files>
Я попытался получить журналы ошибок, следуя этому сайту, но он не работает (журнал не обновляется).
Пожалуйста, помогите, кто-то.
Я думаю, что это не ваш файл.htaccess. Удалите enformype = "text/plain" из вашей формы. PHP не справляется с этим.
PHP не обрабатывает этот текст enctype/plain.
Проверьте: https://bugs.php.net/bug.php?id=33741
Допустимыми значениями для enctype в теге являются:
применение/х-WWW-форм-urlencoded
многочастному/форм-данных,
Первый по умолчанию, вам даже не нужно записывать его. Второй, который вам нужен только при загрузке файлов.
Вам не нужен.htaccess для нормальной формы. Страница "error404.000webhost.com" выглядит как документ ошибки 404 по умолчанию. Например: http://www.timeforyou.tk/test1234.html Перенаправляет также на "error404.000webhost.com".
Может быть, у вас есть опечатка в имени файла? proccess.php? proccess.php.html?
http://www.timeforyou.tk/process.php → Переадресация на "error404.000webhost.com".
Удалите файл.htaccess. Возможно, RewriteBase "/" неверен.