2012-02-21 2 views
1

Я хочу отправить запрос на отправку с перенаправлением URL-адреса на страницу запроса. Страница запроса Jest, которую в настоящее время используется для отправки формы отправки.Отправленный почтовый запрос с использованием Zend_Http_Client

Я попробовал использовать следующий код на моей странице запроса.

<?php 

$myFile = "test.txt"; 
$fh = fopen($myFile, 'w') or die("can't open file"); 
$stringData = "Request come to the page\n"; 
fwrite($fh, $stringData); 

if (isset($_POST)) { 
     $stringData = $_POST['user']; 
     fwrite($fh, $stringData); 
} 

fclose($fh); 
echo 'page found'; 

Я пробовал Zend_Http_Client для этого. Это мое простое действие.

public function indexAction() 
{ 
    $client = new Zend_Http_Client('http://localhost/test/test.php'); 

    $client->setParameterPost(array('user' => 'dinuka')); 
    $client->setConfig(array('strictredirects' => true)); 

    $response = $client->request(Zend_Http_Client::POST); 
} 

Теперь запросите отправить на test.php. Но не перенаправлять на страницу http://localhost/test/test.php. Я хочу отправить запрос + перенаправление. Я задал этот вопрос ранее. Но он закрылся как чистый вопрос. Пожалуйста, помогите мне. У меня нет хороших знаний о http-запросе. Что такое strictredirects?

+0

Не могли бы вы пояснить свой вопрос, пожалуйста? что вы подразумеваете под «отправкой почтового запроса с перенаправлением URL-адреса на страницу запроса»? – Liyali

+0

@Liyali - Когда вы отправляете форму, отправьте параметр, чтобы сформировать URL-адрес действия и перенаправить на этот URL-адрес. Я также хочу это сделать, но без формы. –

+0

Если вы всегда хотите перенаправить свое действие на /test/test.php, почему бы вам просто не сделать это с помощью перенаправителя? – Liyali

ответ

1

Я думаю, что это могло бы охватывать основы того, что вы хотите:

<?php 

class IndexController extends Zend_Controller_Action { 

    public function init() { 
    } 

    public function indexAction() { 
     //set form action to indexController nextAction 
     $form = My_Form(); 
     $form->setAction('/index/next'); 
     //asign form to view 
     $this->view->form = $form; 
    } 

    public function nextAction() { 
     //if form is posted and valid 
     if ($this->getRequest()->isPost()) { 
      if ($form->isValid($this->getRequest()->getPost())) { 
       $data = $form->getValues(); 

       //Do some stuff 
      } 
     } else { 
      //if form not posted go to form in indexAction 
      $this->_forward('index'); 
     } 
    } 
} 

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

public function indexAction() 
{ 
    $client = new Zend_Http_Client('http://localhost/test/test.php'); 

    $client->setParameterPost(array('user' => 'dinuka')); 
    $client->setConfig(array('strictredirects' => true)); 

    $response = $client->request(Zend_Http_Client::POST); 
} 

Я получаю идею о том, что вы хотите с этим куском кода, чтобы отправить запрос на запись в этот адрес и перенаправлять браузер там в то же время.
Это должно быть возможно и в соответствии с тем, что я могу найти, оно должно быть таким же простым, как $response->location, но я не могу заставить его работать. ->location должен быть элементом заголовка, но я не могу его найти. Может быть, один из наших других гуру может помочь.

+0

Я могу перенаправить после отправки запроса на отправку, но это действительно не так. Когда вы вызываете запрос $ client-> (Zend_Http_Client :: POST), он также должен перенаправлять. Я не знаю, как я это объясняю. –

+0

I думаю, у @Liyali, вероятно, есть причина, по которой это не сработает. Вероятно, большинство серверов по умолчанию не разрешают этот тип активности (браузеры, вероятно, одинаковы). Я даже не мог заставить его работать на моем собственном сервере. попробуйте метод скрытой формы. – RockyFord

Смежные вопросы