Hello,
I am trying to make an external web page that will also have a form. After completing the form I want the fields to be submitted and create a new Jira issue.
I wrote some php code and used the JIRA REST API but I can't figure out how to make it work. Anyone has a suggestion maybe? I mention I already tested the api using Advanced REST client (basically same tool as POSTMAN) and when I do it there it works, on my site it doesn't. Also "JIRA PLACEHOLDER" is replaced by the actual jira instance in my code. It is my first time trying to use API and I am a beginner with PHP. I will leave the code below.
Jira-create-issues.php :
<span><?</span><span>php
$base64_usrpwd </span><span>=</span><span> base64_encode</span><span>(</span><span>$_POST</span><span>[</span><span>'user'</span><span>].</span><span>':'</span><span>.</span><span>$_POST</span><span>[</span><span>'pass'</span><span>]);</span><span> $ch </span><span>=</span><span> curl_init</span><span>();</span><span> curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_URL</span><span>,</span> <span>'https://JIRA-PLACEHOLDER/jira/rest/api/2/issue/'</span><span>);</span><span> curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_RETURNTRANSFER</span><span>,</span> <span>true</span><span>);</span><span> curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_POST</span><span>,</span> <span>1</span><span>);</span><span> curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_HTTPHEADER</span><span>,</span><span> array</span><span>(</span><span>'Content-Type: application/json'</span><span>,</span>
<span>'Authorization: Basic '</span><span>.</span><span>$base64_usrpwd</span><span>));</span><span>
$arr</span><span>[</span><span>'project'</span><span>]</span> <span>=</span><span> array</span><span>(</span> <span>'key'</span> <span>=></span> <span>'TEST'</span><span>);</span><span> $arr</span><span>[</span><span>'summary'</span><span>]</span> <span>=</span><span> $_POST</span><span>[</span><span>'summary'</span><span>];</span><span> $arr</span><span>[</span><span>'description'</span><span>]</span> <span>=</span><span> $_POST</span><span>[</span><span>'description'</span><span>];</span><span> $arr</span><span>[</span><span>'issuetype'</span><span>]</span> <span>=</span><span> array</span><span>(</span> <span>'name'</span> <span>=></span><span> $_POST</span><span>[</span><span>'type'</span><span>]);</span><span> $json_arr</span><span>[</span><span>'fields'</span><span>]</span> <span>=</span><span> $arr</span><span>;</span><span> $json_string </span><span>=</span><span> json_encode </span><span>(</span><span>$json_arr</span><span>);</span><span> curl_setopt</span><span>(</span><span>$ch</span><span>,</span><span> CURLOPT_POSTFIELDS</span><span>,</span><span>$json_string</span><span>);</span><span> $result </span><span>=</span><span> curl_exec</span><span>(</span><span>$ch</span><span>);</span><span> curl_close</span><span>(</span><span>$ch</span><span>);</span><span> echo $result</span><span>;</span>
<span>?></span>And the code for jira-create-issue.html:
<span><html></span>
<span><head></span>
<span><script</span> <span>src</span><span>=</span><span>"jquery-2.1.4.js"</span><span>></script></span>
<span><link</span> <span>rel</span><span>=</span><span>"stylesheet"</span> <span>type</span><span>=</span><span>"text/css"</span> <span>href</span><span>=</span><span>"styles.css"</span><span>></span>
<span></head></span>
<span><body></span>
<span><div</span> <span>id</span><span>=</span><span>"wrapper"</span><span>></span>
<span><h1></span><span>Create Issue</span><span></h1></span>
<span><form</span> <span>id</span><span>=</span><span>"create-form"</span><span>></span><span> Summary: </span><span><input</span> <span>type</span><span>=</span><span>"text"</span> <span>name</span><span>=</span><span>"summary"</span> <span>id</span><span>=</span><span>"summary"</span> <span>value</span><span>=</span><span>""</span><span>/></span><span> Description: </span><span><input</span> <span>type</span><span>=</span><span>"text"</span> <span>name</span><span>=</span><span>"description"</span> <span>id</span><span>=</span><span>"description"</span> <span>value</span><span>=</span><span>""</span> <span>/></span><span> Issue Type: </span><span><input</span> <span>type</span><span>=</span><span>"text"</span> <span>name</span><span>=</span><span>"type"</span> <span>id</span><span>=</span><span>"type"</span> <span>value</span><span>=</span><span>""</span><span>/></span><span> Username: </span><span><input</span> <span>type</span><span>=</span><span>"text"</span> <span>name</span><span>=</span><span>"user"</span> <span>id</span><span>=</span><span>"user"</span> <span>value</span><span>=</span><span>""</span><span>/></span><span> Password: </span><span><input</span> <span>type</span><span>=</span><span>"password"</span> <span>name</span><span>=</span><span>"pass"</span> <span>id</span><span>=</span><span>"pass"</span> <span>value</span><span>=</span><span>""</span><span>/></span>
<span><input</span> <span>type</span><span>=</span><span>"button"</span> <span>id</span><span>=</span><span>"button"</span> <span>value</span><span>=</span><span>"Create Issue"</span><span>/></span>
<span></form></span>
<span></div></span>
<span><script></span><span>$</span><span>(</span><span>'#button'</span><span>).</span><span>click</span><span>(</span><span>function</span><span>()</span> <span>{</span><span> $</span><span>.</span><span>ajax</span><span>({</span><span> type</span><span>:</span> <span>"POST"</span><span>,</span><span> url</span><span>:</span> <span>"jira-create-issue.php"</span><span>,</span><span> data</span><span>:</span><span> $</span><span>(</span><span>'#create-form'</span><span>).</span><span>serialize</span><span>(),</span><span> success</span><span>:</span> <span>function</span><span>(</span><span>data</span><span>){</span><span> alert</span><span>(</span><span>data</span><span>);</span>
<span>},</span><span> dataType</span><span>:</span> <span>"html"</span>
<span>});</span>
<span>});</span>
<span></script></span>
<span></body></span>
<span></html></span>