PHP не перехватывает данные из контактной формы (.htaccess?)

0

Я искал высоко и низко в сети после решения моей проблемы. Надеюсь, вы, ребята, можете мне помочь. Я прочитал несколько сообщений о 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>

Я попытался получить журналы ошибок, следуя этому сайту, но он не работает (журнал не обновляется).

Пожалуйста, помогите, кто-то.

  • 0
    убедитесь, что у process.php есть права на выполнение
Теги:
forms
.htaccess
mod-rewrite

3 ответа

0
Лучший ответ

Я думаю, что это не ваш файл.htaccess. Удалите enformype = "text/plain" из вашей формы. PHP не справляется с этим.

  • 0
    Удаление enctype = "text / plain" сделало свое дело! Мой .htaccess теперь выглядит следующим образом (практически без изменений): # Не удаляйте эту строку, иначе правила mod_rewrite перестанут работать с RewriteBase /. Другими словами, .htaccess не был проблемой; enctype = "text / plain" был. Спасибо!!!
0

PHP не обрабатывает этот текст enctype/plain.

Проверьте: https://bugs.php.net/bug.php?id=33741

Допустимыми значениями для enctype в теге являются:

применение/х-WWW-форм-urlencoded

многочастному/форм-данных,

Первый по умолчанию, вам даже не нужно записывать его. Второй, который вам нужен только при загрузке файлов.

  • 0
    Это сработало! Я оба удалил .htaccess и "enctype text / plain". Я проверю, кто из них сделал работу, прежде чем выбрать, какой ответ принять. Спасибо!!!
0

Вам не нужен.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 "/" неверен.

  • 0
    Это сработало! Я оба удалил .htaccess и "enctype text / plain". Я проверю, кто из них сделал работу, прежде чем выбрать, какой ответ принять. Спасибо!!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню