2014-11-08 3 views
2

저는 Flask와 python을 사용하여 localhost 웹 사이트를 운영하고 있습니다. 사용자가 버튼을 클릭 할 때 실행하고 싶은 PHP 파일이 있습니다. 문제는 Flask가 PHP 파일을 PHP 코드로 인식하지 못하고 코드가 웹 페이지에 텍스트로 표시된다는 것입니다. 그것은 모든 echo 문장의 텍스트를 보여주고 있지만,이 문장의 단어는 사용자가 웹 사이트에 로그인하고 로그 아웃 할 수있게하는 코드의 변수에 해당합니다. 나는 무엇을해야합니까?Flask의 PHP 파일로 리디렉션

파이썬 코드 :

@app.route('/example.php') 
def phpexample(): 
    return render_template('example.php') 

이것은 echo 문에서 결과 텍스트가있는 HTML 페이지를 보여줍니다.

PHP 코드 (example.php) :

<?php 
    require ('steamauth/steamauth.php'); 
?> 
<html> 
<head> 
    <title>Eliminate Phishers! Join Steap now</title> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
     <meta name="description" content="" /> 
     <meta name="keywords" content="" /> 
     <!--[if lte IE 8]><script src="css/ie/html5shiv.js"></script><![endif]--> 
     <script src="js/jquery.min.js"></script> 
     <script src="js/skel.min.js"></script> 
     <script src="js/init.js"></script> 
     <noscript> 
      <link rel="stylesheet" href="css/skel.css" /> 
      <link rel="stylesheet" href="css/style.css" /> 
      <link rel="stylesheet" href="css/style-wide.css" /> 
     </noscript> 
     <!--[if lte IE 8]><link rel="stylesheet" href="css/ie/v8.css" /><![endif]--> 
</head> 
<body> 

     <!-- Header --> 
      <div id="header"> 
       <span class="logo icon fa-paper-plane-o"></span> 
       <h1>Welcome. This is Steap</h1> 
       <p>A website designed to help eliminate phishers 
       <br /> 
       and hackers on Steam.</p> 
      </div> 

     <!-- Main --> 
      <div id="main"> 

       <header class="major container small"> 
        <h3> 
        <?php 

if(!isset($_SESSION['steamid'])) { 

    echo "welcome guest! <br />\n please login "; 
    steamlogin(); //login button 

} else { 
    include ('steamauth/userInfo.php'); 
    $url = $steamprofile['profileurl']; 
    if ($steamprofile['personastate'] == 0) { 
     $state = '<span style="color:#616161";>(Offline)</span>'; 
     $picture = '<span style="color:#616161";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>'; 

    } else if ($steamprofile['personastate'] == 1) { 
     $state = '<span style="color:#006EFF";>(Online)</span>'; 
     $picture = '<span style="border: 10px dotted #006EFF;"><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>'; 
    } else if ($steamprofile['personastate'] == 2) { 
     $state = '<span style="color:#006EFF";>(Busy)</span>'; 
     $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>'; 
    } else if ($steamprofile['personastate'] == 3) { 
     $state = '<span style="color:#006EFF";>(Away)</span>'; 
     $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>'; 
    } else if ($steamprofile['personastate'] == 4) { 
     $state = '<span style="color:#006EFF";>(Snooze)</span>'; 
     $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>'; 
    } else if ($steamprofile['personastate'] == 5) { 
     $state = '<span style="color:#006EFF";>(Looking to Trade)</span>'; 
     $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>'; 
    } else if ($steamprofile['personastate'] == 6) { 
     $state = '<span style="color:#006EFF";>(Looking to Play)</span>'; 
     $picture = '<span style="border-color:#006EFF border-style: solid";><img src="'.$steamprofile['avatarfull'].'" title = "" alt = ""></span>'; 
    } 


    //Protected content 
    echo "Welcome back" . "</br> </br>" . $picture ."</br>". $steamprofile['personaname'] . "</br>" .$state . "</br>". "Steam ID: ". $steamprofile['steamid'] . "</br>"; 
    echo '<a href="' . $url . '">Steam Profile</a>' . "</br> </br>" . "<form action=\"steamauth/logout.php\" method=\"post\"><input value=\"Logout\" type=\"submit\" /></form>"; // Display their avatar! 

}  
?> 
</h3> 
       </header> 

       <footer class="major container small"> 

        <ul class="actions"> 
         <li><a href="index.html" class="button">Get Phishers</a></li> 
        </ul> 
       </footer> 

      </div> 

     <!-- Footer --> 
      <div id="footer"> 
       <div class="container small"> 

        <header class="major last"> 
         <h2>Questions or comments?</h2> 
        </header> 

        <p>Program not working? Not detecting the phishers properly? <br \> Send us a message. We'll be sure to back to you as soon as possible.</p> 

        <form method="post" action="#"> 
         <div class="row collapse-at-2"> 
          <div class="6u"> 
           <input type="text" name="name" placeholder="Name" /> 
          </div> 
          <div class="6u"> 
           <input type="email" name="email" placeholder="Email" /> 
          </div> 
         </div> 
         <div class="row"> 
          <div class="12u"> 
           <textarea name="message" placeholder="Message" rows="6"></textarea> 
          </div> 
         </div> 
         <div class="row"> 
          <div class="12u"> 
           <ul class="actions"> 
            <li><input type="submit" value="Send Message" /></li> 
           </ul> 
          </div> 
         </div> 
        </form> 

        <ul class="icons"> 
         <li><a href="#" class="icon fa-twitter"><span class="label">Twitter</span></a></li> 
         <li><a href="#" class="icon fa-facebook"><span class="label">Facebook</span></a></li> 
         <li><a href="#" class="icon fa-instagram"><span class="label">Instagram</span></a></li> 
         <li><a href="#" class="icon fa-github"><span class="label">Github</span></a></li> 
         <li><a href="#" class="icon fa-dribbble"><span class="label">Dribbble</span></a></li> 
        </ul> 

        <ul class="copyright"> 
         <li>&copy; Steap 2014 All rights reserved.</li><li>Design: <a href="http://html5up.net">HTML5 UP</a></li> 
        </ul> 

       </div> 
      </div> 

    </body> 
</html> 
+0

PHP를 처리 할 수있는 무언가가 필요합니다. 어떤 http 서버를 사용하고 있습니까? – dirn

+0

나는 Flask를 사용하고 있으며 위의 명령 프롬프트에서 파이썬 코드를 실행합니다. 그런 다음 Google 크롬에서 http://127.0.0.1:5000/example.php를 열고 결과물을 텍스트 한 무리로 만듭니다. –

+0

@ dirn 나는 당신이 말하는 것을 이해합니다. 나는 실제로 PHP를 처리 할 수있는 무언가를 가지고 있지는 않지만 명확하게 플라스크를 만들 수 없습니다. 내가 사용하는 소프트웨어는 무엇입니까? –

답변

-3

당신이 JQuery와 Ajax를 사용하여 고려 적이 있습니까? 여기

은 예입니다 :

<?php echo "Hello, my name is John"; ?> 

사용 JQuery와 아약스 기능 내가 get_name.php

 $.ajax({ 
      url : 'get_name.php', 
      success : function(data) { 
       console.log(data); 
      } 
     }); 

출력에에게 전화 :

당신은 get_name.php 마녀라는 파일이 포함되어 있습니다 콘솔은 다음과 같습니다.

안녕하세요, 제 이름은 John입니다

따라서 반환 된 데이터로 원하는 모든 작업을 수행 할 수 있습니다.

+0

JQuery를 사용하고 있습니다. –

+0

제 말은 JQuery Ajax 함수, http://api.jquery.com/jquery입니다.아약스 – EdvinasJ

+0

확인. 그것은 정확히 무엇을 할 것입니까? 나는 파이썬과 플라스크를 사용하고 위에있는 PHP 파일을 열고 싶다. PHP와 Flask는 JQuery와 무슨 관련이 있습니까? 어떤 종류의 코드를 게시하십시오. 내가하는 말을 이해할 수 없기 때문입니다. –

1

send_from_directory를 사용하여 정적 폴더에서 파일을 보낼 수 있습니다. 정적 폴더에 php 파일을 추가 할 수 있습니다.

그런 다음

@app.route('/example.php') 
def static_from_root(): 
    return send_from_directory(app.static_folder, request.path[1:]) 

이 노선과 기능을 추가하고이 같은 init.py에 정적 폴더를 설정하는 것을 잊지 마세요 : 당신이 갈 때마다 지금부터 그래서

app = Flask(__name__, static_folder='static', static_url_path='/static') 

host/example.php에서 정적 폴더에있는 example.php 파일이 호출됩니다. 렌더링되지 않음.

참고 : xml 파일을 제공하기 위해이 방법을 사용하고 있습니다. PHP 파일에서도 잘 작동한다고 생각합니다.

+1

반송 라인에서 ')'가 누락되었습니다. –

+0

@OrDuan 정정을 부탁드립니다. – taskiner

+0

이 방법은 PHP 파일을 다운로드하지만 호출하지는 않습니다. – zhihong