如何使用函数shell_exec()PHP

时间:2016-02-04 09:03:57

标签: php shell-exec

我的函数shell_exec()有问题,我已经尝试了一切,但我不知道问题出在哪里。我有这个php程序证明你是否登录,我想使用cookie,但我不允许在我工作的公司的apache服务器,我不知道为什么。所以通常在这个程序中我检查我是否已经启动了我的会话,如果我没有,我使用登录,用户将其放在页面中的文本情况之前,如果我这样做(已启动我的会话),我将使用我在之前的文本情况下放入的登录,现在存储在会话变量中。我不知道它是否是正确的方法,但这就是我带来的解决方案。我不是php的专家。 所以问题是函数shell_exec()在第一个“if”之外工作但不在条件中,当我进入条件时它不返回任何东西。我想知道你的意见。

这是代码:

     $login = $_POST['login_venezia'];

if (isset($login))
{

    $log = $login;

    if($_SESSION['login_test']!=NULL)
    {
       $tableau = shell_exec('groups'.$_SESSION['login']);
       echo "1";
       echo $_SESSION['login']."\n";
    }
    else
    {
       $tableau = shell_exec('groups'.$log); 
       echo "2";
       echo "Login = ".$log;
    }


    //$tableau = shell_exec('groups '.$log);
    echo "Login = ".$login;
    echo "Tableau = ".$tableau;
    $resultat = explode(" ",$tableau);
    $cookies = $_COOKIE['session_ser'];
    die;

    $path = dirname($_SERVER['PHP_SELF']); //chemin avant de fichier courant
    $path_separe = explode('/',$path); //nous retourne la chaine de caractere donc le chemin du fichier mais sans les slash
    $lenght = count($path_separe);
    $imp = $path_separe[$lenght-2];

    if($tableau != NULL)
    {

        for($i=0; $i<count($resultat);$i++)
        {
            if($resultat[$i] === $imp && $cookies!=NULL)
            {
                $valeur = 1;
            }
        }
        if($i === count($resultat))
        {
            //header('Location: verifnon.php?mavar=1'); //n'appartien pas au projet
        }

    }
    else
    {
        //header('Location: compteinexistant.php?mavar=1'); //son compte existe pas  
        echo "Erreur";
    }


    if($valeur === 1)
    {
        session_cache_limiter('private');
        $cache_limiter = session_cache_limiter();

        /* Configure le délai d'expiration à 30 minutes */
        session_cache_expire(1440);
        $cache_expire = session_cache_expire();

        session_start();
        $_SESSION['login'] = $login;

       //header('Location: verifoui.php?mavar=1'); 
    }
}
else
{
    echo "Veuillez saisir votre login \n";
}

1 个答案:

答案 0 :(得分:0)

在组之后放置一个空格,否则你正在运行'groupslogin'而不是命令:

if($_SESSION['login_test']!=NULL)
{
   $tableau = shell_exec('groups '.$_SESSION['login']);
   echo "1";
   echo $_SESSION['login']."\n";
}
else
{
   $tableau = shell_exec('groups '.$log); 
   echo "2";
   echo "Login = ".$log;
}