Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people, just like you, are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
Solved

PHP front end to execute python scripts

Posted on 2009-05-14
7
1,874 Views
Last Modified: 2013-12-12

Hi Experts,
I need some help with a small web front end (PHP) to execute my many python scripts and display the output in the webpage, the problem I cannot get my head around is how i execute the script and map this to the output display.

My small uncompleted example code is below and any help would be greatly appreciated.

cheers

<?PHP
 
$in_scripts     = $_POST['scripts'];
?>
<html><head><title>TEST PHP Front end for python scripts</title>
</head><b>Front end for running python scripts<b><body>
<form action='' method='post'>
</label><br />
 
<?php
        $scripts = array (
                        "pythonscript1",
                        "pythonscript2",
                );
?>Python scripts:&nbsp;
 
        <select name="scripts" id="scripts" value=''>
                        <?php
                                while($nt=each($scripts))
                                {
                                        if ($nt[1] == $in_scripts)
{$scripts_checked="selected";} else {$scripts_checked="";}
                                        echo "<option value='$nt[1]'
$scripts_checked>$nt[1]</option><BR>";}
?>
        </select>
</td>
<BR>
<input type="submit" value="Execute script" />
</form>
<?php
 
if(isset($_REQUEST['SIPT'])) {
  echo <<<END
<pre>Script output 
END;
 
  if ($in_scripts == "pythonscript1") { echo "<BR>pythonscript1";}
    if ($in_scripts == "pythonscript2") { echo "<BR>pythonscript2";}
} 
?>
</body>
</html>

Open in new window

0
Comment
Question by:wayboo
7 Comments
 
LVL 14

Expert Comment

by:shobinsun
ID: 24392359
Hi,

I think you want this:

From the following you get the idea.

Use exec() for running python scripts.

Hope this will help you.

Regards
<?PHP
 
$in_scripts     = $_POST['scripts'];
?>
<html><head><title>TEST PHP Front end for python scripts</title>
</head><b>Front end for running python scripts<b><body>
<form action='' method='post'>
</label><br />
 
<?php
        $scripts = array (
                        "pythonscript1",
                        "pythonscript2",
                );
?>Python scripts: 
 
        <select name="scripts" id="scripts" value=''>
                        <?php
                                while($nt=each($scripts))
                                {
                                        if ($nt[1] == $in_scripts)
{$scripts_checked="selected";} else {$scripts_checked="";}
                                        echo "<option value='$nt[1]'
$scripts_checked>$nt[1]</option><BR>";}
?>
        </select>
</td>
<BR>
<input type="submit" value="Execute script" />
</form>
<?php
 
  if ($in_scripts == "pythonscript1") { 
echo "<BR>pythonscript1";
exec("myprogram.py");
}
    if ($in_scripts == "pythonscript2") { 
echo "<BR>pythonscript2";
exec("myprogram1.py");
}
 
?>
</body>
</html>

Open in new window

0
 

Author Comment

by:wayboo
ID: 24408168
Hi Shobinsun,
Thanks for this but it does not display the output through the webpage, I have made a few modification and get some output but it's not all of it, could you take a look?

cheers

<?PHP
 
$in_scripts     = $_POST['scripts'];
$output = exec("/var/www/testmsan.py");
$output2 = exec("/var/www/testmsan2.py");
?>
<html><head><title>TEST PHP Front end for python scripts</title>
</head><b>Front end for running python scripts<b><body>
<form action='' method='post'>
</label><br />
 
<?php
        $scripts = array (
                        "pythonscript1",
                        "pythonscript2",
                );
?>Python scripts: 
 
        <select name="scripts" id="scripts" value=''>
                        <?php
                                while($nt=each($scripts))
                                {
                                        if ($nt[1] == $in_scripts)
{$scripts_checked="selected";} else {$scripts_checked="";}
                                        echo "<option value='$nt[1]'
$scripts_checked>$nt[1]</option><BR>";}
?>
        </select>
</td>
<BR>
<input type="submit" value="Execute script" />
</form>
<?php
 
  if ($in_scripts == "pythonscript1") { 
 
 
echo "<BR>$output";
 
}
    if ($in_scripts == "pythonscript2") { 
 
echo "<BR>$output2";
}
 
?>
</body>
</html>

Open in new window

0
 

Expert Comment

by:iamkorvus
ID: 24435263
Just try using system() instead of exec() -- it outputs the results by default.  Depending on your output, you may also want to stick it in a <pre>...</pre> block to make sure the output isn't interpreted as HTML if it is not supposed to be.

http://us2.php.net/manual/en/function.system.php
0
 
LVL 4

Accepted Solution

by:
manavsi earned 500 total points
ID: 24439049
well, did u try PiP???

Link: www.csh.rit.edu/~jon/projects/pip/

I think this is what you need... :)

HTH
Manavsi
0
 
LVL 1

Expert Comment

by:tristan625
ID: 24467298
a few pointers hope they help
1) import cgi into your scripts,this way you can directly return the output as desired
2) convert your scripts in web services
0

Featured Post

DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

The purpose of this article is to demonstrate how we can use conditional statements using Python.
Nothing in an HTTP request can be trusted, including HTTP headers and form data.  A form token is a tool that can be used to guard against request forgeries (CSRF).  This article shows an improved approach to form tokens, making it more difficult to…
Learn the basics of modules and packages in Python. Every Python file is a module, ending in the suffix: .py: Modules are a collection of functions and variables.: Packages are a collection of modules.: Module functions and variables are accessed us…
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question