Passing variable from PHP to bash script

Tags
apache config, solved, web

 
Thread Tools Search this Thread
# 1  
Old 12-08-2017
Passing variable from PHP to bash script

I am totally new to PHP and I am trying to create a script that will as a user for a hostname and then use the "hostname" variable to generate a report using REST API.

I am able to create the html script and php script to GET the "hostname" but I am having trouble passing the hostname variable to the bash script which generates the report using REST API.

This is the html script
Code:
<html>
<body>

<form action="test.php" method="get">
Enter Hostname: <input type="text" name="hostname"><br>
<input type="submit">
</form>

</body>
</html>

This is my php script

Code:
Hostname to Query is <?php echo $_GET["hostname"];

$hostname = $argv[1];

#echo "This is $hostname\n";

#$result = shell_exec('/var/www/html/scripts/REST-API/dpa_reports.sh ' . $hostname);
$result = shell_exec('/var/www/html/scripts/REST-API/dpa_reports.sh ' . $hostname);

echo $result;

?><br>

---------- Post updated at 12:38 PM ---------- Previous update was at 12:33 PM ----------

if I do the following from the command line it passes the "hostname" variable to the bash script dpa_report.h script fine. But when I submit the "hostname" from my browser it does not pass the variable...

this command line works

Code:
php test.php hostname-test

# 2  
Old 12-08-2017
php variable $hostname is undefined.
Replace
Code:
$hostname=$argv[1]

with
Code:
$hostname=$_GET["hostname"];

Assuming that you are using Apache as the web server, you can do the following:
Start an additional terminal window, and run "tail -f /var/log/apache2/error.log". You will get al running list of errors from your web development.
# 3  
Old 12-08-2017
Thank jgt That fixed that particular problem. Now I am getting a curl error though. If I run the curl from the command line I have no issue but when it is called from the php script which calls the bash script I get this error

Code:
curl: (7) Failed to connect to 172.16.120.152: Permission denied

The curl command works fine when I do it from the command line.

Any idea why this is happening?

---------- Post updated at 03:36 PM ---------- Previous update was at 03:34 PM ----------

This is the curl command (I have taken out the username and password

curl -u usernameSmilieassword http://seieadpa01:9004/apollo-api/no...%3dseiemccli01

---------- Post updated at 03:38 PM ---------- Previous update was at 03:36 PM ----------

sorry I never put code around

Code:
curl  -u username:password http://seieadpa01:9004/apollo-api/nodes/?query=name%3dhostname

# 4  
Old 12-08-2017
Are the username and password literals, and can you post the balance of the script that includes the curl statement?
# 5  
Old 12-08-2017
This the bash script (dpa_report.sh) that creates the REST -API report. I have taken out the actual username and password for the purposes of this post. If I run this script from the command line and pass it the hostname it works. For example

Code:
./dpa_report hostname

works. The hostname is set to $1 in the script.

But when dpa_report.sh is called from the php script I get the permission errors.


Code:
#!/bin/bash

export HOME=/var/www/html/scripts/REST-API
export TEMP_DIR=/var/www/html/scripts/REST-API/Temp

curl  -u "username:password" http://seieadpa01:9004/apollo-api/nodes/?query=name%3d$1 > $TEMP_DIR/test_file.txt

HOST_ID=`cat $TEMP_DIR/test_file.txt | grep "<id>"`

cat $HOME/host_query_input_file.out | awk -v ID="$HOST_ID" '{if ($1~/\<id>/) $1=ID ;print}' > $TEMP_DIR/host_query_input_file.out

curl -u username:password -X POST -H "Content-Type:application/vnd.emc.apollo-v1+xml" --data "@/var/www/html/scripts/REST-API/host_query_input_file.out" http://seieadpa01:9004/dpa-api/report -o $TEMP_DIR/test_xml.out

LINK=$(grep link $TEMP_DIR/test_xml.out)
LINK="${LINK#*>}"
LINK="${LINK%<*}"

export LINK

sleep 5


curl -u username:password $LINK > /var/www/html/REPORTS/$1.html

# 6  
Old 12-08-2017
Add
Code:
echo $1 >>/tmp/test.log

ahead of the curl statement
# 7  
Old 12-08-2017
I actually had that in there earlier and it does write to that file with the hostname. the hostname I have been using for testing is seiemccli01

This is the file entry after I run (172.16.117.145 is the apache web server)

Code:
http://172.16.117.145/host_read.html

Code:
[root@seinwnprd02 html]# cat /tmp/test.out
seiemccli01
[root@seinwnprd02 html]#


|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Passing variable from bash to perl script NileshJ Shell Programming and Scripting 6 02-03-2016 11:23 AM
Passing arguments to a bash script shree11 Shell Programming and Scripting 8 06-11-2014 06:06 AM
Passing string from SQL to a BASH script JonP Shell Programming and Scripting 3 12-11-2013 09:02 AM
Passing variable as an argument to another script Manasa Pradeep Shell Programming and Scripting 9 09-13-2013 08:49 AM
Passing string as variable(s) in bash Starting_Leaf Shell Programming and Scripting 2 04-06-2013 03:35 PM
Trouble with passing Variable from bash to awk gsub command Nostyx Shell Programming and Scripting 9 12-09-2011 08:32 AM
Passing variables from bash to php-cli robbee Shell Programming and Scripting 0 05-09-2011 02:42 PM
help passing variable from script Grueben Shell Programming and Scripting 2 03-31-2011 07:08 AM
Passing Bash variable to javascript numele Shell Programming and Scripting 3 04-12-2010 07:38 PM
Passing a MySql password from bash script codenjanod Shell Programming and Scripting 2 11-26-2009 07:44 AM
passing variable from bash to perl from bash script arsidh Shell Programming and Scripting 10 06-04-2008 01:25 PM
Passing options to a bash script DeCoTwc Shell Programming and Scripting 3 05-21-2008 02:43 AM
passing asterisk to a script as variable GKnight Shell Programming and Scripting 9 04-02-2008 11:32 AM
passing variable to my script aladdin UNIX for Dummies Questions & Answers 5 06-18-2007 10:34 AM
Passing a variable into an awk script Khoomfire UNIX for Advanced & Expert Users 5 09-05-2006 09:44 AM