PHP открывают другую веб-страницу с данными POST

Этот код

int a[][] = new int[mRow][nColumn];

выдача осуществляется вне какого-либо метода. В то время, когда это делается, значения mRow и nColumn равны нулю

Переместить этот код в метод после того, как getInput вернул

9
задан thornate 25 November 2008 в 11:00
поделиться

8 ответов

Действительно необходимо назвать другую страницу после того, как обработка будет сделана? Я, вероятно, сделал бы следующее:

<form method="post" action="display.php">
...
</form>

display.php:

if ($_POST) {
    require_once(process.php);
    process($_POST);
    display_results;
}

с process.php, содержащим код, необходимый для обработки запроса сообщения.

С другой стороны, Вы могли использовать что-то как ВИХРЕВАЯ библиотека для передачи результатов обработки к странице, указанной собой. Не знайте, действительно ли это, что Вы после все же.

7
ответ дан 4 December 2019 в 08:53
поделиться

Вы могли использовать JavaScript в качестве грязного обходного решения:

<form id="redirect_form" method="post" action="http://someserver.com/somepage.php">
    <input type="hidden" name="field_1" value="<?php echo htmlentities($value_1); ?>">
    <input type="hidden" name="field_2" value="<?php echo htmlentities($value_2); ?>">
    <input type="hidden" name="field_3" value="<?php echo htmlentities($value_3); ?>">
</form>
<script type="text/javascript">
    document.getElementById('redirect_form').submit();
</script>

(сценарий должен быть ниже формы),

3
ответ дан 4 December 2019 в 08:53
поделиться

Нет никакого способа перенаправить браузер пользователя к arbitary странице и не отправил запрос POST. Это было бы немного угрозой безопасности, где любая ссылка могла заставить Вас делать любое представление формы на произвольный сайт без Вас имеющий любой вид подсказки о том, что собиралось произойти.

Короче говоря, это не возможно

0
ответ дан 4 December 2019 в 08:53
поделиться

Вы могли хранить те данные на сессии, например, в первом файле, который обрабатывает сообщение

session_start();
$_SESSION['formdata'] = $_POST; //or whatever

затем можно считать его на следующей странице как

session_start();
print_r($_SESSION['formdata']);

или Вы могли передать его через, ДОБЕРИТЕСЬ: (но согласно комментариям это - плохая идея),

header('Location: page.php?' . http_build_query($_POST)); 

Если Вы делаете, которые удостоверяются, что Вы делаете дополнительную обработку/проверку на page.php, поскольку злонамеренный пользователь мог заменить переменные. также Вам, возможно, не понадобится целое сообщение, переданное к следующей странице

Править

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

17
ответ дан 4 December 2019 в 08:53
поделиться

AFAIK это обычно делается как двухступенчатый процесс:

  1. На form.php, POST данные к сценарию process.php
  2. process.php сценарий обрабатывает данные, но никогда ничего не производит самого, это всегда называет заголовок ("Местоположение: asdasd") для перенаправления к success.php или failure.php странице (если применимо)
0
ответ дан 4 December 2019 в 08:53
поделиться

Сделайте все это в одном сценарии и просто произведите другой HTML для результатов.

<?php  if($doingForm)  {   ?>

html for form here

<?php } else { ?>

html for results

<? } ?>
0
ответ дан 4 December 2019 в 08:53
поделиться

Эта проблема досаждала мне в течение некоторого времени. Мой пользовательский CMS делает некоторую довольно сложную обработку, загрузку и управление, и поэтому иногда ouputs довольно долгая ошибка и информационные сообщения, которые не подходят для преобразования для ПОЛУЧЕНИЯ данных, и я всегда хотел избежать, чтобы проблема перезагрузки на данных ВСТАВИЛА, но еще не нашла верное решение.

Я верю корректному способу пойти об этом, должен создать массивы сообщения для каждого возможного состояния - каждое сообщение или ошибка, которую Вы могли хотеть отобразить, и затем только необходимо отправить ошибку/номера сообщения, которые намного легче обработать, чем длинные строки данных, но это - что-то, от чего я всегда уклонялся лично, поскольку я нахожу это немного утомительным и громоздким. Откровенно говоря, это - вероятно, просто лень с моей стороны.

Мне вполне нравится решение для устройства хранения данных Переменной сеанса, но это поднимает вопрос того, как Вы удостоверяетесь, что данные СЕССИИ правильно уничтожаются? Пока Вы удостоверяетесь, что только отправляете информацию (сообщения/ошибки) и не данные, которые должны храниться (и таким образом потенциально чувствительный), это должно быть преодолимой проблемой.

0
ответ дан 4 December 2019 в 08:53
поделиться

Я надеюсь, что получил Ваше qestion право. Вы могли бы попробовать это:

  1. Скорректируйте свою форму для сходства с этим:

метод формы = действие "POST" = "process_data.php"

2. Затем Вы создаете файл process_data.php, который удивительно обрабатывает данные.
И в этом файле Вы используете заголовок:
Например:

$head = sprintf ("page.php? data1 = % d? data2 = % d", $data1, $data2);
заголовок ($head);

Я надеюсь, что мог помочь.

-3
ответ дан 4 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: