PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 14
Snowy Отправлено: 28 Ноября, 2017 - 23:26:06 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy, в WP наверняка есть переменная, в которой хранится домашний адрес веб сервера. Вместо неё для отдельного скрипта можно временно сгенерировать имя веб сервера с помощью переменных окружения
PHP:
скопировать код в буфер обмена
  1. $home = 'http://' . $_SERVER['SERVER_NAME'] . '/';
И тогда в атрибуте формы надо будет указать переменную и имя файла. Вместе будет иметь следующий вид:
PHP:
скопировать код в буфер обмена
  1. <?PHP $home = 'http://' . $_SERVER['SERVER_NAME'] . '/'; ?>
  2. <form action="<?= $home ?>result.php" method="POST">


Спасибо огромное! Работает как вы написали. Теперь у меня впереди борьба с обработкой результатов и организацией рассылок по этим результатам Улыбка Наверное, еще вернусь с новой темой сюда Улыбка
Snowy Отправлено: 28 Ноября, 2017 - 23:01:31 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy пишет:
Строитель пишет:
Snowy, попробуйте код этих двух файлов (html и php) объединить в один файл, и удалить атрибут action="result.php" - после нажатия на кнопку браузер будет перенаправлен на эту же страницу.


У меня тогда форма из php просто внизу страницы к тесту прицепляется..(под кнопкой РЕЗУЛЬТАТ) и после заполнения полей она опять внизу, с заполненными значениями
http://joxi[dot]ru/gmvnxM1UxDEZ3m
http://joxi.ru/D2PJwNgcdyoaxr
Ну это понятно, и на данном этапе не столь важно. Скрипт перестал бросать ошибку 404 в браузер?


Да.

Знаете, что смешно? Работает вот так
<form action="http://vsetut/result.php" method="POST" target="">
Но блин, прямая ссылка используется для того, чтобы использовать скрипт из другого домена. И это хардкод, а я точно знаю, что они будут переезжать с этого адреса на другой и это тогда не будет работать
Хотелось бы понять, что не так с <form action="result.php" method="POST" target=""> Почему идет не на "http://vsetut/result.php" а на "http://vsetut/test/result.php"
Snowy Отправлено: 28 Ноября, 2017 - 22:49:09 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy, попробуйте код этих двух файлов (html и php) объединить в один файл, и удалить атрибут action="result.php" - после нажатия на кнопку браузер будет перенаправлен на эту же страницу.


У меня тогда форма из php просто внизу страницы к тесту прицепляется..(под кнопкой РЕЗУЛЬТАТ) и после заполнения полей она опять внизу, с заполненными значениями
http://joxi[dot]ru/gmvnxM1UxDEZ3m
http://joxi[dot]ru/D2PJwNgcdyoaxr
Snowy Отправлено: 28 Ноября, 2017 - 22:32:04 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy я ваш код скопировал целиком в один файл - при нажатии на кнопку нет никаких 404-х ошибок. Есть только всплывающие html-уведомления о не заполненных полях, и несколько Notic-ов, т.к. переменные у вас в пхп не объявлены. Может быть ваш сервер так строго на них реагирует -- я не знаю.

Попробуйте вообще какой либо пхп файл на вашем сервере запустить, что он вернёт в браузер? Если другие пхп файлы корректно работают, тогда закомментируйте весь этот проблемный код, а после этого по-блочно его раскомментируйте и проверяйте в браузере результат - таким образом вы сможете локализовать проблемный блок кода.

Скрин вашего кода в моём браузере:
(Добавление)
Snowy а попробуйте заменить action "result.php" на action="result.php", чтобы форма приняла вид:

<form action="result.php" method="POST" target="_blank">
и далее как есть


Запускала php файл info.php с 1 строкой <?php phpinfo(); ?> - выводит все о php на хостинге.. Когда в браузере пишу vsetut/info.php . Да и мой скрипт выполняется, если руками вбиваю vsetut/result.php
action="result.php" сделала, 404 и адрес vsetut/test/info.php вместо vsetut/info.php
Snowy Отправлено: 28 Ноября, 2017 - 21:36:04 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy опубликуйте ваш код, пожалуйста.

Первый файл html
Спойлер (Отобразить)



Второй result.php
Спойлер (Отобразить)

(Добавление)
Строитель пишет:
Snowy опубликуйте ваш код, пожалуйста.


На сервере папка php/data .Из темы туда перенесла html и php и первоначальная проблема 404 . Пути прописывала все- начиная от корневого каталога , убирая постеменно папки, оставляя только result.php - 404 и все тут..
Я в отчаянии
(Добавление)
Т.е вопрос у меня изначальный. Если я просто в браузере ввожу vsetut/result.php - скрипт срабатывает. Если я открываю vsetut/test с формой, которая должна вызвать скрипт, почему-то скрипт она ищет по адресу vsetut/test/result.php/ Но он-то по адресу vsetut/result.php!! Почему он как бы цепляет к текущей странице result.php ?

PS Я могла бы в скайп экран расшарить, если это корректно и удобно ..
Snowy Отправлено: 28 Ноября, 2017 - 19:36:19 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy ну, лучше прислушайтесь к этому совету:
Спойлер (Отобразить)

Я вынесла это из Вордпресс- просто форму обернула в html , 2 файлика на компе -
html и php. То же самое, просто перегружается страница с тестом. Не в Вордпресе дело
Snowy Отправлено: 28 Ноября, 2017 - 16:10:08 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy пишет:
Если как вы сказали- на той же странице тест перегружает пустой, ну т.е грузится заново страница vsetut/test
А вы прописали в вашем файле код :

<?php exit('Stop');
// Выводим HTML-заголовки:


да конечно
(Добавление)
Snowy пишет:
Строитель пишет:
Snowy пишет:
Если как вы сказали- на той же странице тест перегружает пустой, ну т.е грузится заново страница vsetut/test
А вы прописали в вашем файле код :

<?php exit('Stop');
// Выводим HTML-заголовки:


да конечно


Я уже ничего не понимаю, где-то в кеше что ли сайт..уже работает (перегружает страницу) и с
<form action "result.php" method="POST" target="">
<form action "test/result.php" method="POST" target="">
<form action "/test/result.php" method="POST" target="">
Snowy Отправлено: 28 Ноября, 2017 - 15:59:12 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy пишет:
и еще в форме так написала <form action "wp-content/themes/florence/result.php" method="POST" target="_blank">
Не нужно. Надо оставить так action="/test/result.php" и выполнить совет из предыдущего моего поста.

Но вообще, всё это не правильно. Получается, что вы в папку с темами кладёте посторонний файл. Надо сперва разобраться, где в WP подходящая для этого директория, и уже в ней создавать ваши файлы (а не в папках с темами)
(Добавление)
Snowy пишет:
Если подскажете, буду благодарна
Я конкретно с этим движком не работал, но все они написаны (должны быть, ко крайней мере) по одним и тем же правилам.


Если как вы сказали- на той же странице тест перегружает пустой, ну т.е грузится заново страница vsetut/test
Snowy Отправлено: 28 Ноября, 2017 - 15:48:02 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy, ну там наверное буферизация не позволяет видеть в браузере данные из файла. Давайте сперва убедимся, что мы действительно при клике на кнопку формы попадаем в обработчик. Для этого напишите в вашем файле сразу же после открывающего тега <?php эту строку: exit('Stop'); Всё вместе будет выглядеть так:

<?php exit('Stop');
// Выводим HTML-заголовки:
.. далее код вашего файла


Добавила, и еще в форме так написала <form action "wp-content/themes/florence/result.php" method="POST" target="_blank">

target="_blank" - чтобы открывал для результата новую страницу. Открывает просто новую страницу с незаполненным тестом

Почему в папку с темами? Первый раз взялась за создание сайта, думала по шаблону все сделаю, фоточки и текст, а оказался нужен тест еще ..вот и мучаюсь Улыбка Я просто не знаю, куда эти файлы правильно определить. Если подскажете, буду благодарна
Snowy Отправлено: 28 Ноября, 2017 - 15:37:59 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy пишет:

Т.е мне прописывать что-то типа action="/vsetut/wp-content/themes/florence/result.php" ?
Не уверен, но попробуйте добавить слеш: action="/test/result.php"


Сработал тот адрес, 404 нет, но и результата нет - просто на ту же стр с тестом и сбрасывает все поля...
Snowy Отправлено: 28 Ноября, 2017 - 15:29:53 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy ну тогда попробуйте в форме <form action="result.php" method="POST" target=""> прописать путь к обработчику result.php от корневого каталога вашего сайта. Например, корневая папка vsetut, тогда путь будет примерно таким : action="test/result.php".

И ещё проверьте, есть ли вообще доступ к этому файлу по ссылке httр://vsetut/test/result.php (если конечно в этой директории ваш файл)


Попробовала

1) Если пишу action="test/result.php"
Пытается открыть старницу
http://vsetut/test/test/result.php - 404 ошибка

2) Мой файл в той же папке, что и рисующий форму, рядышком они , в папке темы Вордпресс, вот картинка

http://joxi[dot]ru/V2V4w06i0Re0xr
Взяла на хостинге в Файловом менеджере абсолютный путь, так и сяк его крутила, в результате сработал такой адрес :

http://vsetut/wp-content/themes/[dot][dot][dot]rence/result.php

Но походу с кодировкой проблемы...

http://joxi[dot]ru/VrwXkGyTKDz8dm

Т.е мне прописывать что-то типа action="/vsetut/wp-content/themes/florence/result.php" ?
UPD - когда так делаю, просто возвращает на ту же страницу с тестом, сбрасывая все поля..
Snowy Отправлено: 28 Ноября, 2017 - 14:57:02 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy а в result.php есть какие либо редиректы? Обычно, после обработки post-запроса выполняется редирект на ту же страницу, с помощью функции header('Location: ТУТ_АДРЕС'); -- Есть ли у вас что-то подобное?


У меня только echo там пока .. вот

<?php
// Выводим HTML-заголовки:
echo '<html>';
echo '<head>';
echo '<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">';
echo '<title>Test Form </title>';
echo '</head>';
echo '<body>';
echo '<h3>Тестовая форма</h3>';
echo "<p>Имя: <b>".$_POST['uname']."</b></p>";
echo "<p>Возраст: <b>".$_POST['age']."</b></p>";

echo "<p>Пол: </p>";
if ($_POST['gender']==="M") echo "<b>Мужской</b>";
if ($_POST['gender']==="W") echo "<b>Женский</b>";
echo '</p>';

echo '<p>Насколько Вы удовлетворены своей жизнью в текущем периоде? От 1 до 10: </p>';
echo "<p><b>".$_POST['satisfaction']."</b></p>";
echo '<hr size="1">';




echo '</body>';
echo '</html>';
?>
Snowy Отправлено: 28 Ноября, 2017 - 14:46:09 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Строитель пишет:
Snowy пишет:
Туда же положила файл resul.php
Snowy пишет:
<form action="result.php" method="POST" target="">
Проверьте для начала соответствие имени файла в каталоге, и в html-форме. Тут, как видим, они не совпадают.


Описка , исправила в посте. С названиями все в порядке
Snowy Отправлено: 28 Ноября, 2017 - 14:17:02 • Тема: обработка теста • Форум: Вопросы новичков

Ответов: 27
Просмотров: 757
Добрый день!
Есть файл test_appearence_table.php, который рисует форму для теста, лежит в каталоге темы в wordpress. Рисует на, допустим, странице vsetut/test. Туда же положила файл result.php который должен обрабатывать ответы(пока что просто вывести значение некоторых заполненных полей на страничку). В test_appearence_table.php прописала форму так:

<form action="result.php" method="POST" target="">

При нажатии на кнопку результата выдает ошибку 404. Причем пытается открыть страницу vsetut/test/result.php
Что я не так прописываю? Может быть путь не так?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB