PHP转Python服务器页面、会话和EXEC

0 投票
1 回答
608 浏览
提问于 2025-04-16 12:56

我正在尝试把这段PHP代码转换成psp(Python服务器页面)。我对PHP中的exec函数和isset函数在会话变量中的用法感到很困惑。

session_start();
if(isset($_POST["var"])){
    //set session username
    $username = (string)$_POST["var"];
    $username = trim($username);
    $_SESSION['username'] = $username; //store $username
}

if(isset($_SESSION['username'])){
    $username = $_SESSION['username'];  //store session[username] as $username
    $cmd = '/var/www/cgi-bin/resolveID.py ' .  escapeshellcmd($username); 
    $fullname = exec($cmd);
    $_SESSION['fullname'] = $fullname;

}
else{
    echo 'Your session has expired, please click <a href="https://devh.test.com/">here</a>';
    exit;
}

这是我目前的代码

<% 
import cgitb, session
cgitb.enable()

user_session = Session.Session()
#post info
if form.getvalue('var'):
    varUsername = form.getvalue('var')
    user_session['username'] = varUsername

#session set stuff
try:
    if user_session['username']:
        #is set
        varUsername = user_session['username']
        varCMD = '/var/www/cgi-bin/resolveID.py ' + varUsername
        varFullname = subprocess.check_output(varCMD)
        user_session['fullname'] = varFullname
except:
    #not set
    req.write('Your session has expired, please click <a href="https://dev.test.com/">here</a>')
%>

1 个回答

1

我觉得你要找的函数是 subprocess.check_output()

fullname = subprocess.check_output(['/var/www/cgi-bin/resolveID.py', username])

在Python中,你可以用 'key' in array 来替代 isset($array['key'])

撰写回答