How to submit a form with PHP?

陌路散爱 提交于 2020-01-01 19:21:20

问题


<form style="text-align:center;" id="paypalform" action="https://www.paypal.com/cgi-bin/webscr" method="POST">
    <input type='hidden' name='cmd' value='_xclick'>
    <input type='hidden' name='business' value='payment@xxx.com'>
    <input type='hidden' name='item_name' value='201001114262121'>
    <input type='hidden' name='amount' id="amount" value='1.00'>
    <input type='hidden' name='currency_code' value='CAD'>
    <input type='hidden' name='return' value='http://www.xxx.com/paypal_process.php'>
    <input type='hidden' name='invoice' value='82'>
    <input type='hidden' name='charset' value='utf-8'>
    <input type='hidden' name='no_shipping' value='1'>
    <input type='hidden' name='no_note' value=''>
    <input type='hidden' name='notify_url' value='http://www.xxx.com/return.php'>
    <input type='hidden' name='rm' value='82'>
    <input type='hidden' name='cancel_return' value='http://www.xxx.com/index.html'>
</form>

Anyone knows?


回答1:


<?php
if(isset($_POST['submit']))
{
    function do_post_request($url, $data, $optional_headers = null)
    {
        $params = array('http' => array(
                        'method' => 'POST',
                        'content' => $data
                    ));
        if($optional_headers != null)
        {
            $params['http']['header'] = $optional_headers;
        }
        $ctx = stream_context_create($params);
        $fp = @fopen($url, 'rb', false, $ctx);
        if (!$fp)
        {
            throw new Exception("Problem with $url, $php_errormsg");
        }
        $response='';
        while (!feof($fp))
        {
            $response = $response.fgets($fp);
        }
        if ($response === false)
        {
            throw new Exception("Problem reading data from $url, $php_errormsg");
        }

        fclose($fp);
        return $response;
    }
    $host = 'http://mydomain.com';
    $url = 'http://mydomain.com/formHandler.php';
    $username = 'admin';
    $password = '123456';
    $data = array ('action' => 'login','lgname' => $username, 'lgpassword' => $password, 'format' => 'txt');
    $data = http_build_query($data);
    $reply = do_post_request($url, $data);
    echo "**********Response*********<pre>";
    echo var_dump($reply);
    #header('location:'.$host);
    #exit;

   } else {
       echo '<form method="post" enctype="multipart/form-data" action="'.$_SERVER['PHP_SELF'].'"><input type="text" name="uname" /><br><input type="password" name="password" /><input type="submit" name="submit"></form>';
   }

 ?>

Try this




回答2:


If you're wanting this form to submit as soon as the page is loaded, you can add this to the bottom of the page if you're determined in using PHP to submit the form:

<?
echo "<script type=\"text/javascript\"> 
                window.onload=function(){
                    document.forms['paypalform'].submit();
                }
       </script>";
?>

But that seems like a long way around it. You could just write the javascript into the page... maybe I'm not sure what you're wanting to do, but I thought I'd throw this out.




回答3:


Using javascript you can submit the form inside PHP code like this: (trick is in last line )

    $paypalURL = 'https://www.sandbox.paypal.com/cgi-bin/webscr';
    $paypalID = 'xyz-merchant@gmail.com';
    $form = "<form id='paypal' action='". $paypalURL."' method='post'>";
    $form .='<input type="hidden" name="business" value="'. $paypalID.'">';
    $form .='<input type="hidden" name="cmd" value="_xclick">';
    $itemDetail = "Detail goes here";
    $orderId = 4444;
    $totalAmountWithFee = 55;
    $form .='<input type="hidden" name="item_name" value=" '.$itemDetail.'">
        <input type="hidden" name="item_number" value="'.$orderId.'">
        <input type="hidden" name="amount" value="'.$totalAmountWithFee.'">
        <input type="hidden" name="currency_code" value="USD">';

    $form .="<input type='hidden' name='cancel_return' value='http://localhost/public/cancel.php'> <input type='hidden' name='return' value='http://localhost/success.php'>";
    $form.="<script type=\"text/javascript\"> document.forms['paypal'].submit();</script>";
    echo $form;

If someone has a good idea pls share.




回答4:


You can submit an HTML form from a PHP script with cURL or this library (that is based on cURL and simple html dom).




回答5:


You can submit an HTML form from php with fsubmit PHP library https://github.com/randomsymbols/fsubmit

require_once 'fsubmit.php';
$html = '<form action="backend.aspx" method="post"><input type="text" name="question"></form>';
$form = new Fsubmit();
$form->url = 'http://the_url_must_contain_action_url_base'; // If form action is a relative link, then url is a required parameter, if form action is an absolute link, then this parameter can be omitted
$form->html = $html;
$form->params = ['question' => 'To code or not to code?', 'extra_question' => 'In what language?'];
$answer = $form->submit();
echo $answer['content'];


来源:https://stackoverflow.com/questions/4290025/how-to-submit-a-form-with-php

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!