Как использовать метод Post без формы - PullRequest
4 голосов
/ 13 декабря 2010

Я такой человек, который тратит больше времени на поиск ошибок в веб-проектах и ​​их исправление, но у меня все еще остается один вопрос об использовании методов GET и POST

Подводя итог, я часто использую GETметод для запросов, которые могут исходить из ссылок или простых кнопок, например:

<a href="example.php?n=2030004">Click me</a>

и для форм (регистрация, логин или комментарий) я использую метод post.но вопрос в следующем:

иногда (например, многоэтапная регистрация), возможно, мне потребуется передать информацию, собранную из формы на странице 1, на страницу 2 (где пользователь может найти, например, капчу),для того, чтобы отправить их в базу данных, если проверочный код является Окей.Но вопрос в том, как передать эту информацию на следующую страницу методом POST, не используя скрытую форму?Нужно ли заново создавать метод POST с нуля с помощью сокета?

спасибо

Ответы [ 4 ]

6 голосов
/ 13 декабря 2010

Вы можете использовать JavaScript ( jQuery ):

Сначала вам нужно загрузить jQuery (используя Google в качестве хоста или вы загрузите его):

<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.js"></script>

Тогда ...

    <script type="text/javascript">
    $(document).ready(function() {
         $('#Link').click(function() {
              $.post("example.php", { n: "203000"} );
         });
    });
    </script>

<a id="Link" href="#">Click me</a>

Редактировать

после этого сохраните его в SESSION в example.php

$ _SESSION['N'] = (int) $_POST['n'];

Когда это значение будет храниться на стороне сервера. И привязан к сеансу клиента, пока он не закроет браузер или пока он не установит время для этого сеанса на стороне сервера

Edit2 : Есть также другая возможность опубликовать запрос, да .. Но мне сам этот метод не нравится ... И здесь используется форма, которую ОП не хотел.

<form name="myform" action="example.php" method="POST">
    <input type="hidden" name="n" value="203000">
       <a id="Link" onclick="document.myform.submit()" href="#">Click me</a>
</form>
3 голосов
/ 13 декабря 2010

Используйте сеансы для хранения данных, пока вы не отправите их: http://de.php.net/manual/en/intro.session.php. Использование сеансов имеет большое преимущество, после того как вы проверили данные, вы можете сохранить их.

Всегда помните, что пользователи могут манипулировать POST-запросами!

1 голос
/ 13 декабря 2010

Если проблема заключается в передаче информации между страницами, как в многошаговой форме, вам следует использовать сессию (если вы используете PHP).Кстати, для отправки запроса POST без формы вам нужно использовать CURL, как в этом примере

0 голосов
/ 13 декабря 2010

Извините, если я вас не правильно понимаю, но из того, что я читаю, вы хотите получить доступ к данным формы, введенным на странице 1 (используя форму с методом публикации) на странице 2? Если это так, используйте автоглобальный массив $ _POST. Например, $ nameOnPage2 = $ _POST ['nameFromPage1']. Для этого вам не нужно создавать форму на второй странице.

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